プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Server 12.1.3 JMSリソース・アダプタの管理
12c (12.1.3)
E56272-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

7 宛先およびネーミング・コンテキストの構成

この章では、WebLogic Server 12.1.3においてインバウンドとアウトバウンド通信の宛先およびネーミング・コンテキストを定義するためのadminobject要素の構成について説明します。

この章には次の項が含まれます:

コンテキストadminobjectオブジェクト

コンテキストadminobjectsは、自動宛先ラッピングを動的に使用してキューとトピックをルックアップするために使用されます。詳細は「自動宛先ラッピングの使用」を参照してください。

自動宛先ラッピングを使用すると、アプリケーションはWebLogic JNDIコンテキストを表すアプリケーション・サーバーのJNDIに<admin-object>をバインドできます。次に、アプリケーションは、このWebLogic JNDIコンテキストをルックアップし、JMS宛先の名前で、WebLogic JNDI内をルックアップできます。これにより、アプリケーション・サーバー内で1つの<admin-object>のみを構成すればよくなるので、大量の宛先を持つアプリケーションの構成が簡略化されます。

次の要素を使用して、コンテキストadminobjectを定義します。

  • <adminobject-interface>: weblogic.jms.ra.WLDestinationContextInterfaceを使用します

  • <adminobject-class>: weblogic.jms.ra.WLDestinationContextを使用します。

<config-property>要素内で、次の構成プロパティを使用します。

  • group: このadminobject定義に関連付けされるグループの名前です。

  • rpContextLocation: コンテキストadmin-objectを使用して、JMS宛先をルックアップする方法を記述しているリソース・アダプタに情報を提供します。これは、connector:<connectorName>/の形式になります。

groupDefinition内で定義されているマクロが、このプロパティ値のコネクタの値に使用される場合があります。たとえば、グループ内で、マクロ{connectorName}の値がwlDevelopmentである場合、connector:wlDevelopment/のかわりに、connector:{connectorName}/が使用されます。詳細は、「groupDefinitionsを使用した高度なリソース・プロバイダの構成」を参照してください。

自動宛先ラッピングの使用

自動宛先ラッピングを使用すると、管理対象オブジェクトはプロバイダの宛先を自動的にラップでき、管理対象オブジェクトをプロバイダの宛先ごとに作成する必要がなくなり、管理対象オブジェクトを宛先のJNDIに明示的にバインドします。1つのadminobjectがリソース・プロバイダごとに定義されるので、JNDIのURLを動的に構築して、このコンテキスト内の各宛先をアクセスできます。

アプリケーションは、JNDIにバインドされているJMS RA admin-objectsをルックアップします。これらのadmin-objectsはJMS宛先または宛先コンテキストを表す場合があります。JMS宛先として使用する場合は、JMS宛先ごとに1つのadmin-objectを定義する必要があります。アプリケーションが20個のJMS宛先を使用している場合には、個別のadmin-objectsを20個(各宛先に1つ)作成する必要があります。また、アプリケーションは、これらの20個のJMS宛先を定義して、それらのJEEディスクリプタにresource-env-referencesとしてマップする必要があります。

宛先コンテキストadmin-objectを使用すると、単一の宛先コンテキストを統合できます(つまり、JMSプロバイダとして機能するWebLogic Serverで任意の数のJMS宛先をルックアップするために使用されます)。アプリケーションは、宛先コンテキストに1つのresource-env-refマッピングを定義するでけでよくなります。アプリケーションは、宛先コンテキストをルックアップして、宛先にリモートのWebLogic JNDI名を追加します。

次のような場合、自動宛先ラッピングのよって構成が簡略化されます。

  • デプロイメント時に、WebLogic Server JMS宛先を決めることができない。たとえば、JMS RAが、実行時にユーザーからソース宛先とターゲット宛先のみを入手している場合。

  • アプリケーションが大量の宛先をアクセスする必要がある。これにより、リソース・プロバイダのすべての宛先に、JMS RA宛先の一致セットを構成する必要がなくなります。そうでない場合、アプリケーションで使用される前に、各リソース・プロバイダの宛先は構成済のadminobjectにマッピングされる要があります。

たとえば、WebLogic JMSサーバーを表すadminobjectは、外部のアプリケーション・サーバーでJNDI名myContextにバインドされます。JNDI名jms/barを持つWebLogic JMS宛先が、このWebLogic Server JNDIツリー内で構成されている場合、自動宛先ラッピングは外部サーバーのJNDIルックアップ内のmyContext/jms/barを使用します。

次に、キューの自動ラッピングの例を示します。

. . .
<adminobject-config location="myContext">
   <adminobject-class>weblogic.jms.ra.WLDestinationContext</adminobject-class>
   <config-property name="group" value="wls"/>
   <config-property name="rpContextLocation" value="connector:{rp_name}/"/>
</adminobject-config> 
. . .

ここで、rp_namera.xmlファイルで定義されているリソース・プロバイダの名前です。詳細は、「JMS RAのadminobjectの構成プロパティ」を参照してください。

アプリケーション内で、javax.naming.ContextとしてmyContextをルックアップします。

. . .
@Resource(mappedName="myContext")
private javax.naming.Context wljmsraContext;
. . .

これで、このコンテキストを使用してキュー宛先をルックアップできます。

. . .
Queue theMdbQueue = (Queue) wlraContext.lookup("com.oracle.jms.qa.myQ1");
. . .

宛先adminobject

次のように、JMSのキューとトピック用に作成できる、2種類のadminobjectオブジェクトがあります。

  • キューの場合、<adminobject-class>: oracle.j2ee.ra.jms.generic.WLQueueAdmin

  • トピックの場合、<adminobject-class>: oracle.j2ee.ra.jms.generic.WLTopicAdmin

adminobject Stanzaの例

. . .
<!-- Context admin object -->
<adminobject>
   <adminobject-interface>weblogic.jms.ra.WLDestinationContextInterface</adminobject-interface>
   <adminobject-class>weblogic.jms.ra.WLDestinationContext</adminobject-class>
   <config-property>
      <config-property-name>group</config-property-name>
      <config-property-type>java.lang.String</config-property-type>
      <config-property-value></config-property-value>
   </config-property>
   <config-property>
      <config-property-name>rpContextLocation</config-property-name>
      <config-property-type>java.lang.String</config-property-type>
      <config-property-value></config-property-value>
   </config-property>
<adminobject>

<!-- Queue admin object -->
<adminobject>
   <adminobject-interface>weblogic.jms.ra.WLQueueAdminInterface</adminobject-interface>
   <adminobject-class>weblogic.jms.ra.WLQueueAdmin</adminobject-class>
   <config-property>
      <config-property-name>group</config-property-name>
      <config-property-type>java.lang.String</config-property-type>
      <config-property-value></config-property-value>
   </config-property>
   <<config-property>
      <config-property-name>rpResourceLocation</config-property-name>
      <config-property-type>java.lang.String</config-property-type>
      <config-property-value></config-property-value>
   </config-property>
</adminobject>

<!-- Topic admin object -->
<adminobject>
   <adminobject-interface>weblogic.jms.ra.WLTopicAdminInterface</adminobject-interface>
   <adminobject-class>weblogic.jms.ra.WLTopicAdmin</adminobject-class>
   <config-property>
      <config-property-name>group</config-property-name>
      <config-property-type>java.lang.String</config-property-type>
      <config-property-value></config-property-value>
   </config-property>
   <config-property>
      <config-property-name>rpResourceLocation</config-property-name>
      <config-property-type>java.lang.String</config-property-type>
      <config-property-value></config-property-value>
   </config-property>
</adminobject>
. . .