Oracle® Fusion Middleware Oracle WebLogic Server 12.1.3 Oracle Coherenceアプリケーションの開発 12c (12.1.3) E56230-02 |
|
前 |
次 |
この章では、WebLogic Server 12.1.3ドメイン内の管理対象CoherenceサーバーにCoherenceアプリケーションをデプロイする手順を示します。Coherenceアプリケーションは、デプロイメント用にグリッド・アーカイブ(GAR)としてパッケージ化する必要があります。GARの作成の詳細は、「Coherenceアプリケーションのパッケージ化」を参照してください。
この章の内容は次のとおりです。
Coherenceは、WebLogic Serverドメイン内の層に配置されます。通常は、データを格納するデータ層、キャッシュされたデータを消費するアプリケーション層、およびリモート・クライアント(非クラスタ・メンバー)がクラスタを使用可能にするためのプロキシ層があります。アプリケーション層およびプロキシ層とは別の専用ストレージ層を使用することが、Coherenceクラスタの最適なパフォーマンスを確保するためのベスト・プラクティスです。
デプロイメント層には、Coherenceクラスタの一部である管理対象サーバーが含まれます。Coherenceクラスタの一部である管理対象サーバーは、管理対象Coherenceサーバーと呼ばれます。通常、Coherenceの層は、それぞれWebLogic Serverクラスタと関連付けられます。WebLogic Serverクラスタを使用することで、アプリケーションのデプロイメントおよびデプロイメント・トポロジの管理が簡略化されます(特に大規模クラスタの場合)。ただし、各層の管理対象Coherenceサーバーは、必要に応じて個別に管理できます。
デプロイメントおよび簡単なテスト中に、Coherenceのデプロイメント層を配置するのは現実的ではありません。この場合、Coherenceアプリケーションは単一の管理対象サーバーにデプロイすることが可能で、単一サーバー・クラスタがデフォルトのクラスタ設定で自動的に作成されます。
Coherenceデータ層の作成およびデプロイメント用Coherenceクラスタの設定の詳細は、『Oracle WebLogic Serverクラスタの管理』を参照してください。
CoherenceアプリケーションGARモジュールは、JavaEEモジュールと同様にデプロイされ、WebLogic Server管理コンソール、Oracle WebLogic Scripting Tool (WLST)、WebLogic Server Deployer
クラスおよびWebLogic Server <wldeploy
ANTターゲットのうち、任意のWebLogic Serverデプロイメント・ツールを使用してデプロイできます。WebLogic Server管理コンソールの使用の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプを参照してください。WLSTの使用の詳細は、『WebLogic Scripting Toolの理解』を参照してください。その他のデプロイメント・オプションの詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。
注意: GARを含むEARの製品の再デプロイは、ストレージが無効化されたクラスタ・クライアントでのみサポートされます。また、GARのコードに対する変更には既存のデプロイメントとの後方互換性が必要です。たとえば、変更しているエンティティ・クラスにEvolvable インタフェースを実装する必要があります。製品の再デプロイの詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。 |
GARモジュールは、スタンドアロン・モジュールとして、またEARの一部としてデプロイする必要があります。次に、Coherence層を使用するWebLogic Serverドメインに、GARモジュールがどのようにデプロイされるかを示します。Coherenceデプロイメント層の作成の詳細は、『Oracle WebLogic Serverクラスタの管理』を参照してください。
データ層 – スタンドアロンのGARをデータ層の各管理対象Coherenceサーバーにデプロイします。データ層がWebLogic Serverクラスタとして設定されている場合、そのクラスタにGARをデプロイし、各管理対象Coherenceサーバーにモジュールをコピーします。
アプリケーション層 – クライアント実装(Webアプリケーション、EJBなど)およびGARの両方を含むEARを、クラスタ内の各管理対象Coherenceサーバーにデプロイします。アプリケーション層がWebLogic Serverクラスタとして設定されている場合、そのクラスタにEARをデプロイし、各管理対象Coherenceサーバーにモジュールをコピーします。
プロキシ層 – スタンドアロンのGARをプロキシ層の各管理対象Coherenceサーバーにデプロイします。GAR内にパッケージ化されるキャッシュ構成ファイルには、プロキシ・サービスの定義が含まれている必要があります。アプリケーション層がWebLogic Serverクラスタとして設定されている場合、そのクラスタにGARをデプロイし、各管理対象Coherenceサーバーにモジュールをコピーします。
Extendクライアント層 – Extendクライアント実装(Webアプリケーション、EJBなど)およびGARを含むEARを、Extendクライアントをホストする各管理対象サーバーにデプロイします。クライアントのキャッシュ構成ファイルは、プロキシ・サーバーのアドレスを定義するリモート・キャッシュ・サービス定義を含む必要があります。Extendクライアント層をWebLogic Serverクラスタとして設定する場合は、EARをクラスタにデプロイします(WebLogicデプロイメント・インフラストラクチャはそのモジュールを各管理対象Coherenceサーバーにコピーします)。
スタンドアロンのGARを、共有ライブラリとしてデプロイし、複数のEARファイルから参照することができます。共有ライブラリおよびそのデプロイメントの一般的な情報は、『Oracle WebLogic Serverアプリケーションの開発』の共有Java EEライブラリおよびオプション・パッケージの作成に関する項を参照してください。
実行時にGARを使用するには、EAR内のweblogic-application.xml
デプロイメント・ディスクリプタにGARへの参照が含まれている必要があります。例:
<weblogic-application> <library-ref> <library-name>ExampleGAR</library-name> </library-ref> </weblogic-application>
この構成は、アプリケーション層およびデータ層の両方が単一の管理対象Coherenceサーバー上にある、単一層ドメインで機能します。これに対し、複数層ドメインでは、共有ライブラリとしてデプロイされたGARが期待どおりに起動する記憶域が有効なメンバーとなるようにするには、追加の構成が必要です。
複数層ドメインでGARを共有ライブラリとしてデプロイするには、次の手順を実行します。
GAR内のキャッシュ構成ファイルを編集し、明示的に<scope-name
要素にGAR名を設定します。スコープ名の構成の詳細は、Oracle Coherenceの管理を参照してください。
たとえば、GARの名前がExampleGAR.gar
の場合、<scope-name>
要素は次のように定義します。
<cache-config> <defaults> <scope-name>ExampleGAR</scope-name> </defaults> ...
GARをアプリケーション(記憶域が有効)層に共有ライブラリとしてデプロイし、GAR名をアプリケーション名として指定します。たとえば、GARの名前がExampleGAR.gar
の場合、GAR名はExampleGAR
として指定します。
EARでweblogic-application.xml
デプロイメント・ディスクリプタを編集し、GARへの参照を含めます。例:
<weblogic-application> <library-ref> <library-name>ExampleGAR</library-name> </library-ref> </weblogic-application>
EARをアプリケーション層にデプロイします。
同じGARをデータ(記憶域が有効)層にデプロイし、名前を変更します。たとえば、ExampleGAR-DataTier
とします。名前を指定しない場合は、デプロイメント名に-1
が追加されます(このGARは共有ライブラリとしてすでに存在するためです)。
デプロイメントが完了すると、両方の層にデプロイされたGAR(たとえば、ExampleGAR
およびExampleGAR-DataTier
)は、同じサービスに参加し、クライアント・リクエストの処理とデータ記憶域は期待どおりに分離されます。
複数のGARモジュールが同じWebLogic Serverクラスタをターゲットとする場合、これらのモジュールはすべての管理対象Coherenceサーバーに同時に再デプロイされます。再デプロイメント中にサーバー上のデータ・パーティションが別のサーバーに完全に送信されるようにすることでデータ損失を防ぐプロビジョンはありません。
ローリング再デプロイは、WebLogic Serverクラスタ全体でGARを更新するための技術であり、各管理対象Coherenceサーバーに個別にGARを再デプロイし、すべてのサーバーを循環します。ローリング再デプロイによって、キャッシュ・データはGARの再デプロイ中に再配分できます。そうしない場合、GARがすべてのキャッシュ・サーバーに同時に再デプロイされると、キャッシュ・データは失われます。
注意: サーバーをターゲットとするデプロイメント間でパーティション化されたサービスのStatusHA メトリックを常に確認して、MACHINE_SAFE ステータスを確保します。このメトリックの詳細は、『Oracle Coherenceのマネージメント』を参照してください。 |
ローリング再デプロイを実行するには、GARをspecifiedtargetsonly
オプションを使用してデプロイする必要があり、これによってこのGARに対する以降の更新は、このGARを含むすべてのターゲットではなく、現在のターゲットでのデプロイメントとなります。specifiedtargetsonly
オプションはWebLogic Server管理コンソールからは使用できないため、WLST、weblogic.Deployer
または<wldeploy>
ANTターゲットを使用して指定する必要があります。
GARファイルのフルパスおよび名前は、そのGARの最初のデプロイ時に使用したパスおよび名前と正確に一致する必要があります。異なるパスまたは名前を使用すると、GARの名前に-1
、-2
、または-1
および-2
が追加され、ローリング再デプロイが適切に機能しなくなります。さらに、GARの最初のデプロイ時にupload=true
オプションを使用した場合は、upload=true
オプションを使用して再デプロイする必要があります(そうしない場合、ローリング再デプロイは適切に機能しません)。
Coherenceアプリケーションの再デプロイの(WLSTスクリプトを含む)完全な例(MACHINE_SAFE
ステータスの確保を含む)については、Coherenceの例(WebLogic Serverの例の一部)を参照してください。この例を参照するには、WebLogic Serverのカスタム・インストールを実行して、Serverの例のインストールを選択します。詳細は、『Oracle WebLogic Serverの理解』を参照してください。
WLST
deploy('MyCohApp', '/myapps/MyCohApp.gar', 'server1', specifiedTargetsOnly='true')
<wldeploy> ANTターゲット
<wldeploy user="${admin.username}" password="${admin.password}" adminurl="t3://${admin.host}:${admin.port}" debug="false" action="deploy" name="Coherence GAR" source="${gar.filename}" targets="ms3" specifiedtargetsonly="true" failonerror="true"/>
weblogic.Deployer
java weblogic.Deployer -adminurl t3://localhost:7001 -username username -password password -targets ms3 -deploy -name MyCohApp /myapps/MyCohApp.gar -specifiedtargetsonly
Coherenceライブラリ(coherence.jar
)は、WebLogic Serverのシステム・クラスパスに含まれています。常にこのライブラリを使用し、coherence.jar
ライブラリをWebアプリケーションの/lib
ディレクトリに含めないことがベスト・プラクティスです。高度なユースケースではWebアプリケーションにcoherence.jar
ライブラリを含めますが、その場合はweblogic.xml
ファイルで<prefer-application-packages>
および<prefer-application-resources>
要素を使用してCoherenceリソースを定義する必要があります。例:
<container-descriptor> <prefer-application-packages> <package-name>com.tangosol.*</package-name> <package-name>com.oracle.common.**</package-name> </prefer-application-packages> <prefer-application-resources> <resource-name>com.tangosol.*</resource-name> <resource-name>com.oracle.common.*</resource-name> <resource-name>coherence-*.xml</resource-name> <resource-name>coherence-*.xsd</resource-name> <resource-name>tangosol-*.xml</resource-name> <resource-name>tangosol.properties</resource-name> <resource-name>tangosol.cer</resource-name> <resource-name>tangosol.dat</resource-name> <resource-name>internal-txn-cache-config.xml</resource-name> <resource-name>txn-pof-config.xml</resource-name> <resource-name>pof-config.xml</resource-name> <resource-name>management-config.xml</resource-name> <resource-name>processor-dictionary.xml</resource-name> <resource-name>reports/*</resource-name> </prefer-application-resources> </container-descriptor>
管理対象CoherenceサーバーにデプロイされるCoherenceアプリケーションの保護については、『Oracle Coherenceの保護』を参照してください。