2.8.2 ネーミングで使用したキャッシュのクリア
ネーミングで使用しているキャッシュは,クリアできます。ただし,クリアするキャッシュサイズは設定できません。ここでは,キャッシュクリアが行われるタイミングと,クリアされる範囲について説明します。
- 〈この項の構成〉
(1) キャッシュクリアのタイミング
キャッシュの内容は次のどちらかのタイミングでクリアされます。
-
JNDIおよびRMI-IIOPのAPIで例外が発生した場合,キャッシュのクリアを強制的に実施します。
-
システムプロパティに指定した値の間隔でキャッシュをクリアします(デフォルト値は0秒で,キャッシュはクリアされません)。
(2) キャッシュクリアの範囲
ネーミングサービスでのキャッシュクリアの範囲について説明します。
キャッシュクリアの範囲は2とおりあります。
-
キャッシュ領域をすべてクリアします。
-
無効なキャッシュ領域だけをクリアします。
1.の場合,キャッシュの全領域をクリアします。一方,2.の場合は,定期的に,キャッシュに保存されたオブジェクトが有効かどうかを確認し,無効なオブジェクトだけをキャッシュからクリアします。また,2.の場合,キャッシュクリアと同じタイミングで,一度検索したCORBAネーミングサービスの状態を監視します。これによって,一度検索されたCORBAネーミングサービスの場合,CORBAネーミングサービスがダウンしたあとは,該当するCORBAネーミングサービスの検索を実施しません。また,CORBAネーミングサービスが再起動すると,該当するCORBAネーミングサービスの検索を自動的に開始します。
キャッシュクリアの設定方法は,「2.8.3 キャッシング機能を使用するための設定」を参照してください。
また,障害検知機能を使用する場合は,「2.9.4 実行環境の設定(障害検知機能を使用する場合)」を参照してください。
- 参考
-
EJBホームオブジェクトの再接続機能を使用している場合,J2EEサーバを再起動したあとでも,キャッシュは無効になりません。
このため,無効なキャッシュ領域だけをクリアする指定をしているときでも,CORBAネーミングサービスのEJBホームオブジェクトのオブジェクトリファレンスは,キャッシュ領域から削除されません。
EJBホームオブジェクトのリファレンスの検索(ルックアップ)で,削除されなかったキャッシュ上のオブジェクトリファレンスがそのまま使用できます。