動的キャッシュ・サービスのトラブルシューティングのヒント

動的キャッシュ・サービスは、アプリケーション・サーバー Java™ 仮想マシン (JVM) 内で 動作し、キャッシュ可能なオブジェクトへの呼び出しをインターセプトします。

サーブレットがキャッシュされない

推奨される対応

サーブレットのキャッシュを使用可能にしてください。 管理コンソールの「Web コンテナー設定」ページで、 「サーブレットのキャッシュを使用可能にする」チェック・ボックスを選択します。

キャッシュ・エントリーがディスクに書き込まれない

説明 推奨される対応
キャッシュがいっぱいの状態で、 メモリー・キャッシュに新しいエントリーが追加されると、 キャッシュ・エントリーはディスクに書き込まれます。 ディスクへのフラッシュ が管理コンソール内で使用可能で、サーバーが停止しているときも、キャッシュ・エントリーはディスクに書き込まれます。

管理コンソールの「動的キャッシュ・サービス」の設定ページで、「ディスク・オフロード」が使用可能であることを確認してください。 ディスクに書き込まれたキャッシュ・エントリーがシリアライズ可能であり、 PersistToDisk 構成が false に設定されていないことも確認してください。

複製されず、ディスクにも書き込まれないサーブレットがある

推奨される対応
属性および応答がシリアライズ可能であることを確認してください。 この属性を保管しない場合は、 キャッシュ・ポリシーで以下のプロパティーを使用します。
<property name="save-attributes">false</property>

動的キャッシュ・サービスがエッジでフラグメントをキャッシュしない

推奨される対応
エッジにキャッシュされるこれらのエントリーについて、キャッシュ・ポリシーの EdgeCacheable プロパティーを true に設定してください。
<property name="EdgeCacheable">true</property>

動的キャッシュの無効化が IBM HTTP Server プラグインに送信されない

説明 推奨される対応
無効化を外部キャッシュに送信するには、DynaCacheEsi.ear ファイルが必要です。

管理コンソールを使用して、DynaCacheEsi.ear ファイルをインストールしてください。

キャッシュ・エントリーが放出されることが多い

問題 説明 推奨される対応
キャッシュがいっぱいの状態で、 キャッシュに新しいエントリーが追加されます。 キャッシュがいっぱいの状態で、 キャッシュに新しいエントリーが追加されるときに、 キャッシュ・エントリーが放出されます。 最低使用頻度 (LRU) 撤去メカニズムにより、 使用頻度の最も低いエントリーが除去され、 新規エントリー用のスペースが用意されます。

管理コンソールの「動的キャッシュ・サービス」設定ページで「ディスク・オフロード」を使用可能にして、エントリーがディスクに書き込まれるようにしてください。 より多くのエントリーをキャッシュに収容できるように、キャッシュ・サイズを増やすこともできます。

ディスク内でタイムアウトを 0 に設定しているキャッシュ・エントリーの有効期限が 1 日後に切れる

説明 推奨される対応
ディスク・キャッシュ内のエントリーの最大存続時間は 24 時間です。 キャッシュ・ポリシー内のタイムアウトを 0 にすると、 これらのエントリーは、早めに放出されない限り、 丸 1 日間、ディスク・キャッシュに存在するように構成されます。 キャッシュ・ポリシーのタイムアウトを 0 より小さな数値に設定してください。

エッジ上のキャッシュ・エントリーをモニターできない

説明 推奨される対応

動的キャッシュ・モニターを使用して、メモリー・キャッシュ、ディスク・キャッシュ、および Edge キャッシュなどの外部キャッシュの内容をモニターしてください。ESI プロセッサーのキャッシュをキャッシュ・モニターで確認できるようにするためには 、DynaCacheEsi.ear アプリケーションをインストールして 、plugin-cfg.xml ファイルで esiInvalidationMonitor プロパティーを true に設定する 必要があります。

plugin-cfg.xml ファイルの esiInvalidationMonitor プロパティーを true に設定してください。動的キャッシュ・サービス・アクティビティーのモニターについて詳しくは、『キャッシュ情報の表示』を参照してください。

環境に合わせたキャッシュの調整

推奨される対応
Tivoli® Performance ビューアーを使用して、 ご使用のアプリケーションの場合のキャッシュの動作について調べてください。 以下のアクションの実行も考慮してください。
  • 再生成するのにコストがかかるキャッシュ・エントリーの優先順位を上げます。
  • エントリーが有効である限りメモリー内に存在するようにエントリーのタイムアウトを変更します。
  • LRU で放出されるエントリーを保管するためにディスク・オフロードを使用可能にします。
  • キャッシュ・サイズを増やします。

フィックスパックまたは新規リリースのインストール後のディスク・キャッシュ・ファイルのクリーニング

