WebSphere eXtreme Scale 動的キャッシュ・プロバイダーを使用するための動的キャッシュ (DynaCache) の構成

動的キャッシュ・エンジンは、動的キャッシュ API およびフレームワークのデフォルトのキャッシュ・プロバイダーです。 一方、動的キャッシュは、WebSphere eXtreme Scale がコア・キャッシュ・エンジンとして動作することを許可します。 キャッシュ・プロバイダーとして、デフォルトの動的キャッシュ・エンジンではなく、 WebSphere eXtreme Scale を使用するように動的キャッシュを構成することができます。 WebSphere eXtreme Scale を使用するように動的キャッシュを構成することにより、既存の動的キャッシュのキャッシング・コードを変更することなく、トランザクションのサポート、スケーラビリティー向上、高可用性、およびその他の WebSphere eXtreme Scale フィーチャーを活用することができます。

始める前に

  • WebSphere eXtreme Scale の機能の概要については、『概要: 動的キャッシュ』のトピックをお読みください。
  • アプリケーション・サーバーで実行されているアプリケーションにとって WebSphere eXtreme Scale の使用が効果的であるかを判断します。

    WebSphere eXtreme Scale のフィーチャーが提供する動的キャッシュ機能の分散ケイパビリティーは、デフォルトの動的キャッシュ・エンジンおよびデータ複製サービスによって提供されるものより大幅に増大します。 WebSphere eXtreme Scale を使用すると、複数サーバー間で単にキャッシュを複製して同期するのではなく、 サーバー間で真に分散されたキャッシュを作成することができます。 WebSphere eXtreme Scale キャッシュは、トランザクション型で可用性が高く、各サーバーが確実に同一の動的キャッシュ・コンテンツを参照するようにします。 また、WebSphere eXtreme Scale は、キャッシュ複製に関して、データ複製サービス (DRS) より高品質のサービスを提供します。

    こうした利点はありますが、eXtreme Scale の動的キャッシュ・プロバイダーがすべてのアプリケーションにおける正しい選択肢であるという意味ではありません。 WebSphere eXtreme Scale バージョン 7.0 のインフォメーション・センターにあるトピック『WebSphere eXtreme Scale の動的キャッシュ・プロバイダーの構成』にあるデシジョン・ツリーと機能比較マトリックスを使用してこのキャッシュ・プロバイダーが適しているかを確認してください。

これがアプリケーションに有用であると判断したら、「WebSphere eXtreme Scale バージョン 7.0 の製品概要」の『WebSphere eXtreme Scale の動的キャッシュ・プロバイダーの構成』セクションの情報を使用して、キャッシュ・デプロイメントに適した WebSphere eXtreme Scale トポロジーを決定します。

