21 リソース・アダプタの構成
Oracle WebLogic Server Multitenantを使用すると、リソース・グループおよびリソース・グループ・テンプレートを介して、スタンドアロンおよび埋込みのリソース・アダプタをドメイン・パーティションにデプロイできます。
注意:
WebLogic Server Multitenantドメイン・パーティション、リソース・グループ、リソース・グループ・テンプレート、仮想ターゲットおよびリソース消費管理は、WebLogic Server 12.2.1.4.0で非推奨になり、次のリリースで削除されます。この章の内容は次のとおりです。
ドメイン・パーティションでのリソース・アダプタの構成: 概要
リソース・アダプタがパーティションにデプロイされると、そのすべてのリソース(リソース・アダプタBean、接続プール、管理対象オブジェクトなど)はパーティションのJNDIネームスペースに登録され、JNDI名およびクラス・ローダーは、他のパーティションのアプリケーションから分離されます。このため、同じパーティション内のアプリケーションのみが、リソース・アダプタが提供するサービスにアクセスでき、同じパーティション内のアプリケーションのみがリソース・アダプタのクラスにアクセスできます。
リソース・アダプタがドメインにデプロイされると、そのすべてのリソース・アダプタBean、接続プールおよび管理対象オブジェクトは、ドメインのJNDIネームスペースに登録されます。これらのリソースは、ドメインにデプロイされたアプリケーションでのみ表示可能です。
ドメイン・レベルのリソース・アダプタのconfig.xmlの例
リソース・アダプタをリソース・グループ・テンプレートに構成し、それをパーティションのリソース・グループで参照できます。
この例では、スタンドアロン・リソース・アダプタはリソース・グループ・テンプレートに定義されます。2つのパーティション(HRおよびFinance)はそれぞれ、リソース・グループ・テンプレートからアプリケーションおよびリソースを継承するリソース・グループを定義します。この場合、各パーティションには独自のリソース・アダプタがあります。
<domain>
...
<resource-group-template>
<name>RGT1</name>
<app-deployment>
<name>my_ra</name>
<module-type>rar</module-type>
<source-path>/some/directory/mail-connector.rar</source-path>
<deployment-order>120</ deployment-order >
...
</app-deployment>
...
</resource-resource-template>
<partition>
<name>HR</name>
<resource-group>
<name>RG1</name>
<resource-group-template>RGT1</resource-group-template>
</resource-group>
...
</partition>
<partition>
<name>Finance</name>
<resource-group>
<name>RG2</name>
<resource-group-template>RGT1/resource-group-template>
</resource-group>
...
</partition>
...
</domain>パーティション・レベルのリソース・アダプタのconfig.xmlの例
この例では、ドメインに定義された2つのパーティション(HRおよびFinance)があります。HRパーティションには、スタンドアロン・リソース・アダプタを定義するリソース・グループがあります。この場合、 HRパーティションにデプロイされたリソース・アダプタは、Financeパーティションでは非表示になります。
<domain>
...
<partition>
<name>HR</name>
<resource-group>
<name>HR Apps and Resources</name>
<app-deployment>
<name>mailra</name>
<module-type>rar</module-type>
<source-path>/some/directory/mail-connector.rar</source-path>
<deployment-order>120</ deployment-order >
...
</app-deployment>
...
</resource-group>
</partition>
<partition>
<name>Finance</name>
...
</partition>
...
</domain>ドメイン・パーティションでリソース・アダプタを使用する際のベスト・プラクティスおよび考慮事項
システム管理者は、マルチテナント環境でリソース・アダプタを開発する場合、特定のベスト・プラクティスおよび考慮事項に準拠することをお薦めします。
パーティション・レベルのリソース・アダプタのクラス・ロード動作の定義
パーティション・レベルのスタンドアロン・リソース・アダプタは、パーティション・クラス・ローダー(ドメイン/libクラス・ローダーのサブ・クラス・ローダー)およびパーティションのすべてのアプリケーション・クラス・ローダーの親によってロードされます。
weblogic-ra.xmlデプロイメント・ディスクリプタの<enable-global-access-to-classes>要素は、パーティションのリソース・アダプタ・クラスのクラス・ロード動作を決定します。
『Oracle WebLogic Serverリソース・アダプタの開発』の「weblogic-ra.xmlスキーマ」を参照してください。
-
<enable-global-access-to-classes>がfalseに設定された場合、パーティション・リソース・アダプタ・クラスのクラス・ロード動作は、ドメイン・レベルのリソース・アダプタ・クラスの場合の動作と同じです。 -
<enable-global-access-to-classes>がtrueに設定された場合、次のようになります。-
リソース・アダプタがドメインにデプロイされると、リソース・アダプタ・クラスは、ドメイン・クラス・ローダーによってロードされます。そのため、リソース・アダプタ・クラスは、他のパーティションのアプリケーションから分離されます。
-
リソース・アダプタがパーティションにデプロイされると、リソース・アダプタ・クラスは、パーティション・クラス・ローダーによってロードされます。そのため、リソース・アダプタ・クラスは、ドメイン・パーティションおよび他のパーティションのアプリケーションから分離されます。
-
パーティションのアプリケーション構成のオーバーライド
各パーティションは、リソース・グループ・テンプレートで定義された構成をオーバーライドするために使用できるデプロイメント・プランを指定できます。リソース・アダプタ・アプリケーションは、デプロイメント時にこのデプロイメント・プランを適用する必要があります。
「アプリケーション構成のオーバーライド」を参照してください。
AppDeploymentConfigMBeanのplan-path属性を使用してアプリケーション・レベルでデプロイメント・プラン・ファイルを指定して、リソース・アダプタの構成をオーバーライドできます。パーティションのリソース・グループがリソース・グループ・テンプレートのリソース・アダプタを参照する場合、アプリケーション・レベルで指定したデプロイメント・プランのマクロ置換を使用して、リソース・グループ構成をオーバーライドできます。次の例は、デプロイメント・プランのファイル名のマクロを使用したリソース・グループ・テンプレートを示しています。2つのパーティション(HRおよびFinance)があります。
<domain>
<resource-group-template>
<name>RGT1</name>
<app-deployment>
<name>mailra</name>
<name>my_ra</name>
<module-type>rar</module-type>
<source-path>/some/directory/sample_connector.rar</source-path>
<deployment-order>120</ deployment-order >
<plan-path>${MYRA-PLAN-FILE}</plan-path>
</app-deployment>
...
</resource-group-template>
<partition>
<name>HR</name>
<resource-group>
<name>RG1</name>
<resource-group-template>RGT1</resource-group-template>
</resource-group>
<partition-properties>
<partition-property>
<name>MYRA-PLAN-FILE</name>
<value>/apps/plans/hr/my_ra-plan.xml</value>
</partition-property>
</partition-properties>
...
</partition>
<partition>
<name>Finance</name>
<resource-group>
<name>RG2</name>
<resource-group-template>RGT1</resource-group-template>
</resource-group>
<partition-properties>
<partition-property>
<name>MYRA-PLAN-FILE</name>
<value>/apps/plans/Finance/my_ra-plan.xml</value>
</partition-property>
</partition-properties>
...
</partition>
</domain>
リソース・アダプタのリソース定義の考慮事項
@ConnectorResourceDefinitionおよび@AdministeredObjectDefinition注釈を使用して、Webモジュール、EJBモジュール、または同等のアプリケーション・デプロイメント・ディスクリプタで、リソース・アダプタのリソースを定義できます。これらの注釈を使用すると、マルチテナント環境で次の条件が該当します。
-
@ConnectorResourceDefinitionおよび@AdministeredObjectDefinitionまたは同等のデプロイメント・ディスクリプタがドメイン・レベルのアプリケーションで定義された場合、関連するリソース・アダプタはドメイン・レベルでデプロイされる必要があります。 -
@ConnectorResourceDefinitionおよび@AdministeredObjectDefinitionまたは同等のデプロイメント・ディスクリプタがパーティション・レベルのアプリケーションで定義された場合、関連するリソース・アダプタは同じパーティションでデプロイされる必要があります。
リソース・グループ移行およびリソース・アダプタ
スタンドアロン・リソース・アダプタは、同じパーティションのリソース・グループで共有されます。これはリソース・グループで定義できますが、そのリソース・グループによって排他的に占有されることはありません。リソース・グループRG1が、リソース・グループRG2で定義されたスタンドアロン・リソース・アダプタRA2に依存していると仮定した場合、RG2が新しいクラスタに移行されると、RG1は同時にそのクラスタに移行される必要があります。それ以外の場合、RG1は機能しません。
リソース・グループ移行を行う場合、1つのリソース・アダプタと関連するすべてのアプリケーションを同じリソース・グループで定義することをお薦めします。