症状 問題 推奨される対応
サーバーがディスク・キャッシュを使用するように構成されている場合は、ディスク・キャッシュ・ファイルが旧バージョンと互換性がないため、ディスク・キャッシュ・ファイルを削除する必要があります。 古いディスク・キャッシュ・ファイルの除去に失敗した場合、 ディスクからキャッシュにアクセスすると、systemerr.log ファイルに ClassCastException エラーが記録されます。
注: このトピックでは、 1 つ以上のアプリケーション・サーバー・ログ・ファイルを参照します。推奨される代替案として、分散システムや IBM® i システムの SystemOut.logSystemErr.logtrace.logactivity.log ファイルではなく、High Performance Extensible Logging (HPEL) ログおよびトレース・インフラストラクチャーを使用するようにサーバーを構成できます。また HPEL は、ネイティブ z/OS® ロギング機能と連携させて使用することができます。HPEL を使用する場合、LogViewer コマンド・ライン・ツールを サーバー・プロファイルの bin ディレクトリーから使用して、すべてのログ・ファイルにアクセスし、 情報をトレースできます。HPEL の使用について詳しくは、HPEL を使用してのアプリケーションの トラブルシューティングに関する情報を参照してください。
ディスク・キャッシュを削除するには、以下のステップを実行します。
  1. ディスク・オフロードのロケーションを書き留めておきます。ディスク・キャッシュ・オフロードのロケーションがわからない場合は、次のステップを実行してください。
    1. 管理コンソールのナビゲーション・ツリーで、「サーバー」>「アプリケーション・サーバー」>「server_name」>「コンテナー・サービス」>「動的キャッシュ・サービス」の順にクリックします。
    2. ロケーションは、「ディスク・オフロード」フィールドで指定されています。 ロケーションが指定されていない場合は、デフォルトのディレクトリーである profile_root/temp/your_node/server_name/_dynacache が使用されます。
  2. サーバーを停止し、オフロード・ロケーションのすべてのファイルを削除します。
  3. WebSphere® Application Server Network Deployment 製品を使用している場合は、 それぞれのサーバーごとにディスク・キャッシュ・ファイルを削除します。

キャッシュ可能な JavaServer Pages ファイルの 各 <jsp:include> タグで、flush 属性を true に設定する

キャッシュ可能な JavaServer Pages ファイルのすべての <jsp:include> タグで、flush 属性を必ず true に設定する

症状 問題 説明 推奨される対応
動的キャッシュから JavaServer Pages (JSP) ファイルを取得するときに、ページの一部が表示されません。 flush 属性が、JSP ファイルの <jsp: include> タグで false に設定されます。 キャッシュ可能な JSP ファイルに別の JSP ファイルが含まれている場合、flush 属性が <jsp: include> タグで false に設定されていると、<jsp: include> タグの前にある親の出力ストリームに書き込まれたデータは、キャッシュされません。 キャッシュ可能な JSP ファイルのすべての <jsp: include> タグ で、flush=true を設定してください。
[z/OS]

アプリケーション・サーバーがアイドルの場合のファイル・システム I/O アクティビティー

症状 説明 考えられる応答 推奨される対応
アプリケーション・サーバーがアイドルである場合に、 ファイル・システム I/O アクティビティーが発生します。 定義済みのキャッシュ・ポリシーがない場合 でも、WebSphere Application Server は cachespec.xml ファイルの階層ファイル・システム (HFS) をポーリングします。 動的キャッシュは、ファイル・システムを 30 秒ごとに照会して、 キャッシュ・ポリシー・ファイルへの更新を検査します。 キャッシュ・ポリシー・ファイルの更新を検査することによって、 動的キャッシュは、変更されたキャッシュ・ポリシーをすべて自動的に更新することができます。

動的キャッシュは、デフォルトでは使用可能になっています。 これは、パフォーマンス上の理由から、 いくつものシステム・コンポーネントが動的キャッシュに依存しているためです。 wsadmin スクリプトを使用するか、または管理コンソールを使用して、 動的キャッシュ・サービスを使用不可にすることができます。 動的キャッシュ・サービスの使用可能化について詳しくは、『動的キャッシュ・サービスの使用』トピックを参照してください。

注意:
セキュリティーは動的キャッシュ・サービスの分散マップ機能を使用しているため、 動的キャッシュを使用不可にすると、セキュリティーのパフォーマンスが遅くなる場合があります。
キャッシュ可能な JSP ファイルのすべての <jsp: include> タグ で、flush=true を設定してください。

JSTL <c:import> タグを使用してフラグメントを組み込む場合の動的キャッシュの制限

問題 説明 推奨される対応
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(); %>

サービス統合バス・メッセージが繰り返される

実動アプリケーションをホストする クラスター・メンバーのログでサービス統合バス・メッセージが繰り返される

問題 推奨される対応
マルチセル環境で、実動アプリケーションをホストする クラスター・メンバーのログ内で以下のメッセージが繰り返されます。
[time_stamp] CWSIT0007W: It is not possible to contact
 the bootstrap server at 
 9.9.9.9:7299:BootstrapBasicMessaging because of exception:
 com.ibm.websphere.sib.exception.SIResourceException: CWSIC1001E:
A client attempted to connect with a remote messaging
 engine (9.9.9.9:7299 - BootstrapBasicMessaging) but
 the connection cannot be completed. Ensure the
 messaging engine is started: exception com.ibm.ws.sib
 .jfapchannel.JFapConnectFailedException: CWSIJ0063E: A 
 network connection to host name 9.9.9.9, port 7299 cannot be established...
