Oracle Coherenceアプリケーションは、Weblogic Server MTで提供される密度および操作効率を最大限に活用できます。すべてのテナントのインストゥルメンテーションは自動的に提供され、アプリケーションに変更を加える必要はありません。
この章の内容は次のとおりです。
マルチテナント・ドメインでは、すべてのドメイン・パーティションで使用可能な単一の共有Oracle Coherenceクラスタを使用します。アプリケーション・キャッシュは独立しており、ドメイン・パーティション・レベルで共有することもできます。一般的なデプロイメント・ツールはOracle Coherenceグリッド・アーカイブ(GAR)モジュールのデプロイおよび管理に使用され、一般的なパーティション・ライフサイクル操作はOracle Coherenceサービスのライフサイクルの管理に使用されます。
マルチテナント・ドメインでのOracle Coherence設定の理解
マルチテナント・ドメインでのOracle Coherenceの設定では、管理対象Oracle Coherenceサーバーを使用する必要があります。ドメインのOracle Coherenceクラスタを最初に作成し、すべての管理対象Oracle Coherenceサーバーがそのクラスタの一部になるように構成する必要があります。管理対象Oracle Coherenceサーバーは、通常、WebLogic Serverクラスタを使用して層内に設定され、これにより、Oracle Coherenceは必要に応じて簡単にスケール・アップまたはスケール・ダウンできます。詳細は、『Oracle WebLogic Serverクラスタの管理』を参照してください。さらに、マルチテナント・ドメインにデプロイするために、Oracle CoherenceアプリケーションをGARモジュールとしてパッケージ化する必要があります。Oracle CoherenceアプリケーションのGARモジュールとしてのパッケージ化の詳細は、『Oracle WebLogic Server Oracle Coherenceアプリケーションの開発』を参照してください。
マルチテナント・ドメインでのキャッシュ分離の理解
マルチテナント・ドメインでのキャッシュ分離では、複数のドメイン・パーティションに単一のGARモジュールをデプロイし、すべてのテナントで使用されるようにすることができます。分離はドメイン・パーティション・レベルで提供され、アプリケーションに対して透過的です。GARモジュールがドメイン・パーティションにデプロイされると、新しいキャッシュ・サービス・インスタンスが作成され、そのドメイン・パーティションに分離されます。GARモジュールは、Oracle Coherenceサービスの起動時に適切なtenant-id
およびmeta-data
を生成します。一部のキャッシュ構成プロパティは、各ドメイン・パーティション用の異なる値でオーバーライドされる場合があります
キャッシュ共有の理解
キャッシュの共有により、複数のドメイン・パーティションで単一のキャッシュ・インスタンスを使用できます。各テナントは同じキャッシュにアクセスできます。キャッシュの共有は、パーティション・レベルで有効化され、キャッシュにアクセスする各ドメイン・パーティションで設定する必要があります。キャッシュの共有は、アプリケーションに対して透過的です。
キャッシュ共有では、最大限のキャッシュ再利用を行い、最も効率的にリソースを使用します。ただし、キャッシュ共有は、キャッシュ・データがいずれのテナントにも固有でない場合にのみ使用する必要があります。
Oracle Coherenceアプリケーションは、Fusion Middleware ControlやWLSTなどの一般的なデプロイ・ツールを使用してデプロイされます。
マルチテナント環境でのアプリケーションのデプロイの詳細は、「アプリケーションのデプロイ」を参照してください。
Oracle Coherenceアプリケーションをデプロイする場合は、「スコープ」フィールドを使用して、アプリケーションがデプロイされるドメイン・パーティションを指定します。Oracle Coherenceアプリケーションは、次のものにデプロイできます。
グローバル・スコープ: グローバル・スコープは、非マルチテナント・デプロイメントと同等で、キャッシュ分離は設定されません。
リソース・グループ・テンプレート: アプリケーションは指定されたリソース・グループ・テンプレートを使用するように構成されたドメイン・パーティションにデプロイされます。キャッシュ・インスタンスは各ドメイン・パーティションに分離されます。
パーティションのリソース・グループ: アプリケーションは指定されたリソース・グループを使用するように構成されたパーティションにデプロイされます。キャッシュ・インスタンスは各ドメイン・パーティションに分離されます。
キャッシュ構成プロパティは、各ドメイン・パーティションで指定できます。GARモジュールの初期化時に、パーティション固有の値がキャッシュ構成に挿入されます。たとえば、1つのパーティションのキャッシュが5分後にエントリを失効するように構成され、別のドメイン・パーティションのキャッシュが10分後にエントリを失効するように構成される場合があります。どちらの場合も、同じキャッシュ構成ファイルがGARモジュールにデプロイされます。
キャッシュ構成プロパティをオーバーライドする主な手順は次のとおりです。
パーティション設定を編集するパーティションを選択します。
オーバーライドされるプロパティの名前および値を追加して、Oracle Coherence構成設定を更新します。
Fusion Middleware Controlを使用して、キャッシュ構成プロパティをオーバーライドするには、オンライン・ヘルプのドメイン・パーティションOracle Coherenceキャッシュの構成に関する項を参照してください。
WLSTの使用
キャッシュ構成プロパティをオーバーライドし、Weblogic ServerドメインMBeanサーバーに接続して、プロパティを指定する場合はcreateCoherencePartitionCacheProperty
操作を実行し、プロパティ値を入力する場合はsetValue
操作を実行します。次に例を示します。
cd('/') cd('/Partitions/MyPartition-1') cmo.createCoherencePartitionCacheConfig('MyConfig') cd('CoherencePartitionCacheConfigs/MyConfig') cmo.createCoherencePartitionCacheProperty('expiry-delay') cd('CoherencePartitionCacheProperties/expiry-delay') cmo.setValue('3600s')
キャッシュ構成プロパティは、destroyCoherencePartitionCacheConfig
操作を使用して削除することもできます。次に例を示します。
cd('/') cd('/Partitions/MyPartition-1') cmo.createCoherencePartitionCacheConfig('MyConfig') cd('CoherencePartitionCacheConfigs/MyConfig/CoherencePartitionCacheProperties/ expiry-delay') property = cmo cd('..') cmo.destroyCoherencePartitionCacheProperty(property)
キャッシュの共有は、キャッシュをデプロイする各パーティションで明示的に設定する必要があります。1つのパーティションのキャッシュに対してキャッシュ共有を有効にした場合、すべてのパーティションで自動的にキャッシュが共有されることはありません。
同じキャッシュ・スキームをマルチテナント・ドメインで共有キャッシュおよび非共有キャッシュの両方に使用することはできません。ただし、キャッシュ・スキームでは、スキーム参照を使用して、同じスキーム定義を再利用できます。次に例を示します。
<caching-scheme-mapping> <cache-mapping> <cache-name>example</cache-name> <scheme-name>ExamplesPartitioned-NonShared</scheme-name> </cache-mapping> <cache-mapping> <cache-name>example-shared</cache-name> <scheme-name>ExamplesPartitioned-Shared</scheme-name> </cache-mapping> </caching-scheme-mapping> <caching-schemes> <distributed-scheme> <scheme-name>ExamplesPartitioned-NonShared</scheme-name> <scheme-ref>ExamplesPartitionedScheme</scheme-ref> </distributed-scheme> <distributed-scheme> <scheme-name>ExamplesPartitioned-Shared</scheme-name> <scheme-ref>ExamplesPartitionedScheme</scheme-ref> </distributed-scheme> <distributed-scheme> <scheme-name>ExamplesPartitionedScheme</scheme-name> <service-name>ExamplesPartitionedCache</service-name> <backing-map-scheme> <local-scheme> <high-units>32M</high-units> <unit-calculator>binary</unit-calculator> </local-scheme> </backing-map-scheme> <autostart>true</autostart> </distributed-scheme> </caching-schemes>
キャッシュ共有を有効化する主な手順は次のとおりです。
パーティション設定を編集するパーティションを選択します。
パーティションにOracle Coherenceキャッシュを追加します。
キャッシュが共有されることを指定します。
キャッシュを共有する各パーティションでこのプロセスを繰り返します。構成値は、各パーティションで同じである必要があります。
Fusion Middleware Controlを使用して、キャッシュ共有を有効化するには、オンライン・ヘルプのドメイン・パーティションOracle Coherenceキャッシュの構成に関する項を参照してください。
WLSTの使用
パーティション間でのキャッシュ共有を有効化するには、Weblogic ServerドメインMBeanサーバーに接続し、true
パラメータを指定してsetShared
操作を実行します。次に例を示します。
cd('/') cd('/Partitions/MyPartition-1') cmo.createCoherencePartitionCacheConfig('MyConfig') cd('CoherencePartitionCacheConfigs/MyConfig') cmo.setShared(true) cd('/') cd('/Partitions/MyPartition-2') cmo.createCoherencePartitionCacheConfig('MyConfig') cd('CoherencePartitionCacheConfigs/MyConfig') cmo.setShared(true)
Oracle Coherenceアプリケーションでは、WebLogic Serverで使用可能な認可機能を使用します。認可ロールおよびポリシーは、キャッシュおよびサービスに構成され、各パーティションに設定される必要があります。
マルチテナント・ドメインでのセキュリティの詳細は、「セキュリティの構成」を参照してください。WebLogic ServerにおけるOracle Coherenceセキュリティの詳細は、『Oracle Coherenceの保護』を参照してください。
注意:
共有キャッシュは、グローバル・パーティションによって所有され、認可はグローバル・レルムに基づきます。
マルチテナントでのOracle Coherenceの使用例の詳細は、WebLogic Serverコード・サンプルに含まれている、管理対象Oracle Coherenceサーバー - マルチテナント例に関する項を参照してください。Oracle WebLogic ServerでのOracle Coherenceクラスタの作成、Oracle Coherenceアプリケーションのパッケージ化、およびOracle Coherenceの保護の詳細は、参照先の情報を参照してください。
Oracle WebLogic Server クラスタの管理
Oracle WebLogic Server Oracle Coherenceアプリケーションの開発
Oracle Coherenceの保護