動的キャッシュ・サービスのマルチセルおよびマルチコアのグループの無効化
動的キャッシュ・サービスのマルチセルおよびマルチコアのグループを無効化することにより、 異なるセルで作成されたキャッシュを、キャッシュ・エントリーをセル境界にまたがって複製することなく、 同期化することができます。サーブレット・キャッシュ・インスタンスまたはオブジェクト・キャッシュ・インスタンスのいずれかでこの機能を使用可能にした場合、セルが同じトラフィックを処理すると、 両方のセルでデータがキャッシュに入れられます。Java Message Service (JMS) を使用して Java キャッシュ・エントリーを無効化すると、無効化されたキャッシュ・エントリーの ID は対等なセルに送信されます。 受信側のセルは、サービス統合バスを使用して無効化を処理します。 この機能を使用して、同じセル内の他のコア・グループに無効化を伝搬することもできます。
動的キャッシュの外部キャッシュ・アダプター ExternalCacheAdapter (ECA) は、 サーバーから無効化をキャプチャーする際に使用されます。JMS/サービス統合バスは、 リモート・セルまたはコア・グループでの無効化の送受信に使用されます。 無効化アプリケーションをホストするために、追加のアプリケーション・サーバーが作成されます。 これらのサーバーは、自動的にサービス統合バスのメンバーになります。 これらのアプリケーション・サーバーは、JMS メッセージからなる、リモート・セルからの無効化を 処理し、それをローカル・セル内のクラスター・メンバーに伝達します。
無効化されたキャッシュの ID をリモート・セル内のサービス統合バスに送信するために、 外部キャッシュ・キャッシュ・アダプター com.ibm.websphere.servlet.cache.RemoteInvalidator が使用されます。 このタイプの外部キャッシュ・アダプターは、アドレスにホスト host:port を指定する代わりに、 アドレスとして、次のように、JMS キュー接続ファクトリー JNDI 名と、リモート・サービス統合バスのキュー宛先名を使用します。
Adapter bean name = com.ibm.websphere.servlet.cache.RemoteInvalidator
Address = JMS_QUEUE_CONNECTION_FACTORY_JNDI_NAME, REMOTE_QUEUE_DESTINATION_NAME
- 各セルまたは各コア・グループに、実動アプリケーションをホストするクラスターが含まれること。 無効化 ID が正しく処理されるように、両方のセルまたはコア・グループで同じ実動アプリケーションが使用される必要があります。
- 2 つのサーバーの別個のクラスターが、サービス統合バスをホストするため、各セルまたは各コア・グループに作成されていること。 このクラスターのメンバーには、 RemoteJMSInvalidator 外部キャッシュ・グループを定義できません。 これらのクラスター・メンバーに RemoteJMSInvalidator 外部キャッシュ・グループが定義されていると、 セル間で無効化が繰り返し送信される無限ループバック状態になります。
- データ・ソースが定義されていて、両方のサービス統合バス・クラスター・メンバーから アクセス可能であること。データベースが両方のセルによって共有される場合、各セルの各データ・ソースを定義するときに固有のデータベース名が使用されるようにしてください。
- 各セルまたは各コア・グループが 1 つの複製ドメインを含んでいて、その複製ドメイン内には、サービス統合バス・クラスターと、 実動アプリケーションをホスティングするすべてのクラスターの両方が含まれること。
- com.ibm.ws.cache.CacheConfig.interCellReplication
- enableInterCellInvalidation
構成の考慮事項
WAS_INSTALL_ROOT/profiles/Dmgr01/bin)
サーブレット またはオブジェクト・キャッシュ・インスタンスの構成は、コア・グループ内の両方のクラスター に対して使用可能にする必要があります。プロパティー・ファイル、ファクトリー、または管理コンソール のいずれかを使用して、サーブレットまたはオブジェクト・キャッシュ・インスタンスを構成できます。 この構成は、セルの有効範囲で設定しなければならず、 サービス統合バスとコア・グループ内の実動クラスターの両方に対して使用可能にする必要があります。 構成を両方に対して確実に使用可能にするために最も簡単な方法は、アプリケーションのインストール時に、 Web プロダクションとサービス統合バス・クラスターの両方にキャッシュ・インスタンスを 作成および定義する方法です。
cache.instance.0=/services/cache/instance_one
cache.instance.0.cacheSize=1000
cache.instance.0.enableInterCellInvalidation=true
Properties p = new Properties();
==>p.put("com.ibm.ws.cache.CacheConfig.enableInterCellInvalidation", "true");
DistributedMap map1 = DistributedMapFactory.getMap("myMap", p);
管理コンソールでこれらのプロパティーを設定するには、
「サーバー」>「アプリケーション・サーバー」>server_name とクリックし、
「サーバー・インフラストラクチャー」セクションで「Java™ およびプロセス管理」>「プロセス定義」
>「制御」>「Java 仮想マシン」
>「カスタム・プロパティー」とクリックするか、または「リソース」>「キャッシュ・インスタンス」>「オブジェクト・キャッシュ・インスタンス」> cache_instance_name とクリックします。
管理コンソールでこれらのプロパティーを設定するには、
「サーバー」>「アプリケーション・サーバー」> server_name とクリックし、
「サーバー・インフラストラクチャー」セクションで「Java およびプロセス管理」>「プロセス定義」
>「Java 仮想マシン」>「カスタム・プロパティー」と
クリックするか、または「リソース」>「キャッシュ・インスタンス」>
「オブジェクト・キャッシュ・インスタンス」> cache_instance_name とクリックします。
- インバウンド JMS/サービス統合バスの構成。これは、以下のアクションからなります。
- サービス統合バスの作成およびサービス統合バス宛先の指定。
- JMS キューの作成。
- JMS の活動化。
- メッセージ駆動型 Bean である WAS_INSTALL_ROOT/installables/DynacacheMessageHandler.ear ファイルの サービス統合バス・クラスターへのインストール。
- アウトバウンド JMS/サービス統合バスの構成。これは、JMS キュー接続ファクトリー から構成されます。
- 外部キャッシュ・グループの構成。これは、外部キャッシュ・グループ、および実動アプリケーション をホストしている各クラスター・メンバー上の外部キャッシュ・アダプターから構成されます。
チューニング考慮事項
- dynacache.jms.connRetryInterval
- クラスター・メンバーがサービス統合バス・サーバーへの再接続を試行する前に待機する 秒数を指定します。デフォルト値は 30 です。
- dynacache.jms.numStoredInvalidations
- サービス統合バス・サーバーが使用可能になるのを待機する間にクラスター・メンバーが保管できる無効化 ID の最大数を指定します。しきい値に達すると、最も古い無効化が削除されます。デフォルト値は 10000 です。
- dynacache.jms.cacheInstance
- 無効化の処理に使用するキャッシュ・インスタンスを指定します。このプロパティーに "*" を設定すると、無効化 ID がすべてのキャッシュ・インスタンスで処理されます。 デフォルトでは、baseCache キャッシュ・インスタンスが使用されます。 このプロパティーは、サービス統合バス・サーバーのみに適用できます。
- dynacache.jms.invProcessingDelay
- サービス統合バス・サーバーが無効化 ID を処理する前にそれらをキューイングする秒数を指定します。デフォルト値は 20 です。