キャッシュ処理の詳細
最終更新日: 2020年8月10日
R8 | R9
Wagbyはデータベースから読み込んだ値をメモリ内にキャッシュしています。これによりシステム全体のパフォーマンスを向上させています。
モデルごとにキャッシュを有効にするかどうかを指定することができます。 ただし、ワークフローを有効にしたモデルは "データベースのキャッシュを完全に無効にする" をチェックすることはできません。
アプリケーション全体のキャッシュサイズを指定することができます。
モデルごとにキャッシュサイズを指定することはできません。内部ではオープンソースの ehcache ライブラリを用いており、LRU アルゴリズムによって、よく使われるデータが優先してキャッシュします。
wagbyapp/temp フォルダに一時ファイルが生成されることがあります。Wagbyアプリケーション停止後であれば、wagbyapp/temp フォルダに残った一時ファイルを手動で削除することができます。
キャッシュは「ストアモデル」と「選択肢」があります。
TTL値とTTI値は、WEB-INF/classes/ehcache.xml で指定しています。
キャッシュを無効にした場合でも、1リクエスト間(WebブラウザとWebサーバ間の通信のやりとり)で発生したデータベースとのやりとりはメモリにキャッシュされます。レスポンスを返した段階で、このキャッシュは自動的に消去されます。キャッシュ有効期間は非常に短いですが、若干のパフォーマンス改善につながります。
この「1リクエスト間のキャッシュ」を無効にすることもできます。この場合、常にデータベースから値を読み込むようになります。
「画面 > その他 > データベースの詳細」で「キャッシュを有効にする」のチェックをはずしたとき、さらに「Javaソースコードの設定」にある「データベースのキャッシュを完全に無効にする」をチェックします。(標準ではチェックされていないため、1リクエスト間のキャッシュは有効となっています。)
Wagbyではジョブ実行時にキャッシュをクリアする指定を行うことができます。または REST API を利用してキャッシュクリアを指示することもできます。
もし誰かが操作途中にキャッシュがクリアされた場合、キャッシュからのデータを取得できなければデータベースから取得するようになっているため、問題ありません。
キャッシュについて
モデルごとにキャッシュを使うかどうかを指定する
サイズの設定
一時ファイル
キャッシュの種類と性質
区分 説明 Time To Live Time To Idle
ストアモデル
データベースから読み込んだ1データ。スクリプトに関するマニュアルでは「エンティティ」と表記することもある。
600 sec
(10分)600 sec
(10分)
選択肢
登録、更新、詳細、一覧画面のモデル参照項目で表示される「内容」部の文字列。
無制限
259,200 sec
(72時間)1リクエスト間のキャッシュ
定義方法
よくある質問と回答
誰かが操作中にキャッシュクリア処理を行なっても問題ありませんか。
関連するページ