デフォルトの動的キャッシュ・エンジンの代わりに WebSphere eXtreme Scale を使用する場合、動的キャッシュには次の制限があります。
  • ディスク・キャッシュはサポートされません。以下のカスタム・プロパティーは機能しません。
    • com.ibm.ws.cache.CacheConfig.enableDiskOffload
    • com.ibm.ws.cache.CacheConfig.diskOffloadLocation
    • com.ibm.ws.cache.CacheConfig.flushToDiskOnStop
    • com.ibm.ws.cache.CacheConfig.htodCleanupFrequency
    • com.ibm.ws.cache.CacheConfig.htodDelayOffload
    • com.ibm.ws.cache.CacheConfig.htodDelayOffloadEntriesLimit
    • com.ibm.ws.cache.CacheConfig.htodDelayOffloadDepIdBuckets
    • com.ibm.ws.cache.CacheConfig.htodDelayOffloadTemplateBuckets
    • com.ibm.ws.cache.CacheConfig.diskCachePerformanceLevel
    • com.ibm.ws.cache.CacheConfig.diskCacheEvictionPolicy
    • com.ibm.ws.cache.CacheConfig.diskCacheHighThreshold
    • com.ibm.ws.cache.CacheConfig.diskCacheLowThreshold
    • com.ibm.ws.cache.CacheConfig.diskCacheSize
    • com.ibm.ws.cache.CacheConfig.diskCacheSizeInGB
    • com.ibm.ws.cache.CacheConfig.diskCacheEntrySizeInMB
    • com.ibm.ws.cache.CacheConfig.explicitBufferLimitOnStop
    • com.ibm.ws.cache.CacheConfig.lruToDiskTriggerTime
    • com.ibm.ws.cache.CacheConfig.lruToDiskTriggerPercent
    トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): extremeScale の構成前に、ディスク・オフロード機能を使用不可にする必要があります。 ディスク・オフロード機能を使用不可にするには、以下のようにします。
    1. 管理コンソールで、「サーバー」>「サーバー・タイプ」>「WebSphere Application Server」>「server_name」>「コンテナー・サービス」>「動的キャッシュ・サービス」をクリックします。
    2. 「ディスク・オフロードを使用可能にする」プロパティーを見つけて、このプロパティーが選択されている場合は選択解除します。
    extremeScale をキャッシュ・プロバイダーとして構成する前にディスク・オフロードを使用不可にするのを忘れた場合は、以下の wsadmin コマンドを使用して、ディスク・オフロード機能を使用不可にします。
    1. 以下のコマンドを発行して、サーバーの構成オブジェクトを見つけます。
      wsadmin>$AdminConfig list DynamicCache
      (cells/optimusprimeCell01/nodes/optimusprimeNode01/servers/server1|serve
      r.xml#dynamic_cache_name)
    2. 以下の AdminConfig modify コマンドを発行して、ディスク・オフロードを false に設定します。
      wsadmin>$AdminConfig modify
      (cells/optimusprimeCell01/nodes/optimusprimeNode01/servers/server1|serve
      r.xml#dynamic_cache_name) {{enableDiskOffload false}} 
    3. 以下のコマンドを発行して、この構成変更を保存します。
      wsadmin>$AdminConfig save
    gotcha
  • DRS による複製は行われません (push または push-pull はサポートされません)。以下のカスタム・プロパティーは機能しません。
    • com.ibm.ws.cache.CacheConfig.enableReplicationAcks
    • com.ibm.ws.cache.CacheConfig.enableCacheReplication
    • com.ibm.ws.cache.CacheConfig.replicationDomain
    • com.ibm.ws.cache.CacheConfig.cacheEntryWindow
    • com.ibm.ws.cache.CacheConfig.cachePercentageWindow
    • com.ibm.ws.cache.CacheConfig.cacheInvalidateEntryWindow
    • com.ibm.ws.cache.CacheConfig.cacheInvalidatePercentWindow
    • com.ibm.ws.cache.CacheConfig.filterTimeOutInvalidation
    • com.ibm.ws.cache.CacheConfig.filterLRUInvalidation
  • オブジェクト・キャッシュの別名 API フィーチャーはサポートされません。
  • イベント・リスナーがサポートされます。何らかのイベントが発行されるたびに、WebSphere® eXtreme Scale は常に sourceOfInvalidation を REMOTE に設定します。
  • 依存 ID の使用不可 (com.ibm.ws.cache.CacheConfig.disableDependencyId) およびテンプレートの使用不可 (com.ibm.ws.cache.CacheConfig.disableTemplatesSupport) はサポートされません。
  • PMI はサポートされません。
  • 以下の CacheStatistic カウンターがサポートされます。
    • CacheHits
    • CacheLruRemoves
    • CacheMisses
    • CacheRemoves
    • ExplictInvalidationsFromMemory
    • MemoryCacheEntries
    • TimeoutInvalidationsFromMemory
  • NioMap - skipMemoryAndWriteToDisk は、ディスク・キャッシュがサポートされないため、機能しません。 また、NIO バッファー管理に対して byteBuffer を解放するための DistributedNioMapObject.release() が呼び出されません。

WebSphere eXtreme Scale 動的キャッシュ・プロバイダーを使用可能にするには、以下のアクションを行います。

手順

  1. リモート・サーバー用およびその他のトポロジー用のアプリケーション・サーバーにそれぞれ、WebSphere eXtreme Scale クライアント、または WebSphere eXtreme Scale クライアントとサーバーのパッケージをインストールします。
    トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): WebSphere eXtreme Scale クライアントのインストールとリモート・トポロジーのみがサポートされています。gotcha
  2. WebSphere eXtreme Scale 動的キャッシュ・プロバイダーをキャッシュ・プロバイダーとして指定します。

    WebSphere eXtreme Scale を使用するように各キャッシュ・インスタンスを個別に構成することができます。 動的キャッシュ・エンジンは、キャッシュ・インスタンスのデフォルト・キャッシュ・プロバイダーです。 WebSphere eXtreme Scale で構成されたキャッシュ・インスタンスは、DRS で構成されたキャッシュ・インスタンスと共存できます。

    以下のいずれかのアクションを行って、 WebSphere eXtreme Scale 動的キャッシュ・プロバイダーをキャッシュ・プロバイダーとして指定します。

    1. 管理コンソールを使用して、WebSphere eXtreme Scale 動的キャッシュ・プロバイダーをキャッシュ・プロバイダーとして指定します。
      1. 管理コンソールで、「サーバー」>「サーバー・タイプ」>「WebSphere Application Server」> server_name」とクリックします。
      2. 「コンテナー・サービス」の下で、「動的キャッシュ・サービス」server_name をクリックし、 「キャッシュ・プロバイダー」フィールドで「WebSphere eXtreme Scale 動的キャッシュ・プロバイダー」を選択します。
      3. 「OK」をクリックします。
    2. エンタープライズ・アプリケーションにバンドルされた cacheinstances.properties ファイルに cacheProviderName プロパティーを追加し、 このプロパティーに com.ibm.ws.objectgrid.dynacache.CacheProviderImpl を設定します。

      例えば、cache.instance.26 の場合、cacheinstances.properties ファイルに次の行を追加します。

      cache.instance.26.cacheProviderName = com.ibm.ws.objectgrid.dynacache.CacheProviderImpl
    3. エンタープライズ・アプリケーションのコードに次のファクトリー API を追加します。
      Properties p = new Properties();
                      ==>p.put(CacheConfig.CACHE_PROVIDER_NAME, CacheConfig.CACHE_PROVIDER_OBJECT_GRID);
                      DistributedMap map1 = DistributedMapFactory.getMap("myMap", p);
                      DistributedMap map2 = DistributedObjectCacheFactory.getMap("myMap2", p);
  3. キャッシュ・インスタンスの複製設定を構成します。

    WebSphere eXtreme Scale 動的キャッシュ・プロバイダーを使用して、ローカル・キャッシュ・インスタンスと複製キャッシュ・インスタンスを持つことができます。

    ローカル・キャッシュ・インスタンスを使用するだけの場合は、最後のステップに進み、構成変更を保存します。 ローカル・キャッシュで、WebSphere eXtreme Scale コンテナーは JVM と同じ場所にあります。つまり、 WebSphere eXtreme Scale コンテナーと WebSphere Application Server は同一の JVM ヒープを共有します。

    複製キャッシュを使用する場合は、キャッシュ・インスタンスの作成方法に応じて、以下のアクションのいずれかを実行してください。

    1. 管理コンソールの「Java 仮想マシン」>「カスタム・プロパティー」ページで、 「新規」をもう一度クリックします。名前」フィールドに com.ibm.ws.cache.CacheConfig.enableCacheReplication と入力し、 「」フィールドに true と入力して、 「OK」をクリックします。
    2. エンタープライズ・アプリケーションにバンドルされた cacheinstances.properties ファイルに enableCacheReplication プロパティーを追加し、 このプロパティーに true を設定します。
      例えば、cache.instance.26 の場合、cacheinstances.properties ファイルに次の行を追加します。
      cache.instance.26.enableCacheReplication = true
    3. エンタープライズ・アプリケーションのコードに次のファクトリー API を追加します。
      Properties p = new Properties();
                      p.put(CacheConfig.CACHE_PROVIDER_NAME, CacheConfig.CACHE_PROVIDER_OBJECT_GRID);
                      ==>p.put(CacheConfig.ENABLE_CACHE_REPLICATION, "true");
                      DistributedMap map1 = DistributedMapFactory.getMap("myMap", p);
                      DistributedMap map2 = DistributedObjectCacheFactory.getMap("myMap2", p);
  4. WebSphere eXtreme Scale の複製トポロジーを構成します。

    WebSphere eXtreme Scale 動的キャッシュ・プロバイダーに唯一必須の構成パラメーターが、キャッシュ・トポロジー・パラメーターです。

    1. 管理コンソールの「Java 仮想マシン」>「カスタム・プロパティー」ページで、 「新規」をもう一度クリックします。名前」フィールドに com.ibm.websphere.xs.dynacache.topology と入力し、 「」フィールドに次のいずれかの値を入力します。
      • embedded
      • embedded_partitioned
      • remote
      トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): embedded_partitioned を指定した場合には、 JVM 設定に com.ibm.websphere.xs.dynacache.num_initial_containers カスタム・プロパティーも追加して、 この分散キャッシュ・インスタンスにアクセスするサーバー・インスタンスの合計数と同じか、それより少し小さい整数をこのプロパティーに設定してください。gotcha
    2. com.ibm.websphere.xs.dynacache.topology プロパティーを、エンタープライズ・アプリケーションにバンドルされている cacheinstances.properties ファイルに追加し、プロパティーを embeddedembedded_partitioned、または remote に設定します。
      例えば、cache.instance.26 の場合、cacheinstances.properties ファイルに次の行を追加します。
      cache.instance.26.com.ibm.websphere.xs.dynacache.topology = embedded
      トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): embedded_partitioned を指定した場合には、 cacheinstances.properties ファイルに com.ibm.websphere.xs.dynacache.num_initial_containers プロパティーも追加して、 この分散キャッシュ・インスタンスにアクセスするサーバー・インスタンスの合計数と同じか、それより少し小さい整数をこのプロパティーに設定してください。gotcha

      例えば、グリッド・メンバー間で動的キャッシュ・サービスが共有される場合、 この変数にグリッド・メンバーの数を設定します。

    3. エンタープライズ・アプリケーションのコードに次のファクトリー API を追加します。
      Properties p = new Properties();
                      p.put(CacheConfig.CACHE_PROVIDER_NAME, CacheConfig.CACHE_PROVIDER_OBJECT_GRID);
                      p.put(CacheConfig.ENABLE_CACHE_REPLICATION, "true");
                      ==>p.put("com.ibm.websphere.xs.dynacache.topology", "embedded");
                      ==>p.put("com.ibm.websphere.xs.dynacache.num_initial_containers", "3");
                      DistributedMap map1 = DistributedMapFactory.getMap("myMap", p);
                      DistributedMap map2 = DistributedObjectCacheFactory.getMap("myMap2", p);

    embeddedembedded_partitioned、 および remote の設定について詳しくは、 WebSphere eXtreme Scale バージョン 7 インフォメーション・センター内の WebSphere eXtreme Scale の動的キャッシュ・プロバイダーの構成のトピックを参照してください。

  5. eXtreme Scale カタログ・サービス・グリッドを構成します。

    カタログ・サービス・グリッドを実行する場合、カタログ・サービス・エンドポイントの catalog.services.cluster カスタム・プロパティーを設定する必要があります。

    WebSphere Application Server 環境でのカタログ・サービス・プロセスの開始方法の説明については、WebSphere eXtreme Scale バージョン 7 インフォメーション・センター内の WebSphere Application Server 環境でのカタログ・サービス・プロセスの開始のトピックを参照してください。

    1. 管理コンソールで、「システム管理」>「セル」>「カスタム・プロパティー」>「新規」とクリックします。
    2. 名前」フィールドに catalog.services.cluster と入力し、 「」フィールドに server_name:host_name:client_port:peer_port:listener_port の適切な値を入力します。
      • server_name は、カタログ・サービスをホストするサーバーの WebSphere プロセスの完全修飾名 (セル名、ノード名、サーバー名など) です。 例: cellA¥node1¥nodeagent
      • host_name は、ホスティング・サーバーの名前です。
      • client_port は、ピア・カタログ・グリッド通信に使用されるポートです。
      • peer_port は、ピア・カタログ・グリッド通信に使用されるポートです。
      • listener_port は、リスナー・ポートです。 このポートは、サーバー構成で定義される BOOTSTRAP_ADDRESS 値と一致しなければなりません。
      有効な値の例を以下に示します。
      cellA\node1\nodeagent:host.local.domain:6600:6601:2809,cellA\node2\
      nodeagent:host.foreign.domain:6600:6601:2809
    3. 「OK」をクリックします。
  6. 保存」をクリックして、すべての構成変更を保存します。
  7. WebSphere eXtreme Scale を使用するように構成したすべてのアプリケーション・サーバーを再始動します。
  8. カスタム・キー・オブジェクトを構成します。

    カスタム・オブジェクトをキーとして使用する場合、オブジェクトが Serializable インターフェースまたは Externalizable インターフェースを実装する必要があります。 組み込みまたは組み込み区画化のトポロジーでカスタム・オブジェクトを使用する場合には、 デフォルトの動的キャッシュ・プロバイダーを使用する場合と同じように、共有ライブラリー・パスにオブジェクトを置いてください。 詳しくは、『動的キャッシュ用の DistributedMap および DistributedObjectCache インターフェースの使用』のトピックを参照してください。

    リモートのトポロジーを使用する場合には、 スタンドアロンの WebSphere eXtreme Scale コンテナーの CLASSPATH にカスタム・キー・オブジェクトを置いてください。 詳しくは、「WebSphere eXtreme Scale バージョン 7.0 管理ガイド」でコンテナー・プロセスの開始手順を参照してください。 この資料は、WebSphere eXtreme Scale のライブラリー・ページで入手できます。

  9. eXtreme Scale コンテナー・サーバーを構成します。

    キャッシュ・データは、WebSphere eXtreme Scale コンテナーに格納されます。 これらのコンテナーは、WebSphere Application Server プロセスの内部でも外部でも実行可能です。 キャッシュ・インスタンスに組み込みまたは組み込み区画化のトポロジーを使用する場合、 eXtreme Scale プロバイダーは、WebSphere Application Server プロセスの内部にコンテナーを自動的に作成します。 これらのトポロジーの場合、それ以上の構成は必要ありません。

    リモートのトポロジーを使用する場合には、 キャッシュ・インスタンスにアクセスする WebSphere Application Server インスタンスを開始する前に、 スタンドアロンの eXtreme Scale コンテナーを始動する必要があります。 「WebSphere eXtreme Scale バージョン 7.0 管理ガイド」に、スタンドアロン・コンテナーの開始に必要な手順が記載されています。

    トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): 必ず、特定の動的キャッシュのコンテナーがすべて、同じカタログ・サービス・エンドポイントを指すようにしてください。gotcha

    スタンドアロン eXtreme Scale 動的キャッシュ・プロバイダー・コンテナーの構成ファイル dynacache-remoteobjectgrid.xml および dynacache-remote-definition.xml は、WebSphere eXtreme Scale が WebSphere Application Server に加えてインストールされている場合には install_root/customLibraries/ObjectGrid/dynacache/etc ディレクトリーに、 スタンドアロン・バージョンの WebSphere eXtreme Scale を使用する場合には install_root/ObjectGrid/dynacache/etc ディレクトリーにあります。 これらのファイルのコピーを作成して編集し、eXtreme Scale 動的キャッシュ・プロバイダーのスタンドアロン・コンテナーを起動する際に使用します。 dynacache-remote-deployment.xml ファイルの numIntitialContainers パラメーターの値は、 実行されるコンテナー・プロセスの数に基づいて指定します。

    次の例は、WebSphere eXtreme Scale 動的キャッシュ・プロバイダーのスタンドアロン・コンテナーを起動する、 UNIX ベースのコマンド行入力を示しています。
    startOgServer.sh container1 -objectGridFile ../dynacache/etc/dynacache-remoteobjectgrid.
    xml -deploymentPolicyFile ../dynacache/etc/dynacache-remotedeployment.
    xml -catalogServiceEndpoints MyServer1.company.com:2809
    トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): 一連のコンテナー・プロセスには、 リモート・トポロジーの使用を構成されたすべての動的キャッシュ・インスタンスを処理するために十分な空きメモリーが必要です。 catalog.services.cluster の値が同じ、または同等の値を共有する WebSphere Application Server プロセスはすべて、同じスタンドアロン・コンテナーのセットを使用しなければなりません。コンテナーの数と、それらが配置されるマシンの数は、適切に見積もる必要があります。 追加の詳細については、「WebSphere eXtreme Scale バージョン 7.0 の製品概要」の『キャパシティー・プランニングと高可用性』のトピックを参照してください。 この資料は、WebSphere eXtreme Scale のライブラリー・ページで入手できます。gotcha
  10. WebSphere eXtreme Scale 動的キャッシュ・プロバイダーが正しく構成されていることを確認します。
    WebSphere eXtreme Scale 動的キャッシュ・プロバイダーが正しく構成されている場合には、 システム・ログに、次のメッセージに類似したメッセージが多数含まれます。
    DYNA1001I:  "{0}" という名前の WebSphere 動的キャッシュ・インスタンスが、キャッシュ・プロバイダー "{1}" を使用して正常に初期化されました。
    DYNA1071I: キャッシュ・プロバイダー ¥"{0}¥" が使用されています。
    WebSphere eXtreme Scale を使用したキャッシュ・インスタンスの構成と初期化が失敗した場合、 動的キャッシュのランタイムはデフォルトの動的キャッシュ・プロバイダーに戻します。 システム・ログには、以下のメッセージに類似したメッセージが出現します。
    DYNA1066E: キャッシュ・プロバイダー ¥"{0}¥" を初期化できません。
    構成されたキャッシュ・プロバイダーの代わりに動的キャッシュが使用されて、
    キャッシュ・インスタンス ¥"{1}¥" が作成されます。

トピックのタイプを示すアイコン タスク・トピック



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