Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dtb_baseinfo のキャッシュが不完全 #113

Closed
seasoftjapan opened this issue Jan 17, 2017 · 2 comments · Fixed by #385
Closed

dtb_baseinfo のキャッシュが不完全 #113

seasoftjapan opened this issue Jan 17, 2017 · 2 comments · Fixed by #385
Assignees
Labels
Milestone

Comments

@seasoftjapan
Copy link
Contributor

キャッシュとは data/cache/dtb_baseinfo.serial を指す。

  • キャッシュが存在しなくても動作する。自動で作成されない。
  • 「基本情報管理>SHOPマスター」画面で登録すると、キャッシュが作成される。
  • 「基本情報管理>ポイント設定」画面では、dtb_baseinfo を直接更新している。キャッシュは更新・作成しない。

・・・これは、何かおかしい。

@Yangsin Yangsin added this to the eccube-2.13.6 milestone Feb 10, 2017
@seasoftjapan
Copy link
Contributor Author

更に、分析すると、
SC_Helper_DB::sfGetBasisData()
SC_Helper_DB::sfGetBasisDataCache()
は、別々の手法でキャッシュしており、sfGetBasisDataCache() はエラー画面表示を想定した実装と理解した。

その上で、sfGetBasisDataCache() が行っているキャッシュの手法は、sfGetBasisData() にも反映して良いと思う。(たしか、mtb_* は、そうしている。) これにより、1アクセス毎のDBアクセスを1回減らせる。

@seasoftjapan
Copy link
Contributor Author

sfGetBasisDataCache() で使っているキャッシュファイルが、EC-CUBE をインストールしただけでは生成されない。

(冒頭記載の通り、「基本情報管理>SHOPマスター」画面で登録すると生成されるが、以下の課題は、それを行っていない段階を想定する。若しくは、キャッシュファイルが削除されるなどして、存在しないケース。)

キャッシュファイルが存在しない場合、sfGetBasisDataCache() 内から生成する sfCreateBasisDataCache() を呼んでいるが、先程のコメントに記載した通り sfGetBasisDataCache() はエラー画面表示のみで呼ばれる。よって、エラー画面を表示するタイミングで生成を試みるが、データベースエラーの場合、生成できない状況も想定され、(未検証だが) 無限ループを生じるなどの不具合が懸念される。

これも、上に記載した処理とすれば、少なくともフロント画面を一度表示すれば、不具合を回避できる見込み。

@seasoftjapan seasoftjapan self-assigned this Apr 25, 2020
seasoftjapan added a commit to seasoftjapan/eccube-2_13 that referenced this issue May 4, 2020
seasoftjapan added a commit to seasoftjapan/eccube-2_13 that referenced this issue May 7, 2020
SC_Helper_DB::registerBasisData() での更新時に、キャッシュデータファイルを生成する。
seasoftjapan added a commit to seasoftjapan/eccube-2_13 that referenced this issue Oct 20, 2023
ji-eunsoo added a commit that referenced this issue Jan 24, 2024
[fix] refs #113 dtb_baseinfo のキャッシュが不完全
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants