この章では、Oracle WebLogic Server Multitenant (MT)でリソース・アダプタ(コネクタ)を構成する方法について説明します。
この章の内容は次のとおりです。
Oracle WebLogic Server Multitenantを使用すると、リソース・グループおよびリソース・グループ・テンプレートを介して、スタンドアロンおよび埋込みのリソース・アダプタをドメイン・パーティションにデプロイできます。アプリケーションのデプロイの詳細は、「アプリケーションのデプロイ」を参照してください。
リソース・アダプタがパーティションにデプロイされると、そのすべてのリソース(リソース・アダプタBean、接続プール、管理対象オブジェクトなど)はパーティションのJNDIネームスペースに登録され、JNDI名およびクラス・ローダーは、他のパーティションのアプリケーションから分離されます。このため、同じパーティション内のアプリケーションのみが、リソース・アダプタが提供するサービスにアクセスでき、同じパーティション内のアプリケーションのみがリソース・アダプタのクラスにアクセスできます。
リソース・アダプタがドメインにデプロイされると、そのすべてのリソース・アダプタBean、接続プールおよび管理対象オブジェクトは、ドメインのJNDIネームスペースに登録されます。これらのリソースは、ドメインにデプロイされたアプリケーションでのみ表示可能です。
リソース・アダプタをリソース・グループ・テンプレートに構成し、それをパーティションのリソース・グループで参照できます。
この例では、スタンドアロン・リソース・アダプタはリソース・グループ・テンプレートに定義されます。2つのパーティション(HRおよびFinance)はそれぞれ、リソース・グループ・テンプレートからアプリケーションおよびリソースを継承するリソース・グループを定義します。この場合、各パーティションには独自のリソース・アダプタがあります。
例22-1 ドメイン・レベルのコネクタのconfig.xmlの例
<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>
この例では、ドメインに定義された2つのパーティション(HRおよびFinance)があります。HRパーティションには、スタンドアロン・リソース・アダプタを定義するリソース・グループがあります。この場合、 HRパーティションにデプロイされたリソース・アダプタは、Financeパーティションでは非表示になります。
例22-2 パーティション・レベルのコネクタのconfig.xmlの例
<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つのリソース・アダプタと関連するすべてのアプリケーションを同じリソース・グループで定義することをお薦めします。