JMSリソース・アダプタは、ra.xmlファイルのresourceProviderDefinitionsという名前の構成プロパティを使用してJNDIプロパティなどのリソース・プロバイダを定義します。resourceProviderDefinitionsプロパティは、WebLogic JMSにアクセスするためにJMSリソース・アダプタによって使用されます。複数のリソース・プロバイダをra.xmlファイルに構成できます。
注意:
resourceProviderDefinitionsプロパティを指定するとき、WebLogic Server JNDIのURLに1つ以上のカンマが複数のプロパティを区切るために含まれている場合は、パーセント文字(%)をエスケープ文字として使用する必要があります。
たとえば、URLがt3://host:port,host2:port2のように表されている場合、カンマがhost:portの後に挿入されているためJMSリソース・アダプタはURLの解析に失敗します。
この問題を解決するには、パーセント文字(%)をカンマの直前に挿入します。たとえば、t3://host:port%,host2,portです。
リソース・プロバイダを構成するには、ra.xmlファイルで次の手順を実行します。
resourceProviderDefinitionsプロパティを<config-property-name>要素の値として指定します。たとえば、次のように構成します。
<config-property-name>resourceProviderDefinitions</config-property-name>
java.lang.Stringを<config-property-type>要素の値として指定します。たとえば、次のように構成します。
<config-property-type>java.lang.String</config-property-type>
リソース・プロバイダ用の特定のJNDIプロパティを、次の名前-値ペアのパターンを使用して定義します。
(RP_NAME: jndiEnv=property1=(value1,property2=value2,...))
この名前-値パターンの説明は次のとおりです。
RP_NAMEはリソース・プロバイダのJNDIプロパティ用の一意の名前であり、<connection-definition>要素と<adminobject>要素のrpResourceLocation構成プロパティで使用されます。「アウトバウンドJMSメッセージの送信」を参照してください。
注意:
定義された各リソース・プロバイダ名(RP_NAME)は、ra.xmlファイル内で一意である必要があります。
property1=value1,property2=value2,...は、名前-値ペアのカンマ区切りのリストで、リソース・プロバイダのJNDIプロパティを定義します。
構成例については、リソース・プロバイダの構成例を参照してください。
JMSリソース・アダプタはgroupDefinitionsプロパティをサポートして、リソース・プロバイダを構成するための高度な方法を提供します。これにより、接続ファクトリおよび管理対象オブジェクトの柔軟なアドレス解決が提供される一方で、互換性のあるメッセージング・オブジェクトのセットを作成できますgroupDefinitionsプロパティの使用は、次のコンポーネントに依存します。
Group: 接続ファクトリおよび関連付けられた宛先管理対象オブジェクトなどの互換性のあるメッセージング・オブジェクトのセット。
Macro: rpResourceLocation構成プロパティにかわって、接続ファクトリおよび管理対象オブジェクト内で使用されるGroupコンポーネント。
ra.xmlファイルでgroupDefinitionsプロパティを構成するには、次の手順を実行します。
構成例については、リソース・プロバイダの構成例を参照してください。
次に、リソース・プロバイダの構成例を示します。この例の内容は次のとおりです。
2つのリソース・プロバイダ(rp1とrp2)が構成されます。
2つのグループ・オブジェクト(GroupAとGroupB)が構成されます。
. . .
<config-property>
<config-property-name>resourceProviderDefinitions</config-property-name>
<config-property-type>java.lang.String</config-property-type>
// Example Configuration for two resource providers: rp1 and rp2
<config-property-value>
(rp1: jndiEnv=(java.naming.factory.initial=
weblogic.jms.WrappedInitialContextFactory,
java.naming.provider.url=t3://@@@HOST@@@:7002,
java.naming.security.principal=wxyzUser1,
java.naming.security.credentials=wxyzPass1))
(rp2: jndiEnv=(java.naming.factory.initial=
weblogic.jms.WrappedInitialContextFactory,
java.naming.provider.url=t3://anotherhost:8002,
java.naming.security.principal=wxyzUser1,
java.naming.security.credentials=wxyzPass1))
</config-property-value>
. . .
</config-property>
<config-property>
<config-property-name>groupDefinitions</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>
(GroupA: connectorName=rp1,
cf=myCF,
xacf=myXACF,
topic1=myT1,
topic2=myT2,
queue1=myQ1,
queue2=myQ12)
(GroupB: connectorName=rp2,
cf=example/cf,
xacf=example/xacf,
queue1=queue1,
queue2=queue2)
</config-property-value>
</config-property>
. . .