無効化リスナー
無効化リスナーのメカニズムでは、キャッシュから内容が除去されたときにアプリケーションに通知するために、 Java™ イベントが使用されます。
アプリケーションは、InvalidationListener インターフェース (com.ibm.websphere.cache パッケージに定義されています) を 実装し、DistributedMap インターフェースを使用して、これをキャッシュに登録します。リスナーは、キャッシュからエントリーが除去されたときに InvalidationEvent (com.ibm.websphere.cache パッケージに定義されています) を受け取ります。 エントリーの除去は、ユーザーによる明示的な無効化、タイムアウト、最低使用頻度 (LRU) による除去、キャッシュ・クリア、またはディスク・タイムアウトが原因で発生します。 アプリケーションは直ちに無効化されたデータを再計算し、次のユーザー要求より前にキャッシュの事前準備を行います。
リスナーを登録する前に、DistributedMap でリスナー・サポートを使用可能にします。DistributedMap は、登録時のコールバックで、無効化リスナー Java Platform, Enterprise Edition (Java EE) コンテキストを使用するように構成することも可能です。 カスタム・プロパティー useListenerContext の値を true に設定すると、無効化リスナー Java EE コンテキストをコールバックで使用できるようになります。詳しくは、 キャッシュ・インスタンスの設定を参照してください。
以下の例は、無効化リスナーのセットアップ方法を示しています。
dmap.enableListener(true); // Enable cache invalidation listener.
InvalidationListener listener = new MyListenerImpl(); //Create invalidation listener object.
dmap.addInvalidationListener(listener); //Add invalidation listener.
:
:
:
dmap.removeInvalidationListener(listener); //Remove the invalidation listener. //This increases performance.
dmap.enableListener(false); // Disable cache invalidation listener. //This increases performance.
無効化リスナーの詳細については、com.ibm.websphere.cache パッケージについて 追加のアプリケーション・プログラミング・インターフェース (API)を参照してください。