動的キャッシュ・サービスは、 アプリケーション・サーバーの Java 仮想マシン (JVM) 内で動作し、 キャッシュ可能なオブジェクトへの呼び出しをインターセプトします。 この項では、 ランタイムおよび構成に関する、いくつかの共通の問題点と改善策を記載します。
推奨される対応 | サーブレットのキャッシュを使用可能にしてください。 管理コンソールの「Web コンテナー設定」ページで、 「サーブレットのキャッシュを使用可能にする」チェック・ボックスを選択します。 |
説明 | キャッシュがいっぱいの状態で、 メモリー・キャッシュに新しいエントリーが追加されると、 キャッシュ・エントリーはディスクに書き込まれます。 ディスクへのフラッシュ が管理コンソール内で使用可能で、サーバーが停止しているときも、キャッシュ・エントリーはディスクに書き込まれます。 |
推奨される対応 | 管理コンソールの「動的キャッシュ・サービスの設定」ページで、「 ディスク・オフロード」が使用可能であることを確認してくださ い。 ディスクに書き込まれたキャッシュ・エントリーが順序付け可能であり、 PersistToDisk 構成が false に設定されていないことも確認してください。 |
推奨される対応 | 属性および応答が順序付け可能であることを確認してください。
この属性を保管しない場合は、
キャッシュ・ポリシーで以下のプロパティーを使用します。
<property name="save-attributes">false</property> |
推奨される対応 | エッジにキャッシュされるこれらのエントリーについて、
キャッシュ・ポリシーの EdgeCacheable プロパティーを true に設定してください。
<property name="EdgeCacheable">true</property> |
説明 | 無効化を外部キャッシュに送信するには、DynaCacheEsi.ear ファイルが必要です。 |
推奨される対応 | 管理コンソールを使用して DynaCacheEsi.ear をインストールしてください。 |
問題 | キャッシュがいっぱいの状態で、 キャッシュに新しいエントリーが追加されます。 |
説明 | キャッシュがいっぱいの状態で、 キャッシュに新しいエントリーが追加されるときに、 キャッシュ・エントリーが放出されます。 最低使用頻度 (LRU) 撤去メカニズムにより、 使用頻度の最も低いエントリーが除去され、 新規エントリー用のスペースが用意されます。 |
推奨される対応 | 管理コンソールの「動的キャッシュ・サービスの設定」ページで「ディスク・オフロード」を使用可能にして、エントリーがディスクに書き込まれるようにしてください。 より多くのエントリーをキャッシュに収容できるように、キャッシュ・サイズを増やすこともできます。 |
説明 | ディスク・キャッシュ内のエントリーの最大存続時間は 24 時間です。 キャッシュ・ポリシー内のタイムアウトを 0 にすると、 これらのエントリーは、早めに放出されない限り、 丸 1 日間、ディスク・キャッシュに存在するように構成されます。 |
推奨される対応 | キャッシュ・ポリシーのタイムアウトを 0 より小さな数値に設定してください。 |
説明 | 動的キャッシュ・モニターを使用して、メモリー・キャッシュ、ディスク・キャッシュ、および Edge キャッシュなどの外部キャッシュの内容をモニターしてください。ESI プロセッサーのキャッシュをキャッシュ・モニターで確認できるようにするためには 、DynaCacheEsi.ear アプリケーションをインストールして 、plugin-cfg.xml ファイルで esiInvalidationMonitor プロパティーを true に設定する 必要があります。 |
推奨される対応 | plugin-cfg.xml ファイルの esiInvalidationMonitor プロパティーを true に設定してください。詳しくは、キャッシュ情報の表示 を参照してください。 |
推奨される対応 | Tivoli Performance ビューアーを使用して、
ご使用のアプリケーションについてのキャッシュの振る舞いを調べてください。
以下のアクションの実行も考慮してください。
|
症状 | サーバーがディスク・キャッシュを使用するように構成されている場合は、ディスク・キャッシュ・ファイルが旧バージョンと互換性がないため、ディスク・キャッシュ・ファイルを削除する必要があります。 |
問題 | 古いディスク・キャッシュ・ファイルの除去に失敗した場合、 ディスクからキャッシュにアクセスすると、systemerr.log ファイルに ClassCastException エラーが記録されます。 |
推奨される対応 | ディスク・キャッシュを削除するには、以下のステップを実行します。
|
症状 | 動的キャッシュから JavaServer Pages (JSP) ファイルを取得するときに、ページの一部が表示されません。 |
問題 | flush 属性が、JSP ファイルの <jsp:include> タグで false に設定されます。 |
説明 | キャッシュ可能な JSP ファイルに別の JSP ファイルが含まれている場合 、flush 属性が <jsp: include> タグで false に設定されていると 、<jsp: include> タグの前にある親の出力ストリームに書き込まれたデータは、 キャッシュされません。 |
推奨される対応 | キャッシュ可能な JSP ファイルのすべての <jsp: include> タグで、flush=true を指定してください。 |
問題 | JavaServer Pages 標準タグ・ライブラリー (JSTL) <c:import> タグを使用してキャッシュ可能なフラグメントが組み込まれている場合、 部分的に表示されなかったり、キャッシュ・ヒットに 2 回表示されたりするページ・コンテンツがあります。 |
説明 | 動的キャッシュはフラグメントを組み込む前後のコンテンツのフラッシュに依存しています。
したがって、組み込み前の親コンテンツが破損することはなく、
子コンテンツが親フラグメントにプルされることも防げます。
ただし、JSTL <c:import> タグの場合、flush=true 属性 (子フラグメントが実際に呼び出される前に親の書き込み機能をフラッシュする) はサポートされません。 また、JSTL は応答をバッファーし、子フラグメントの実行直後に子の書き込み機能がフラッシュされないようにします。 この結果、子の応答は親にプルされます。 制約事項:
キャッシュされた JavaServer Pages (JSP) ファイルで JSTL <c:import> タグが使用される場合、動的キャッシュは複数のインクルード・ステートメントを戻します。
|
推奨される対応 | この問題を回避するためには、以下のように <c:import> ステートメントを out.flush メソッドで囲みます。
<% out.flush(); %><c:import url="DNCParent2.jsp" /> <% out.flush(); %> |