[time_stamp] 00000023 SystemOut O RemoteInvalidator unable to connect to ...
まず最初に、リモート・セル内の各サービス統合バス・メンバー が開始済みであることを確認します。次に、リモート・セルまたはコア・グループ内の 各サービス統合バス・メンバーに対して SIB_ENDPOINT_ADDRESS ポート が正しく指定されていることを確認します。正しくないポートが指定されている場合、 アウトバウンド構成を削除し ("--setup=dynacacheOutSIB --delete...")、 正しいポートを使用して再構成します。すべて正しく動作している 場合、ログには以下のメッセージに似たメッセージが 示されます。
[time_stamp] 0000000a RemoteInvalid I   
DYNA1075I: The "RemoteJMSInvalidator" external 
cache group is connected. The configured JNDI name
of the queue connection factory is 
"DynacacheDestination-cell2" and the JNDI name of 
the targeted destination is "jms/DynacacheOutBoundConnectionFactory-cell1".

プラットフォーム・メッセージング・コンポーネントが ユーザー ID を認証できない

説明 推奨される対応
マルチセル環境で、サービス統合バス・メンバー で以下のエラーが発生します。
[time_stamp] 00000022 SibMessage   E  [:] CWSII0050E: 
The Platform Messaging Component can not authenticate 
the user ID.
動的キャッシュ・サービスはセキュア・バスを使用しないため、このメッセージは誤解を 招く可能性があります。
このメッセージは以下のいずれかの問題を示している可能性があります。

存在していないバス宛先 に対する要求をサービス統合バスが受け取っている。送信側セル内で "--setup=dynacacheOutSIB" および "--setup=dynacacheECA" を実行するときに 正しいリモート・セル名が使用されたことを確認してください。

使用可能な サービス統合バス・メンバーがない。この問題のよくある原因は、 インバウンド・セットアップ "--setup=dynacacheInSIB" を行うときに誤ったクラスターが指定されることです。 サービス統合バス・クラスターが "--cluster" オプションに対して指定されていて、 他のクラスターではないことを確認してください。

メッセージング・エンジンの固有の ID が データ・ストア内で検出されたものと一致しない

説明 推奨される対応
マルチセル環境で、サービス統合バス・メンバー で以下のエラーが発生します。
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1535E: The messaging engine's unique id does not
 match that found in the data store.  ME_UUID=D520787E8CA7F18A, ME_UUID(DB)=980C0B42B3A904F3
[time_stamp] 0000002f SibMessage    I
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1546I: The messaging engine,
 ME_UUID=D520787E8CA7F18A, INC_UUID=7228ea45e216f3ef,
 has lost an existing lock or failed to gain an initial
 lock on the data store.
[time_stamp] 0000002f SibMessage    I
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1519E: Messaging engine edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2 
 cannot obtain the lock on its data store, which ensures 
 it has exclusive access to the data.
[time_stamp] 0000002d SibMessage    E
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS0002E: メッセージ・エンジンは、開始中に例外を検出しました。
Exception: com.ibm.ws.sib.msgstore.PersistenceException:
 CWSIS1501E: The data source has produced an unexpected
 exception: com.ibm.ws.sib.msgstore.persistence.
 DatasourceWrapperStateException: New connections cannot
 be provided because the persistence layer has been
 stopped	at com.ibm.ws.sib.msgstore.persistence.impl.
 PersistentMessageStoreImpl.start
 	(PersistentMessageStoreImpl.java:188)
		at com.ibm.ws.sib.msgstore.impl.MessageStoreImpl.
   start(MessageStoreImpl.java:1175)
		at com.ibm.ws.sib.admin.impl.JsMessagingEngineImpl.
	 	 start(JsMessagingEngineImpl.java:491)

サーバーを停止し、サービス統合バス・メンバーに対応する WAS_INSTALL_ROOT¥profiles¥AppSrv01¥filestores¥com.ibm.ws.sib 内のディレクトリーを削除し、サーバーを再始動します。

dynacacheJMSSIB スクリプト が DynacacheMessageHandler.ear ファイルを検出できない

説明 推奨される対応
マルチセル環境で、dynacacheJMSSIB スクリプト が DynacacheMessageHandler.ear ファイルを見つけることができず、以下の メッセージがログに示されます。
WASX7017E: Exception received while running file
"../../../util/dynacacheJMSSIB.py"; exception information:
com.ibm.ws.scripting.ScriptingException: WASX7115E: 
Cannot read input file "/opt/WAS/6.1/cf270928.19
 /profiles/AppSrv01/logs/DynacacheMessageHandler.ear"
WAS_INSTALL_ROOT/profiles/PROFILE_NAME/bin から dynacacheJMSSIB スクリプトを 実行して、../../../util/dynacacheJMSSIB.py および ../../../installableApps/DynacacheMessageHandler.ear を 適切な相対パスで検出できるようにします。

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdyn_trb
ファイル名:rdyn_trb.html