ヘッダーをスキップ
Oracle® Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド
11g リリース1 (11.1.1.5.0)
B55918-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

8 Oracle JCA Adapter for JMS

この章では、Oracle BPELプロセスまたはOracle MediatorコンポーネントとJMS間の通信を可能にする、Oracle JCA Adapter for JMS(Oracle JMSアダプタ)の使用方法について説明します。

この章には、次の項目が含まれます。

8.1 Oracle JMSアダプタの概要

JMSアーキテクチャでは、多数のメッセージ・サーバーに対して1つのクライアント・インタフェースが使用されます。JMSモデルには、Point-to-Pointおよびパブリッシュ・サブスクライブという2つのメッセージ・ドメインがあります。Point-to-Pointドメインでは、メッセージはキューを介して交換され、各メッセージは1人の受信者にのみ配信されます。パブリッシュ・サブスクライブ・モデルでは、メッセージはトピックに送信され、複数のサブスクライブ・クライアントによって読み取られます。

JMSアダプタ・サンプル・ファイルを入手するには、Oracle SOA Sample Codeサイトにアクセスし、「Adapters」タブを選択します。

この項には、次の項目が含まれます。

8.1.1 Oracle JMSアダプタとOracle BPEL Process Managerの統合

JCA 1.5リソース・アダプタとBPEL Process Managerを双方向で統合するために、JCAバインディング・コンポーネントが使用されています。JCAバインディング・コンポーネントは規格に準拠しており、基盤となるJCA相互作用をWebサービスとして公開するためのWeb Service Invocation Framework(WSIF)テクノロジが使用されています。

Oracle JMSアダプタのアーキテクチャ、アダプタとOracle BPEL Process Manager(Oracle BPEL PM)の統合およびアダプタのデプロイの詳細は、第3章「アダプタとOracle Application Serverコンポーネントの統合」を参照してください。

8.1.2 Oracle JMSアダプタとOracle Mediatorの統合

Oracle Mediator(メディエータ)はOracle JCAアダプタをサポートしており、それぞれのインバウンドおよびアウトバウンドのアダプタ・サービスを定義できます。インバウンド・アダプタ・サービスでは、外部メッセージ・システムからデータが受信されてXMLメッセージに変換されます。アウトバウンド・アダプタ・サービスでは、XMLメッセージが特定のアダプタのネイティブ・フォーマットに変換され、データがターゲット・アプリケーションに送信されます。

Oracle JMSアダプタ・サービスの場合、メディエータを使用してJMSキューまたはトピックからのメッセージを送受信できます。

メディエータはOracle BPEL PMの後継であり、このマニュアルのほとんどの部分およびサンプルはOracle BPEL PMを使用することを想定しています。ただし、アダプタの動作はOracle BPEL PMでもメディエータでも同じです。この章でOracle BPEL PMに言及している箇所は、メディエータで置き換えてかまいません。

8.2 Oracle JMSアダプタの機能

Oracle JMSアダプタには次の特徴があります。


注意:

Oracle JMSアダプタをEJBまたはJMSクライアントのプログラムで使用することはできません。

8.3 Oracle JMSアダプタの概念

メッセージ機能はプログラム間の通信を可能にするメカニズムです。メッセージは、あるアプリケーションが別のアプリケーションに送信する構造化データです。メッセージ指向ミドルウェア(MOM)は、スケーラブルなエンタープライズ・メッセージング機能をサポートするインフラストラクチャです。MOMにより、高速で信頼できる非同期の通信、保証付きメッセージ配信、受信通知およびトランザクション制御が実現されます。JMSは、エンタープライズ・メッセージング・システムのメッセージの発行、送信および受信を目的としてSun社により開発されたJavaインタフェースです。JMSはJMSベンダーが実装するAPIです。オラクル社では、WLS JMSとOracleアドバンスト・キューに基づいたOracle JMSの2つのJMS実装を提供しています。JMSプロデューサによりJMSメッセージが作成され、JMSコンシューマによってJMSメッセージが消費されます。

JMSでは、Point-to-Point(キュー)およびパブリッシュ・サブスクライブ(トピック)という2つのメッセージ・パラダイムをサポートしています。

この項には、次の項目が含まれます。

8.3.1 Point-to-Point

Point-to-Pointメッセージでは、メッセージは消費されるまでキューに格納されます。1つ以上のプロデューサがキューに書き込み、1つ以上のコンシューマがキューからメッセージを抽出します。JMSコンシューマにより、メッセージの消費後に確認情報が送信されるため、キューからメッセージがパージされます。

8.3.2 パブリッシュ/サブスクライブ

パブリッシュ・サブスクライブ・メッセージでは、プロデューサがメッセージをトピックにパブリッシュし、コンシューマが特定のトピックにサブスクライブします。複数のパブリッシャが同じトピックを公開でき、複数のコンシューマが同じトピックにサブスクライブできます。プロデューサによってトピックに公開されたすべてのメッセージは、そのトピックにサブスクライブしたすべてのコンシューマによって受信されます。デフォルトでは、サブスクライバがメッセージを受信できるのはアクティブなときのみです。ただし、JMS APIでは、サブスクライバが稼働中ではなくても、パブリッシュされたメッセージをコンシューマが受信できる永続サブスクリプションをサポートしています。永続サブスクリプションでは、コンシューマがアクティブではないときに送信されたメッセージを受信するために、コンシューマを一意のIDで登録します。これらのメッセージはJMSプロバイダにより保存され、コンシューマが再度アクティブになった際に送信されるか、メッセージが失効した場合には記憶域からパージされます。JMSプロデューサは、永続モードまたは非永続モードに設定できます。非永続モードではメッセージは保存されず、非永続サブスクリプションにのみ使用できます。

Oracle WebLogic Serverで永続サブスクリプションの操作を必要とするシナリオでは、次の例に示すように、ClientIDプロパティを定義済のコネクタ・ファクトリが必要です。

<FactoryProperties>ClientID=uniquename</FactoryProperties>

複数の永続サブスクライバを定義する際には、それぞれ一意のClientIDプロパティを指定して複数のコネクタ・ファクトリを定義する必要があります。Oracle WebLogic Serverではclientidのバインドが1回しか許可されないため、他のアダプタ相互作用(インバウンド・メッセージの処理に使用する場合のアウトバウンド相互作用など)には同じコネクタ・ファクトリを使用しないように注意してください。ClientIdを定義済のコネクタ・ファクトリをインバウンドで使用して着信メッセージを処理するシナリオの場合、アウトバウンド・アダプタ相互作用には異なるコネクタ・ファクトリを使用する必要があります。


注意:

BPELパートナ・リンクで使用されない永続サブスクライバは、手動で削除する必要があります。これらの永続サブスクリプションがOracle JMSアダプタにより自動的に削除されることはありません。

JMS APIでは、メッセージ消費のための同期および非同期通信の両方をサポートしています。同期の場合、コンシューマはトピックまたはキューのreceive()メソッドを明示的に呼び出します。非同期の場合、JMSクライアントによりトピックまたはキューにメッセージ・リスナーが登録され、メッセージはそのリスナーのonMessage()メソッドを呼び出すことで配信されます。

8.3.3 宛先、接続、コネクション・ファクトリおよびセッション

宛先プロパティには、JMSキューまたはトピックのアドレス情報が含まれます。接続は、JMSプロバイダへの物理接続を表します。コネクション・ファクトリは、JMS接続の作成に使用されます。セッションは、キューまたはトピックの宛先、JMSプロデューサ、およびJMSコンシューマのオブジェクトの作成に使用されます。

8.3.4 JMSメッセージの構造

JMSメッセージには、必須の標準ヘッダー要素、オプションのプロパティ要素およびオプションの標準ペイロード要素があります。ペイロードはテキスト・メッセージ、バイト・メッセージ、マップ・メッセージ、ストリーム・メッセージまたはオブジェクト・メッセージのいずれかになります。プロパティ要素はJMSプロバイダ固有で、JMSプロバイダごとに異なります。

8.3.5 Oracle JMSアダプタのヘッダー・プロパティ

Oracle JMSアダプタのヘッダー・プロパティの詳細は、付録Aの「Oracle JMSアダプタのプロパティ」を参照してください。

8.4 Oracle JMSアダプタの使用例

この項には、次の項目が含まれます。

8.4.1 Oracle JMSアダプタの構成

次の使用例では、Oracle JMSアダプタの構成手順を説明し、結果のWSDLファイルおよび関連するweblogic-ra.xmlファイルを検証します。

この項には、次の項目が含まれます。

8.4.1.1 アプリケーションおよびSOAプロジェクトの作成

最初に、SOAコンポジットを含んだJDeveloperアプリケーションを作成する必要があります。次の手順に従って新規アプリケーションとSOAプロジェクトを作成します。

  1. JDeveloperを開きます。

  2. 「アプリケーション・ナビゲータ」で、「新規アプリケーション」をクリックします。

    図8-1に示すように、「汎用アプリケーションの作成 - アプリケーションの名前付け」ページが表示されます。

  3. 「アプリケーション名」フィールドにアプリケーションの名前を入力します。たとえば、AQQueue2Queueと入力します。

  4. 「アプリケーション・テンプレート」リストで、「汎用アプリケーション」を選択します。

    図8-1 「汎用アプリケーションの作成 - アプリケーションの名前付け」ページ

    図8-1の説明が続きます
    「図8-1 「汎用アプリケーションの作成 - アプリケーションの名前付け」ページ」の説明

  5. 「次へ」をクリックします。

    図8-2に示すように、「プロジェクトの名前付け」ダイアログが表示されます。

  6. 「プロジェクト名」フィールドにわかりやすい名前を入力します。たとえば、AQQueue2Queueと入力します。

  7. 「プロジェクト・テクノロジ」タブの「選択可能」リストで「SOA」をダブルクリックし、「選択済」リストに移動します。

    図8-2 「汎用アプリケーションの作成 - 汎用プロジェクトの名前付け」ページ

    図8-2の説明が続きます
    「図8-2 「汎用アプリケーションの作成 - 汎用プロジェクトの名前付け」ページ」の説明

  8. 「次へ」をクリックします。

    図8-3に示すように、「汎用アプリケーションの作成 - SOA設定の設定」ページが表示されます。

    図8-3 「汎用アプリケーションの作成 - SOA設定の設定」ページ

    図8-3の説明が続きます
    「図8-3 「汎用アプリケーションの作成 - SOA設定の設定」ページ」の説明

  9. 「コンポジット・テンプレート」リストから「BPELを使用するコンポジット」を選択して「終了」をクリックします。

    新規アプリケーションおよびSOAプロジェクトが作成されました。これにより、SOAコンポジットが自動的に作成されます。

    図8-4に示すように、「BPELプロセスの作成」ページが表示されます。

    図8-4 「BPELプロセスの作成」ページ

    図8-4の説明が続きます
    「図8-4 「BPELプロセスの作成」ページ」の説明

  10. 「名前」フィールドにBPELプロセスの名前を入力します。この例では、デフォルト名を使用します。

  11. 「テンプレート」リストで「サービスを後で定義」を選択し、「OK」をクリックします。

    BPELプロセスが作成されました。

8.4.1.2 アダプタ構成ウィザードを使用したOracle JMSアダプタの構成

アダプタ構成ウィザードを使用してOracle JMSアダプタを構成するには、次の手順を実行します。

  1. 「コンポーネント・パレット」で、「SOA」を選択します。

  2. 「サービス・アダプタ」リストから「JMSアダプタ」を「composite.xml」ページの「公開されたサービス」スイムレーンにドラッグ・アンド・ドロップします。

    「アダプタ構成ウィザード」が表示されます。

  3. 「次へ」をクリックします。

    図8-5に示すように、アダプタ構成ウィザードの「サービス名」ページが表示されます。

    図8-5 「サービス名」ページ

    図8-5の説明が続きます
    「図8-5 「サービス名」ページ」の説明

  4. サービス名を入力して「次へ」をクリックします。

    図8-6に示すように、アダプタ構成ウィザードの「JMSプロバイダ」ページが表示されます。

    図8-6 「アダプタ構成ウィザード - JMSプロバイダ」ページ

    図8-6の説明が続きます
    「図8-6 「アダプタ構成ウィザード - JMSプロバイダ」ページ」の説明

  5. 操作を1つ選択します。この例では「Oracle Weblogic JMS」を選択します。

    • Oracle Enterprise Messaging Service (OEMS): WebLogicサービスまたはアドバンスト・キューイング・メッセージ・サービスと統合できます。

    • サード・パーティ: このオプションを選択すると、サード・パーティのプロバイダと統合できます。

  6. 「次へ」をクリックします。

    アダプタ構成ウィザードの「サービス接続」ページが表示されます。

  7. 設計時環境とデプロイ先サーバーの間の接続性を確立する必要があります。

    第2.7項「Oracle JCAアダプタ用のアプリケーション・サーバー接続の作成」で説明した手順に従って、アプリケーション・サーバー接続を作成します。

  8. 「次へ」をクリックします。図8-7に示すように、「アダプタ・インタフェース」ページが表示されます。

  9. 「アダプタ・インタフェース」ページで、「操作およびスキーマから定義(後で指定)」を選択します。

    図8-7 「アダプタ構成ウィザード - アダプタ・インタフェース」ページ

    図8-7の説明が続きます
    「図8-7 「アダプタ構成ウィザード - アダプタ・インタフェース」ページ」の説明

  10. 「次へ」をクリックします。

    アダプタ構成ウィザードの「操作」ページが表示されます。

  11. 「メッセージ消費」「メッセージ発行」または「リクエスト/リプライ」を選択します。この例では「メッセージ消費」を選択します。

    図8-8に示すように、操作名は自動的に入力されます。

    図8-8 「アダプタ構成ウィザード - 操作」ページ

    図8-8の説明が続きます
    「図8-8 「アダプタ構成ウィザード - 操作」ページ」の説明

    「メッセージ消費」オプションを選択すると、JMS宛先からのインバウンド・メッセージをアダプタで消費(受信)できます。

  12. 「次へ」をクリックします。

    図8-9に示すように、アダプタ構成ウィザードの「消費操作のパラメータ」ページが表示されます。

    図8-9 「アダプタ構成ウィザード - 消費操作のパラメータ」ページ

    図8-9の説明が続きます
    「図8-9 「アダプタ構成ウィザード - 消費操作のパラメータ」ページ」の説明

  13. 次のフィールドに値を入力します。

    • 接続先名

      メッセージの送信元であるJMSキューまたはトピックのJNDI名です。このフィールドは編集できません。「参照」をクリックしてキューまたはトピックを参照する必要があります。使用しているJMSプロバイダのタイプに基づいて、キューまたはトピックを選択します。

      詳細は、次の各項を参照してください。

    • メッセージ本文のタイプ

      サポートされている値は「TextMessage」「BytesMessage」または「MapMessage」です。このリリースでは、「StreamMessage」メッセージ・タイプはサポートされていません。

    • 永続サブスクライバID

      このフィールドはオプションです。永続サブスクライバを設定する場合には、永続サブスクライバIDが必要です。接続が解除されるとサブスクライバは通常メッセージを失いますが、永続サブスクライバは再接続の際に保存されているメッセージをダウンロードします。


      注意:

      JMSプロバイダがOracle Weblogic JMSまたはOracleアドバンスト・キューイング・メッセージ・サービスの場合、トピックが選択されている場合にのみ、永続サブスクライバ・オプションが表示されます。ただし、JMSプロバイダがサード・パーティの場合、永続サブスクライバ・オプションは常に表示されます。

    • メッセージ・セレクタ

      このフィールドもオプションです。ヘッダーおよびプロパティの情報に基づいてメッセージをフィルタ処理します。メッセージ・セレクタ・ルールはブール式です。式がtrueの場合には、メッセージが消費されます。式がfalseの場合には、メッセージが拒否されます。

      たとえば、次のような式を入力できます。

      • JMSPriority > 3。これに基づき、優先度が3より高いメッセージが消費され、それ以外のメッセージはすべて拒否されます。

      • JMSType = 'car' AND color = 'blue' AND weight > 2500

      • Country in ('UK', 'US', 'France')。

    • MessageListenerを使用

      このフィールドは、デフォルトで常に「False」に設定されます。

    • JNDI名

      アダプタが管理モードで確実に実行されるように、JNDI名で指定した値がOracle JMSアダプタのweblogic-ra.xmlファイルに存在する必要があります。


    注意:

    この例ではメッセージ消費操作が示されています。メッセージ発行操作の場合は、このページは異なります。この部分の手順の違いは、第8.4.1.5項「メッセージ発行手順」を参照してください。

    適切なパラメータを入力したら、「次へ」をクリックします。

  14. 図8-10に示すように、アダプタ構成ウィザードの「メッセージ」ページが表示されます。このページでの設定により、メッセージ・ペイロードの適切なスキーマが定義されます。

    次のいずれかを実行できます。

    • 「ネイティブ・フォーマット変換は不要(スキーマを不透明(Opaque)にする)」を選択します。これにより残りのフィールドが使用できなくなります。

    • ネイティブ・フォーマットの定義プロセスを支援するネイティブ・フォーマット・ビルダー・ウィザードを起動するには、「ネイティブ・フォーマットのスキーマの定義」をクリックします。

    • スキーマ・ファイルURLのパスを入力します(またはパスを参照します)。

    次に、最後に示した、スキーマ・ファイルURLを参照するオプションの手順を示します。

    図8-10 「アダプタ構成ウィザード - メッセージ」ページ

    図8-10の説明が続きます
    「図8-10 「アダプタ構成ウィザード - メッセージ」ページ」の説明

  15. 「参照」ボタンをクリックします。

    図8-11に示すように、「タイプ・エクスプローラ」ナビゲーション・ツリーを含む「タイプ・チューザ」ダイアログが表示されます。

  16. ツリーを参照し、適切なスキーマ・タイプを選択して「OK」をクリックします。

    図8-11 「タイプ・チューザ」ダイアログからのスキーマの選択

    図8-11の説明が続きます
    「図8-11 「タイプ・チューザ」ダイアログからのスキーマの選択」の説明

    今度は、図8-12に示すように、「スキーマ・ファイルのURL」フィールドおよび「スキーマ要素」フィールドが入力された状態で、「メッセージ」ページが再表示されます。

    図8-12 入力が完了した「メッセージ」ダイアログ

    図8-12の説明が続きます
    「図8-12 入力が完了した「メッセージ」ダイアログ」の説明

  17. 「次へ」をクリックします。

    「終了」ページが表示されます。このボックスには、ウィザードにより作成されるアダプタ・ファイルのパスと名前が表示されます。

  18. 「終了」をクリックします。

    「composite.xml」ページが表示されます。

8.4.1.3 生成されるファイル

アダプタ構成ウィザードにより次のコンポジット・ファイルが生成されます。

<composite name="AQQueue2Queue"           revision="1.0"           label="2007-09-04_11-58-50_914"           mode="active"           state="on"           xmlns="http://xmlns.oracle.com/sca/1.0"           xmlns:xs="http://www.w3.org/2001/XMLSchema"           xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"           xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy">
  <import namespace="http://xmlns.oracle.com/pcbpel/adapter/jms/Inbound/"          location="Inbound.wsdl" importType="wsdl"/>
  <import namespace="http://xmlns.oracle.com/pcbpel/adapter/jms/Outbound/"          location="Outbound.wsdl" importType="wsdl"/>
  <service name="Inbound">
    <interface.wsdl  interface="http://xmlns.oracle.com/pcbpel/adapter/jms/Inbound/#wsdl.interface
(Consume_Message_ptt)"/> <binding.jca config="Inbound_jms.jca"/> </service> <component name="BPELProcess1"> <implementation.bpel src="BPELProcess1.bpel"/> </component> <reference name="Outbound"> <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/jms/Outbound/#wsdl.interface
(Produce_Message_ptt)"/> <binding.jca config="Outbound_jms.jca"/> </reference> <wire> <source.uri>Inbound</source.uri> <target.uri>BPELProcess1/Inbound</target.uri> </wire> <wire> <source.uri>BPELProcess1/Outbound</source.uri> <target.uri>Outbound</target.uri> </wire> </composite>

次のコード・セグメントでは、アダプタの名前、様々な必要なスキーマの場所およびその他の定義ファイルが定義されています。

 <import namespace="http://xmlns.oracle.com/pcbpel/adapter/jms/Inbound/"          location="Inbound.wsdl" importType="wsdl"/>
  <import namespace="http://xmlns.oracle.com/pcbpel/adapter/jms/Outbound/"          location="Outbound.wsdl" importType="wsdl"/>

このコード・セグメントでは必要なネームスペースをインポートしています。

<definitions name="Inbound" targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/jms/Inbound/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/jms/Inbound/" xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:imp1="http://xmlns.oracle.com/pcbpel/samples/expense">
    <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema">
            <import namespace="http://xmlns.oracle.com/pcbpel/samples/expense" schemaLocation="xsd/expense.xsd"/>
        </schema>
    </types>
    <message name="ExpenseRecord_msg">
        <part name="ExpenseRecord" element="imp1:ExpenseRecord"/>
    </message>
    <portType name="Consume_Message_ptt">
        <operation name="Consume_Message">
            <input message="tns:ExpenseRecord_msg"/>
        </operation>
    </portType>

このコード・セグメントでは、メッセージ・タイプ、メッセージ名およびパートナ・リンクのポート・タイプが定義されています。

<adapter-config name="dequeue" adapter="Jms Adapter" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
  <connection-factory location="eis/wls/Queue" UIConnectionName="wls3"   UIJmsProvider="WLSJMS" adapterRef=""/>
  <endpoint-activation portType="Consume_Message_ptt" operation="Consume_Message">
    <activation-spec className="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec">
      <property name="DestinationName" value="jms/DemoInQueue"/>
      <property name="UseMessageListener" value="false"/>
      <property name="PayloadType" value="TextMessage"/>
    </activation-spec>
  </endpoint-activation>
</adapter-config>

8.4.1.4 weblogic-ra.xmlファイル

weblogic-ra.xmlファイルでは、JMSコネクション・ファクトリのエンドポイントが定義されます。コネクション・ファクトリには、各エンドポイントの構成プロパティが含まれます。後続の項で示すように、エンドポイントは、タイプの異なる接続に対応するために追加されます。次の例に、汎用weblogic-ra.xmlファイルの内容を示します。

<connection-instance>    
  <jndi-name>eis/wls/Queue</jndi-name>
    <connection-properties>
       <properties>
           <property>
               <name>ConnectionFactoryLocation</name>
               <value>weblogic.jms.XAConnectionFactory</value>
           </property>
           <property>
               <name>FactoryProperties</name>
               <value></value>
           </property>
           <property>
               <name>AcknowledgeMode</name>
               <value>AUTO_ACKNOWLEDGE</value>
           </property>
           <property>
              <name>IsTopic</name>
              <value>false</value>
           </property>
           <property>
               <name>IsTransacted</name>
               <value>false</value>
           </property>
           <property>
               <name>Username</name>
               <value></value>
           </property>
           <property>
               <name>Password</name>
               <value></value>
           </property>
           </properties>
      </connection-properties>
</connection-instance>

新規接続は、Oracle WebLogic Server管理コンソールを使用して作成する方法もあることに注意してください。

Oracle WebLogic Server管理コンソールを使用した新規接続の作成

次の手順に従って、Oracle WebLogic Server管理コンソールで新規接続を作成します。

  1. Oracle WebLogic Server管理コンソールhttp://servername:portnumber/consoleにナビゲートします。

  2. 必要な資格証明を使用して、Oracle WebLogic Server管理コンソールのホーム・ページを開きます。

    Oracle WebLogic Server管理コンソールのホーム・ページが表示されます。

  3. 「ドメイン構造」ペインで「デプロイメント」を選択します。

    Oracle WebLogic Server管理コンソールの「デプロイメントの概要」ページが表示されます。

  4. 「デプロイメント」で、デプロイしたJMSアダプタをクリックします。たとえば、JmsAdapterをクリックします。

    Oracle WebLogic Server管理コンソールの「JmsAdapterの設定」ページが表示されます。

  5. 「構成」タブをクリックし、「アウトバウンド接続プール」タブをクリックします。

    「アウトバウンド接続プールの構成表」が表示されます。

  6. 「次へ」をクリックします。

    「新しいアウトバウンド接続の作成」ページが表示されます。

  7. デフォルトのアウトバウンド接続グループを選択して「次へ」をクリックします。

  8. 「次へ」をクリックします。

  9. 「JNDI名」フィールドに、新規接続インスタンスの取得に使用するJNDI名を入力します。たとえば、eis/wls/Queueと入力します。

    JNDIフィールドには任意の名前を指定できることに注意してください。ただし、JDeveloperで消費操作または発行操作のパラメータを定義する際に同じJNDI名を使用する必要があります。

  10. 「終了」をクリックします。

    「デプロイメント・プラン保存アシスタント」ページが表示されます。

    構成の変更内容は、新規デプロイメント計画に格納する必要があります。

  11. 「パス」フィールドで、デプロイメント計画ファイルのパスを選択または入力します。パスは「.xml」で終了する必要があります。

  12. 「OK」をクリックします。

    新規接続が作成されました。この操作の完了後に、作成したプロパティが正しいかどうかを確認する必要があります。

  13. 「JmsAdapterの設定」ページで、「構成」タブをクリックし、「プロパティ」タブをクリックします。

    作成した接続はこのページに表示されます。この値が正しいかどうかを確認します。たとえば、サード・パーティのJMSサーバーに接続する場合は、「コネクション・ファクトリの位置」フィールドにサード・パーティのJMSサーバーに適用可能な正しい値が設定されていることを確認します。


    注意:

    この例では、Oracle WebLogic Server管理コンソールを使用してOracle JMSアダプタ用の新規接続を作成しました。他のアダプタ用の接続を作成するには、同じ手順に従う必要があります。ただし、ステップ4では接続の作成対象として適切なアダプタを選択します。

  14. 「保存」をクリックします。

8.4.1.4.1 サード・パーティのJMSプロバイダの追加

weblogic-ra.xmlファイルでFactoryPropertiesパラメータに値を指定することで、アダプタで非Web Logic Server JMSおよび非AQJMSの接続インスタンスにサード・パーティのJMSプロバイダを使用することを指定できます。具体的には、ThirdPartyJMSProvider値をFactoryPropertiesパラメータに指定できます。このプロパティは、WebLogic Serverにアダプタをデプロイする場合にのみ必要です。

この値をtrueに設定した場合、JMSアダプタではJMSメッセージを処理するコンシューマの作成にDestinationAvailabilityListenerを使用しません。デフォルトはfalseです。次のスニペットのようなコードを使用する必要があります。

<property>
    <name>FactoryProperties</name>
    <value>ThirdPartyJMSProvider=true</value>
</property> 

注意:

WebLogic Serverに事前に移入されているすべての接続インスタンスは変更を反映するため、それらのインスタンスに対してそれ以上チューニングは不要です。新規の非WLS JMSまたは非AQJMSプロバイダ・アクセスが必要な場合にのみ、新規接続インスタンスを追加する必要があるため、ThirdPartyJMSProviderプロパティが必要です。

8.4.1.5 メッセージ発行手順

メッセージ発行操作では、特に第8.4.1.2項「アダプタ構成ウィザードを使用したOracle JMSアダプタの構成」のステップ13において、定義の手順が異なります。消費操作パラメータを指定するかわりに、次の発行操作パラメータを指定します。これにより、JMS宛先へのアウトバウンド・メッセージをアダプタで発行(送信)できます。図8-13に、「発行操作のパラメータ」ページを示します。

  • 接続先名:

    メッセージの配信先にする必要のあるJMSキューまたはトピックのJNDI名。入力する名前は、使用するJMSプロバイダのタイプに基づきます。

    接続先名の詳細は、次の項を参照してください。

  • メッセージ本文のタイプ:

    サポートされている値は、TextMessageBytesMessageおよびMapMessageです。このリリースでは、StreamMessageメッセージ・タイプはサポートされていません。

  • 配信モード:

    値は「永続」または「非永続」です。永続配信モードでは、今後の使用に備えて、永続サブスクライバによりメッセージを保存するパブリッシャである永続JMSパブリッシャを指定します。永続サブスクライバは、第8.4.1.2項「アダプタ構成ウィザードを使用したOracle JMSアダプタの構成」のステップ15の対応するフィールドに永続サブスクライバIDのあるメッセージ消費です。非永続サブスクライバでは、アダプタがアクティブではないときに発行されたメッセージは失われます。永続サブスクライバでは、永続パブリッシャに保存されていたメッセージをダウンロードするため、すべてのメッセージを受信するために常にアクティブである必要はありません。

  • 優先度:

    優先度の値を選択します。9は最も高い優先度を、0は最も低い優先度を表します。デフォルトは4です。

  • TimeToLive:

    メッセージが失効して消費できなくなるまでの期間です。

図8-13 「発行操作のパラメータ」ページ

図8-13の説明が続きます
「図8-13 「発行操作のパラメータ」ページ」の説明

8.4.2 TIBCO JMSを使用したOracle JMSアダプタの構成

この項では、直接接続と非直接接続用にTibco JMSを使用するOracle JMSアダプタの構成方法について説明します。

8.4.2.1 非直接接続

次の手順を実行します。

  1. 次のファイルを<SOAInstall_DIR>/user_projects/domains/<DOMAIN_NAME>/libフォルダにコピーします。

    • /<YOUR-TIBCO-INSTALL-LOCATION>/clients/java/tibjms.jar

  2. 次の例に示すように、AS11gR1SOA/soa/connectors/JmsAdapter.rarにあるweblogic-ra.xmlファイルを変更してコネクタ・ファクトリを構成します。

    <connection-instance>
              <jndi-name>eis/tibjms/Topic</jndi-name>
              <connection-properties>
                        <properties>
                                   <property>
                                            <name>ConnectionFactoryLocation</name>
                                            <value>TopicConnectionFactory</value>
                                   </property>
                                   <property>
                                            <name>FactoryProperties</name>
    <value>java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory;java.naming.provider.url=tibjmsnaming://<HOST>:<PORT>;java.naming.security.principal=<USERNAME>;java.naming.security.credentials=<PASSWORD></value>
                                   </property>
                                   <property>
                                            <name>AcknowledgeMode</name>
                                            <value>AUTO_ACKNOWLEDGE</value>
                                   </property>
                                   <property>
                                            <name>IsTopic</name>
                                            <value>true</value>
                                   </property>
                                   <property>
                                            <name>IsTransacted</name>
                                            <value>true</value>
                                   </property>
                                   <property>
                                            <name>Username</name>
                                            <value><USERNAME></value>
                                   </property>
                                   <property>
                                            <name>Password</name>
                                            <value><PASSWORD></value>
                                  </property>
                        </properties>
              </connection-properties>
    </connection-instance>
    <connection-instance>
              <jndi-name>eis/tibjms/Queue</jndi-name>
              <connection-properties>
                        <properties>
                                   <property>
                                            <name>ConnectionFactoryLocation</name>
                                            <value>QueueConnectionFactory</value>
                                   </property>
                                   <property>
                                            <name>FactoryProperties</name>
    <value>java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory;java.naming.provider.url=tibjmsnaming://<HOST>:<PORT>;java.naming.security.principal=<USERNAME>;java.naming.security.credentials=<PASSWORD></value>
                                   </property>
                                   <property>
                                            <name>AcknowledgeMode</name>
                                            <value>AUTO_ACKNOWLEDGE</value>
                                   </property>
                                   <property>
                                            <name>IsTopic</name>
                                            <value>false</value>
                                   </property>
                                   <property>
                                            <name>IsTransacted</name>
                                            <value>true</value>
                                   </property>
                                   <property>
                                            <name>Username</name>
                                            <value><USERNAME></value>
                                   </property>
                                   <property>
                                            <name>Password</name>
                                            <value><PASSWORD></value>
                                   </property>
                        </properties>
              </connection-properties>
    </connection-instance>
    

    デフォルトの<USERNAME>および<PASSWORD>がそれぞれadminおよびpasswordであることに注意してください。

    または、Oracle WebLogic Server管理コンソールを使用して新規コネクション・ファクトリを作成するには、第2.19項「アダプタ・コネクション・ファクトリの追加」で説明する手順に従います。

8.4.2.2 直接接続

次の手順を実行します。

  1. 次のファイルを<SOAInstall_DIR>/user_projects/domains/<DOMAIN_NAME>/libフォルダにコピーします。

    • /<YOUR-TIBCO-INSTALL-LOCATION>/clients/java/tibjms.jar

  2. 次の例に示すように、AS11gR1SOA/soa/connectors/JmsAdapter.rarにあるweblogic-ra.xmlファイルを変更してコネクタ・ファクトリを構成します。

    <connection-instance>
              <jndi-name>eis/tibjmsDirect/Queue</jndi-name>
              <connection-properties>
                        <properties>
                                   <property>
                                            <name>ConnectionFactoryLocation</name>
                                            <value>com.tibco.tibjms.TibjmsQueueConnectionFactory</value>
                                   </property>
                                   <property>
                                            <name>FactoryProperties</name>
                                            <value>ServerUrl=tcp://<HOST>:<PORT>;UserName=<USERNAME>;UserPassword=<PASSWORD></value>
                                   </property>
                                   <property>
                                            <name>AcknowledgeMode</name>
                                            <value>AUTO_ACKNOWLEDGE</value>
                                   </property>
                                   <property>
                                            <name>IsTopic</name>
                                            <value>false</value>
                                   </property>
                                   <property>
                                            <name>IsTransacted</name>
                                            <value>true</value>
                                   </property>
                                   <property>
                                            <name>Username</name>
                                            <value><USERNAME></value>
                                   </property>
                                   <property>
                                            <name>Password</name>
                                            <value><PASSWORD></value>
                                   </property>
                        </properties>
              </connection-properties>
    </connection-instance>
    <connection-instance>
              <jndi-name>eis/tibjmsDirect/Topic</jndi-name>
              <connection-properties>
                        <properties>
                                    <property>
                                            <name>ConnectionFactoryLocation</name>
                                             <value>com.tibco.tibjms.TibjmsTopicConnectionFactory</value>
                                   </property>
                                   <property>
                                            <name>FactoryProperties</name>
                                            <value>ServerUrl=tcp://<HOST>:<PORT>;UserName=<USERNAME>;UserPassword=<PASSWORD></value>
                                   </property>
                                   <property>
                                            <name>AcknowledgeMode</name>
                                            <value>AUTO_ACKNOWLEDGE</value>
                                   </property>
                                   <property>
                                            <name>IsTopic</name>
                                            <value>true</value>
                                   </property>
                                   <property>
                                            <name>IsTransacted</name>
                                            <value>true</value>
                                   </property>
                                   <property>
                                            <name>Username</name>
                                            <value><USERNAME></value>
                                   </property>
                                   <property>
                                            <name>Password</name>
                                            <value><PASSWORD></value>
                                   </property>
                         </properties>
               </connection-properties>
    </connection-instance>
    

    デフォルトの<USERNAME>および<PASSWORD>がそれぞれadminおよびpasswordであることに注意してください。

    または、Oracle WebLogic Server管理コンソールを使用して新規コネクション・ファクトリを作成するには、第2.19項「アダプタ・コネクション・ファクトリの追加」で説明する手順に従います。

8.4.3 IBM WebSphere MQ JMSを使用したOracle JMSアダプタの構成

この項では、非XAおよびXAデータソース用にIBM WebSphere MQ JMSを使用するOracle JMSアダプタの構成方法について説明します。

8.4.3.1 非XAデータソース

次の手順を実行します。

  1. 次のファイルを<SOAInstall_DIR>/user_projects/domains/<DOMAIN_NAME>/libフォルダにコピーします。

    • /<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/com.ibm.mq.jar

    • /<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/com.ibm.mqjms.jar

    • /<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/dhbcore.jar

  2. 次の例に示すように、AS11gR1SOA/soa/connectors/JmsAdapter.rarにあるweblogic-ra.xmlファイルを変更してコネクタ・ファクトリを構成します。

    <connection-instance>
    <jndi-name>eis/webspheremq/Queue</jndi-name>
       <connection-properties>
          <properties>
             <property>
               <name>ConnectionFactoryLocation</name>
               <value>com.ibm.mq.jms.MQQueueConnectionFactory</value>
             </property>
             <property>
                <name>FactoryProperties</name>
                <value>QueueManager=<QUEUEMANAGER>;TransportType=1;HostName=
    <YOUR-HOST>;Port=<YOUR-PORT>;Channel=<CHANNEL>;ThirdPartyJMSProvider=true
    </value> </property> <property> <name>AcknowledgeMode</name> <value>AUTO_ACKNOWLEDGE</value> </property> <property> <name>IsTopic</name> <value>false</value> </property> <property> <name>IsTransacted</name> <value>true</value> </property> <property> <name>Username</name> <value><USERNAME></value> </property> <property> <name>Password</name> <value><PASSWORD></value> </property> </properties> </connection-properties> </connection-instance>

    デフォルトの<USERNAME>および<PASSWORD>がそれぞれMUSR_MQADMINおよびpasswordであることに注意してください。

    または、Oracle WebLogic Server管理コンソールを使用して新規コネクション・ファクトリを作成するには、第2.19項「アダプタ・コネクション・ファクトリの追加」で説明する手順に従います。

8.4.3.2 XAデータソース

次の手順を実行します。

  1. 次のファイルを<SOAInstall_DIR>/user_projects/domains/<DOMAIN_NAME>/libフォルダにコピーします。

    • /<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/com.ibm.mq.jar

    • /<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/com.ibm.mqjms.jar

    • /<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/dhbcore.jar

    • com.ibm.mqetclient.jar

      これは、IBM拡張トランザクション・クライアント(別途ライセンスが必要なオプション・コンポーネント)です。

  2. 次の例に示すように、AS11gR1SOA/soa/connectors/JmsAdapter.rarにあるweblogic-ra.xmlファイルを変更してコネクタ・ファクトリを構成します。

    <connection-instance>
    <jndi-name>eis/webspheremq/Queue</jndi-name>
       <connection-properties>
            <properties>
               <property>
                  <name>ConnectionFactoryLocation</name>
                  <value>com.ibm.mq.jms.MQXAQueueConnectionFactory</value>
               </property>
               <property>
                  <name>FactoryProperties</name>
                  <value>QueueManager=<QUEUEMANAGER>;TransportType=1;
    HostName=<YOUR-HOST>;Port=<YOUR-PORT>;Channel=<CHANNEL>;
    ThirdPartyJMSProvider=true</value> </property <property> <name>AcknowledgeMode</name> <value>AUTO_ACKNOWLEDGE</value> </property> <property> <name>IsTopic</name> <value>false</value> </property <property> <name>IsTransacted</name <value>false</value> </property <property> <name>Username</name> <value><USERNAME></value> </property> <property> <name>Password</name> <value><PASSWORD></value> </property> </properties> </connection-properties> </connection-instance>

    デフォルトの<USERNAME>および<PASSWORD>がそれぞれMUSR_MQADMINおよびpasswordであることに注意してください。

    または、Oracle WebLogic Server管理コンソールを使用して新規コネクション・ファクトリを作成するには、第2.19項「アダプタ・コネクション・ファクトリの追加」で説明する手順に従います。

8.4.4 Active MQ JMSを使用したOracle JMSアダプタの構成

この項では、Active MQ JMSを使用するOracle JMSアダプタの構成方法について説明します。

次の手順を実行します: 次のファイルを<SOAInstall_DIR>/user_projects/domains/<DOMAIN_NAME>/libフォルダにコピーします。

  • /<YOUR-ACTIVEMQ-INSTALL-LOCATION>//activemq-core-4.1.1.jar

  • /<YOUR-ACTIVEMQ-INSTALL-LOCATION>//backport-util-concurrent-2.1.jar

  • /<YOUR-ACTIVEMQ-INSTALL-LOCATION>//activeio-core-3.0.0-incubator.jar

  • /<YOUR-ACTIVEMQ-INSTALL-LOCATION>//commons-logging-1.1.jar

次の例に示すように、AS11gR1SOA/soa/connectors/JmsAdapter.rarにあるweblogic-ra.xmlファイルを変更してコネクタ・ファクトリを構成します。


<connection-instance>
      <jndi-name>eis/activemq/Queue</jndi-name>
      <connection-properties>
      <properties>
            <property>
                  <name>ConnectionFactoryLocation</name>
                  <value>org.apache.activemq.ActiveMQConnectionFactory</value>
            </property>
            <property>
                  <name>FactoryProperties</name>
                  <value>BrokerURL=tcp://<YOUR-HOST>:<YOUR-PORT></value>
            </property>
            <property>
                  <name>AcknowledgeMode</name>
                  <value>AUTO_ACKNOWLEDGE</value>
            </property>
            <property>
                  <name>IsTopic</name>
                  <value>false</value>
            </property>
            <property>
                  <name>IsTransacted</name>
                   <value>true</value>
            </property>
            <property>
                  <name>Username</name>
                  <value></value>
           </property>
           <property>
                 <name>Password</name>
                 <value></value>
            </property>
      </properties>
      </connection-properties>
</connection-instance>

または、Oracle WebLogic Server管理コンソールを使用して新規コネクション・ファクトリを構成するには、第2.19項「アダプタ・コネクション・ファクトリの追加」で説明する手順に従います。

8.4.5 WLS JMSテキスト・メッセージ

Oracle BPEL PMのこのWLS JMSテキスト・メッセージの使用例では、Oracle JMSアダプタでWLS JMSキューとの間のエンキューおよびデキューを実行する方法について説明します。

メディエータ・ビジネス・プロセスのWLS JMSテキスト・メッセージ・シナリオの場合、adapters-jms-101-wlsjms-textmessageusingqueuesサンプルに含まれているartifacts.zipファイルの次のファイルが必要です。

  • artifacts/schemas/expense.xsd

adapters-jms-101-wlsjms-textmessageusingqueuesサンプルを入手するには、Oracle SOA Sample Codeサイトにアクセスし、「Adapters」タブを選択します。

この項には、次の項目が含まれます。

8.4.5.1 前提条件の確認

Oracle BPEL PMのWLS JMSテキスト・メッセージの使用例では、前提条件として次のタスクを実行する必要があります。

8.4.5.1.1 Oracle WebLogic Server管理コンソールでのキューの作成

次の手順を実行して、この使用例で必要となるキューを作成します。

  1. Oracle WebLogic Server管理コンソールhttp://servername:portnumber/consoleにナビゲートします。

  2. 必要な資格証明を使用して、Oracle WebLogic Server管理コンソールのホーム・ページを開きます。

    図8-14に示すように、Oracle WebLogic Server管理コンソールのホーム・ページが表示されます。

    図8-14 Oracle WebLogic Server管理コンソールのホーム・ページ

    図8-14の説明が続きます
    「図8-14 Oracle WebLogic Server管理コンソールのホーム・ページ」の説明

  3. 「ドメイン構造」ペインで、「サービス」「メッセージング」「JMSモジュール」の順にナビゲートします。

    Oracle WebLogic Server管理コンソールの「JMSモジュール」ページが表示されます。

  4. 既存のモジュールのいずれかをクリックします。この例では、「SOAJMSModule」をクリックします。

    Oracle WebLogic Server管理コンソールの「SOAJMSModuleの設定」ページが表示されます。

  5. 「リソースの概要」セクションで、「新規作成」をクリックします。

    Oracle WebLogic Server管理コンソールの「新しいJMSシステム・モジュール・リソースの作成」ページが表示されます。

  6. 「キュー」を選択して「次へ」をクリックします。

  7. 次のキューの詳細を入力します。

    • 名前

    • JNDI名

    • テンプレート

  8. 「次へ」をクリックします。

  9. 「サブデプロイメント」リストから、使用するサブデプロイメントを選択します。

  10. 「終了」をクリックします。

    ReceiveQueueという名前のキューが作成されました。

  11. ステップ1から10を繰り返して、SendQueueという名前のキューを作成します。

8.4.5.1.2 Q2Qorders.xsdファイルの作成

次のコードを使用してQ2Qorders.xsdファイルを作成する必要があります。

<?xml version="1.0" ?>
 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
            targetNamespace="http://xmlns.oracle.com/pcbpel/nxsd/extensions/FileInbound"
            xmlns:tns="http://xmlns.oracle.com/pcbpel/nxsd/extensions/FileInbound"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified" nxsd:encoding="US-ASCII" nxsd:stream="chars" nxsd:version="NXSD">
  <xsd:element name="Items">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="item" minOccurs="1" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="Name" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy="&quot;">
              </xsd:element>
              <xsd:element name="Type" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy="&quot;">
              </xsd:element>
              <xsd:element name="Quantity" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy="&quot;">
              </xsd:element>
              <xsd:element name="Rate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;">
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>
<!--NXSDWIZ:C:\errors\inputFiles\orders.txt:-->

8.4.5.2 アプリケーション・サーバー接続の作成

設計時環境とデプロイ先サーバーの間の接続性を確立する必要があります。第2.7項「Oracle JCAアダプタ用のアプリケーション・サーバー接続の作成」で説明した手順に従って、アプリケーション・サーバー接続を作成します。

8.4.5.3 アプリケーションおよびSOAプロジェクトの作成

SOAコンポジットが含まれるJDeveloperアプリケーションを作成する必要があります。次の手順に従って新規アプリケーションとSOAプロジェクトを作成します。

  1. JDeveloperを開きます。

  2. 「アプリケーション・ナビゲータ」で、「新規アプリケーション」をクリックします。「汎用アプリケーションの作成 - アプリケーションの名前付け」ダイアログが表示されます。

  3. 「アプリケーション名」フィールドにアプリケーションの名前を入力します。たとえば、queue2queueと入力します。

  4. 「アプリケーション・テンプレート」リストで、「汎用アプリケーション」を選択します。

  5. 「次へ」をクリックします。

    「プロジェクトの名前付け」ページが表示されます。

  6. 「プロジェクト名」フィールドにわかりやすい名前を入力します。たとえば、queue2queueと入力します。

  7. 「プロジェクト・テクノロジ」タブの「選択可能」リストで「SOA」をダブルクリックし、「選択済」リストに移動します。

  8. 「次へ」をクリックします。「汎用アプリケーションの作成 - SOA設定の設定」ページが表示されます。

  9. 「コンポジット・テンプレート」リストから「BPELを使用するコンポジット」を選択して「終了」をクリックします。

    新規アプリケーションおよびSOAプロジェクトが作成されました。

    「BPELプロセスの作成」ページが表示されます。

  10. 「名前」フィールドにBPELプロセスの名前を入力します。たとえば、queue2queueと入力します。

  11. 「テンプレート」リストで「インタフェースを後で定義」を選択し、「OK」をクリックします。

    BPELプロセスが作成されました。

    設計領域に、queue2queueアプリケーション、queue2queueプロジェクトおよびSOAコンポジットが表示されます。

  12. Q2Qorders.xsdファイルをプロジェクトのXSDフォルダにコピーします。

8.4.5.4 インバウンド・アダプタ・サービスの作成

次の手順を実行し、メッセージをキューにデキューするアダプタ・サービスを作成します。

  1. 「サービス・アダプタ」リストから「JMSアダプタ」を「composite.xml」ページの「公開されたサービス」スイムレーンにドラッグ・アンド・ドロップします。

    アダプタ構成ウィザードの「ようこそ」ページが表示されます。

  2. 「次へ」をクリックします。

    「サービス名」ページが表示されます。

  3. 「サービス名」フィールドにInboundと入力して「OK」をクリックします。

    「JMSプロバイダ」ページが表示されます。

  4. 図8-15に示すように、「Oracle Enterprise Messaging Service (OEMS)」ボックスで「Oracle Weblogic JMS」を選択し、「次へ」をクリックします。「サービス接続」ページが表示されます。

    図8-15 「アダプタ構成ウィザード - JMSプロバイダ」ページ

    図8-15の説明が続きます
    「図8-15 「アダプタ構成ウィザード - JMSプロバイダ」ページ」の説明

  5. 図8-16に示すように、第8.4.5.2項「アプリケーション・サーバー接続の作成」で作成した接続を選択します。

    図8-16 「アダプタ構成ウィザード - サービス接続」ページ

    図8-16の説明が続きます
    「図8-16 「アダプタ構成ウィザード - サービス接続」ページ」の説明

  6. 「次へ」をクリックします。「アダプタ・インタフェース」ページが表示されます。

  7. 「操作およびスキーマから定義(後で指定)」を選択して「次へ」をクリックします。「操作」ページが表示されます。

  8. 図8-17に示すように、「メッセージ消費」を選択して「次へ」をクリックします。

    「消費操作のパラメータ」ページが表示されます。

    図8-17 「アダプタ構成ウィザード - 操作」ページ

    図8-17の説明が続きます
    「図8-17 「アダプタ構成ウィザード - 操作」ページ」の説明

  9. 「参照」をクリックし、「接続先」フィールドで「ReceiveQueue」を選択します。

    「消費操作のパラメータ」ページが表示されます。

  10. 消費操作のパラメータを入力して「次へ」をクリックします。

    「メッセージ」ページが表示されます。


    注意:

    アダプタが管理モードで確実に実行されるように、JNDI名で指定した値がOracle JMSアダプタのweblogic-ra.xmlファイルに存在する必要があります。

  11. 「URL」フィールドの端にある「参照」をクリックします。

    「タイプ・チューザ」ダイアログが表示されます。

  12. 図8-18に示すように、「プロジェクトのスキーマ・ファイル」「Q2Qorders.xsd」および「Items」を順番に選択します。

    図8-18 「タイプ・チューザ」ダイアログ

    図8-18の説明が続きます
    「図8-18 「タイプ・チューザ」ダイアログ」の説明

  13. 「次へ」をクリックします。図8-19に示すように、「メッセージ」ページの「URL」にQ2Qorders.xsdスキーマ・ファイルが表示されます。

    図8-19 「アダプタ構成ウィザード - メッセージ」ページ

    図8-19の説明が続きます
    「図8-19 「アダプタ構成ウィザード - メッセージ」ページ」の説明

  14. 「次へ」をクリックします。「終了」ページが表示されます。

  15. 「終了」をクリックします。JMSインバウンド・アダプタ・サービスの構成を完了しました。

8.4.5.5 アウトバウンド・アダプタ・サービスの作成

リクエスト・メッセージをエンキューし、対応するレスポンス・メッセージ(レポート)をキューからデキューするアダプタ・サービスを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」から、「JMSアダプタ」を「公開されたサービス」スイムレーンにドラッグ・アンド・ドロップします。アダプタ構成ウィザードの「ようこそ」ページが表示されます。

  2. 「次へ」をクリックします。「サービス名」ページが表示されます。

  3. 「サービス名」フィールドにOutboundと入力して「OK」をクリックします。「JMSプロバイダ」ページが表示されます。

  4. 「Oracle Enterprise Messaging Service (OEMS)」ボックスで「Oracle Weblogic JMS」を選択し、「次へ」をクリックします。「サービス接続」ページが表示されます。

  5. 第8.4.5.2項「アプリケーション・サーバー接続の作成」で作成した接続を選択し、「次へ」をクリックします。「アダプタ・インタフェース」ページが表示されます。

  6. 「操作およびスキーマから定義(後で指定)」を選択して「次へ」をクリックします。「操作」ページが表示されます。

  7. 「メッセージ発行」を選択して「次へ」をクリックします。「発行操作のパラメータ」ページが表示されます。

  8. 「参照」をクリックし、「接続先」フィールドで「SendQueue」を選択します。「発行操作のパラメータ」ページが表示されます。

  9. 「次へ」をクリックします。「メッセージ」ページが表示されます。

  10. 「URL」フィールドの端にある「参照」をクリックします。「タイプ・チューザ」ダイアログが表示されます。

  11. 「プロジェクトのスキーマ・ファイル」「Q2Qorders.xsd」および「Items」を順番に選択します。

  12. 「次へ」をクリックします。「メッセージ」ダイアログの「URL」にQ2Qorders.xsdスキーマ・ファイルが表示されます。

  13. 「次へ」をクリックします。「終了」ページが表示されます。

  14. 「終了」をクリックします。JMSアダプタ・サービスの構成が完了し、「composite.xml」ページが表示されます。

8.4.5.6 サービスとアクティビティのワイヤリング

作成した3つのコンポーネント(インバウンド・アダプタ・サービス、BPELプロセスおよびアウトバウンド・アダプタ参照)を接続する必要があります。コンポーネントを接続する手順は、次のとおりです。

  1. 「公開されたサービス」領域にあるインバウンドOracle JMSアダプタ・コンポーネント内の小さい三角形を、「コンポーネント」領域のBPELプロセス内に緑の三角形として表示されるドロップ・ゾーンにドラッグします。

  2. 「コンポーネント」領域にあるBPELプロセス内の小さい三角形を、「外部参照」領域のアウトバウンドOracle JMSアダプタ内に緑の三角形として表示されるドロップ・ゾーンにドラッグします。

    JDeveloperのcomposite.xmlが図8-20のように表示されます。

    図8-20 JDeveloper: composite.xml

    図8-20の説明が続きます
    「図8-20 JDeveloper: composite.xml」の説明

  3. 「ファイル」「すべて保存」を順番にクリックします。

  4. 「queue2queue」をダブルクリックします。

    「queue2queue.bpel」ページが表示されます。

  5. 図8-21に示すように、「コンポーネント・パレット」から、receiveassignおよびinvokeアクティビティを「コンポーネント」領域にこの順序でドラッグ・アンド・ドロップします。

    図8-21 「queue2queue.bpel」ページ

    図8-21の説明が続きます
    「図8-21 「queue2queue.bpel」ページ」の説明

  6. 「Receive」をダブルクリックします。

    「Receive」ダイアログが表示されます。

  7. 「パートナ・リンク」フィールドの端にある「パートナ・リンクの参照」をクリックします。

    「パートナ・リンク・チューザ」ダイアログが表示されます。

  8. 「Inbound」を選択して「OK」をクリックします。

    「パートナ・リンク」フィールドに値Inboundが移入された状態で「Receive」ダイアログが表示されます。

  9. 「変数」フィールドの端に表示される「変数の自動作成」アイコンをクリックします。

    「変数の作成」ダイアログが表示されます。

  10. デフォルトを受け入れて「OK」をクリックします。

  11. 図8-22に示すように、「インスタンスの作成」ボックスを選択して「OK」をクリックします。

    図8-22 「Receive」ダイアログ

    図8-22の説明が続きます
    「図8-22 「Receive」ダイアログ」の説明

  12. invokeアクティビティをダブルクリックします。

    「Invoke」ダイアログが表示されます。

  13. 「パートナ・リンク」フィールドの端にある「パートナ・リンクの参照」をクリックします。

    「パートナ・リンク・チューザ」ダイアログが表示されます。

  14. 「Outbound」を選択して「OK」をクリックします。

    「パートナ・リンク」フィールドに値Outboundが移入された状態で「Invoke」ダイアログが表示されます。

  15. 「入力変数」フィールドの端に表示される「入力変数の自動作成」アイコンをクリックします。

    「変数の作成」ダイアログが表示されます。

  16. デフォルトを受け入れて「OK」をクリックします。

    図8-23に示すように、「Invoke」ダイアログが表示されます。

    図8-23 「Invoke」ダイアログ

    図8-23の説明が続きます
    「図8-23 「Invoke」ダイアログ」の説明

  17. 「OK」をクリックします。

  18. assignアクティビティをダブルクリックします。

    「Assign」ダイアログが表示されます。

  19. 「+」アイコンをクリックして「コピー操作」を選択します。「コピー操作の作成」ダイアログが表示されます。

  20. 図8-24に示すように、変数を選択して「OK」をクリックします。

    図8-24 「コピー操作の作成」ダイアログ

    図8-24の説明が続きます
    「図8-24 「コピー操作の作成」ダイアログ」の説明

  21. 「Assign」ダイアログで「OK」をクリックします。

  22. 「ファイル」「すべて保存」を順番にクリックします。

8.4.5.7 JDeveloperを使用したデプロイ

前述の手順で作成したSOAプロジェクトおよびアプリケーションについて、アプリケーション・プロファイルをデプロイする必要があります。JDeveloperを使用してアプリケーション・プロファイルをデプロイするには、次の手順に従います。

  1. 第2章の「Oracle JCAアダプタ用のアプリケーション・サーバー接続の作成」で説明されている手順を使用して、アプリケーション・サーバー接続を作成します。

  2. 第2.8項「Oracle JDeveloperからのOracle JCAアダプタ・アプリケーションのデプロイ」で説明されている手順を使用して、アプリケーションをデプロイします。

8.4.5.8 Fusion Middleware Controlコンソールを使用した監視

Fusion Middleware Controlコンソールを使用して、デプロイ済のコンポジットを監視できます。次の手順を実行します。

  1. http://servername:portnumber/emにナビゲートします。

    デプロイしたコンポジットがアプリケーション・ナビゲータに表示されます。

  2. 「最後の5つのインスタンス」ペインに、新規インスタンスのエントリがあります。これは、queue2queue.javaを使用してメッセージをエンキューするときにトリガーされたインスタンスです。

  3. インスタンスのいずれかをクリックします。「フローのトレース」ページが表示されます。

  4. 「TextMessage」コンポーネント・インスタンスをクリックします。「監査」ページが表示されます。

  5. 「フロー - デバッグ」タブをクリックしてインスタンスをデバッグします。

8.4.6 リモートOracle WebLogic Serverドメイン内のWLS JMSサーバーからのキューとトピックへのアクセス

Oracle JMSアダプタを使用してリモートWLS JMS宛先にアクセスできます。リモート宛先は、リモートOracle WebLogic Serverドメインの一部であるWLS JMSサーバー内で定義されているキューまたはトピックを指します。

このようなアクセスを実行するには、リモートWLS JMSサーバーと通信するように構成されたコネクタ・ファクトリを使用する必要があります。そのためには、次の例に示すように、weblogic-ra.xml内で定義されているコネクタ・ファクトリの<FactoryProperties>プロパティをリモート・サーバー構成に設定します。

<property>
<name>FactoryProperties</name>
<value>java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;
java.naming.provider.url= t3://<HOST>:<PORT>;java.naming.security.principal= <USERNAME>;java.naming.security.credentials=<PASSWORD> </value> </property>

Oracle JMSアダプタでリモートWLS JMSサーバーにあるリモート・キューから読み取れるようにするには、次のように構成する必要があります。

  1. 両方のサーバーに一意のドメイン名とJMSサーバー名が必要です。

  2. 2つのサーバー間でグローバルな信頼を有効化する必要があります。

    サーバー間でグローバルな信頼を有効化する方法については、次のリンクを参照してください。

    http://download.oracle.com/docs/cd/E13222_01/wls/docs100/ConsoleHelp/taskhelp/security/EnableGlobalTrustBetweenDomains.html

    この構成は、WLS9.2サーバーにあるキューまたはトピックに接続する際にも適しています。

8.4.6.1 リモート・サーバーが使用される場合のJMSアダプタの制限

JMSアダプタを使用すると、SOAがインストールされているWebLogicServerドメインに対してリモートになっている、ドメイン内のWebLogic Server JMSの宛先の場所と対話できます。

JMSアダプタを介してリモートの宛先にアクセスできるようにする2つのオプションがサポートされています。

  • アクセス・パラメータにリモート・ドメインを指定したweblogic-ra.xmlファイルのFactoryPropertiesの指定による直接アクセス。

  • リモート・ドメインにアクセスするように外部サーバーを構成。

インバウンドの使用例では、両方のオプションがサポートされます。アウトバウンドの使用例の場合のみ、直接アクセスはサポートされますが、外部サーバーの構成はサポートされません。

8.4.7 同期/非同期リクエスト-リプライ相互作用パターン

Oracle JMSアダプタでは、同期と非同期のリクエスト-リプライ相互作用パターンの両方がサポートされています。

8.4.7.1 同期リクエスト-リプライ・パターン

アダプタ構成ウィザードを使用すると、Oracle JMSアダプタを同期リクエスト-リプライ相互作用パターンに使用できるプロセスをモデル化できます。この場合、Oracle JMSアダプタはリクエスト・キューにリクエストを送信し、リプライ・キューからのレスポンスを待ってから実行を継続します。下位では、Oracle JMSアダプタにより新規の相互作用パターンJmsRequestReplyInteractionSpecが使用されます。このインタラクション仕様では、リクエストとリプライの宛先名の構成が許可されています。

11g リリース1 (11.1.1.4.0)の新機能であるバリエーションでは、リプライ・キューの一部として一時返信先の使用が許可されます。基本的に、このパターンではOracle JMSアダプタはJMS宛先にメッセージを送信できます。その後、アダプタはJMSReplyToヘッダーをリプライの宛先に設定します。この値を使用してサード・パーティ・クライアントからリプライの宛先にメッセージが送信され、その後にメッセージがOracle JMSアダプタによりデキューされます。

Oracle JMSアダプタを同期パターンで使用する場合は、非XAコネクション・ファクトリを使用し、コネクタ・ファクトリのisTransactedプロパティをweblogic-ra.xmltrueに設定してください。

Oracle WebLogic Server JMSとの同期パターンでOracle JMSアダプタを使用する場合、コネクション・ファクトリはweblogic.jms.ConnectionFactoryまたはその他任意の非XAコネクション・ファクトリにする必要があります。

詳細は、Oracle SOA Sample Codeサイトにアクセスし、
「Adapters」タブを選択することで次のサンプルを入手できます。

  • adapters-jms-106-wlsjms-syncrequestreply

  • adapters-jms-107-wlsjms-syncrequestreplywithtemporaryreplydestination

8.4.7.2 非同期リクエスト-リプライ・パターン

アダプタ構成ウィザードを使用すると、Oracle JMSアダプタを非同期リクエスト-リプライ相互作用パターンに使用できるプロセスをモデル化できます。

基本的に、このパターンではOracle JMSアダプタはJMS宛先にメッセージを送信できます。メッセージがリプライ・キューで受信されると、Oracle JMSアダプタはメッセージを正しいコンポジットまたはコンポーネント・インスタンスにルーティングできます。相関付けはリクエスト・メッセージのJMSMessageIDに基づいて実行され、このIDはリプライ・メッセージのJMSCorrelationIDおよび基礎となるコンポーネントの対話IDとなります。

詳細は、Oracle SOA Sample Codeサイトにアクセスし、「Adapters」タブを選択することで次のサンプルを入手できます。

  • adapters-jms-105-wlsjms-nativecorrelation

8.4.8 AQ JMSテキスト・メッセージ

この使用例では、Oracle JMSアダプタでAQ JMSキューとの間のエンキューおよびデキューを実行する方法について説明します。

adapters-jms-108-aqjms-textmessageusingqueuesサンプルを入手するには、Oracle SOA Sample Codeサイトにアクセスし、「Adapters」タブを選択します。

この項には、次の項目が含まれます。

8.4.8.1 前提条件の確認

この使用例を実行するには、前提条件として次のタスクを実行する必要があります。

8.4.8.1.1 Oracle WebLogic Server管理コンソールでのAQ JMSの構成

Oracle WebLogic Server管理コンソールでAQ JMSを構成するには、次の手順を実行する必要があります。

Oracle WebLogic JMSモジュールの追加

Oracle WebLogic JMSモジュールの追加はオプションです。AQ JMS外部サーバーを既存のJMSモジュールに作成することもできます。

  1. Oracle WebLogic Server管理コンソールhttp://servername:portnumber/consoleにナビゲートします。

  2. 必要な資格証明を使用して、Oracle WebLogic Server管理コンソールのホーム・ページを開きます。

    Oracle WebLogic Server管理コンソールのホーム・ページが表示されます。

  3. 「ドメイン構造」ペインで、「サービス」「メッセージング」「JMSモジュール」の順にナビゲートします。

    Oracle WebLogic Server管理コンソールの「JMSモジュール」ページが表示されます。

  4. 「新規作成」をクリックして新規のWebLogic JMSモジュールを作成します。

    Oracle WebLogic Server管理コンソールの「JMSシステム・モジュールの作成」ページが表示されます。

  5. JMSモジュール名を入力して「次へ」をクリックします。

    Oracle WebLogic Server管理コンソールの「JMSシステム・モジュールの作成」ページが表示されます。

  6. SOAコンポーネントが実行中のターゲット・サーバーを選択し、「次へ」をクリックします。

    Oracle WebLogic Server管理コンソールの「JMSシステム・モジュールの作成」ページが表示されます。

  7. 「終了」をクリックします。

    JMSモジュールが作成されました。

JMSモジュールへのAQ JMS外部サーバーの追加

次のステップは、次の手順に従ってJMSモジュールにAQ JMS外部サーバーを追加することです。

  1. 作成したJMSモジュールをクリックします。

    Oracle WebLogic Server管理コンソールの「AQJMSModuleの設定」ページが表示されます。

  2. 「リソースの概要」表で、「新規作成」をクリックして新規のJMSシステム・モジュール・リソースを作成します。

    Oracle WebLogic Server管理コンソールの「新しいJMSシステム・モジュール・リソースの作成」ページが表示されます。

  3. 「作成するリソースのタイプを選択してください。」で、「外部サーバー」を選択して「次へ」をクリックします。

    Oracle WebLogic Server管理コンソールの「新しいJMSシステム・モジュール・リソースの作成」ページが表示されます。

  4. 「名前」フィールドに外部サーバー名を入力し、「終了」をクリックします。

    Oracle WebLogic Server管理コンソールの「<JMSモジュール名>の設定」ページが表示されます。

AQ JMS外部サーバーの構成

次のステップは、作成したAQ JMS外部サーバーを構成することです。

  1. 「リソースの概要」表に表示されるAQ JMS外部サーバーをクリックします。

    Oracle WebLogic Server管理コンソールの「TestAQJMS_ForeignServerの設定」ページが表示されます。

  2. 次の値を入力します。

    • JNDI初期コンテキスト・ファクトリ: oracle.jms.AQjmsInitialContextFactory

      AQ JMS外部サーバーがWebLogicサーバー側コンポーネントで使用される場合は、次の値を指定して、このAQ JMS外部サーバーを使用してデータソースを構成する必要があります。

      「JNDIプロパティ」フィールドにdatasource=<datasource jndi location>と入力します。プレースホルダをデータソースのJNDIロケーションで置き換えます。

      ただし、AQ JMS外部サーバーがWebLogicアプリケーション・クライアントで使用される場合は、作成したAQ JMS外部サーバーを指定してJDBC URLを構成する必要があります。

    • JNDI接続URL: WebLogicサーバーでJNDIプロバイダへの接続に使用するURLを指定します。

      この値は、AQ JMS外部サーバーがWebLogicアプリケーション・クライアントで使用される場合にのみ必須です。

    • JNDIプロパティ資格証明: JNDIプロバイダ用に設定する必要のある資格証明を指定します。

      この値は、AQ JMS外部サーバーがWebLogicアプリケーション・クライアントで使用される場合にのみ必須です。


注意:

RACデータベースをアダプタ・エンドポイントとして使用する場合は、前述の手順で説明したJNDIプロパティが指すデータソースでマルチ・データソースを指す必要があります。

このようなエンドポイントに使用される個別データソースとマルチ・データソースには、第2.21項「Oracle JCAアダプタで使用するデータソースの推奨設定」に示す推奨設定を使用する必要があります。


AQ JMS外部サーバーへのコネクション・ファクトリの追加

AQJMS外部サーバーにコネクション・ファクトリを追加する手順は、次のとおりです。

  1. 「<外部サーバー名>の設定」ページの「接続ファクトリ」タブで、作成したAQJMS外部サーバーをクリックします。

  2. 「新規作成」をクリックします。

    Oracle WebLogic Server管理コンソールの「新しい外部JMS接続ファクトリの作成」ページが表示されます。

  3. 「名前」フィールドに、このコネクション・ファクトリの名前を入力します。これは、Oracle WebLogic Serverで参照される論理名です。

  4. 「ローカルJNDI名」フィールドに、このコネクション・ファクトリを参照するためにアプリケーションで使用するローカルJNDI名を入力します。


    注意:

    サンプルの使用例AQQueuetoQueueで提供されるJNDI名がeis/aqjms/Queueのキューに接続する場合は、ローカルJNDI名にaqjms/XAQueueConnectionFactoryを指定してください。

    また、JNDI名がeis/aqjms/Topicのトピックに接続する場合は、aqjms/XATopicConnectionFactoryを指定します。


  5. 「リモートJNDI名」フィールドに、要件に応じて次のいずれかの値を入力します。このコネクション・ファクトリをグローバル変換に使用する場合はXAベースのコネクション・ファクトリを使用し、それ以外の場合は非XAベースのコネクション・ファクトリを使用します。

    • QueueConnectionFactory

    • TopicConnectionFactory

    • ConnectionFactory

    • XAQueueConnectionFactory

    • XATopicConnectionFactory

    • XAConnectionFactory

  6. 「OK」をクリックします。

AQ JMS外部サーバーへの宛先の追加

AQJMS外部サーバーに宛先を追加する手順は、次のとおりです。

  1. 「<外部サーバー名>の設定」ページの「宛先」タブをクリックします。

  2. 「新規作成」をクリックし、この宛先の名前を指定します。これはOracle WebLogic Serverにより参照される論理名で、この宛先名では何も実行されません。

  3. 「ローカルJNDI名」フィールドに、この宛先を参照するためにアプリケーションで使用するローカルJNDI名を入力します。

  4. 「リモートJNDI名」フィールドに、宛先がキューの場合はQueues/<queue name>、宛先がトピックの場合はTopics/<topic name>と入力します。

  5. 「OK」をクリックします。

  6. Oracle WebLogic Server管理コンソールを再起動します。

Oracle WebLogic ServerでAQJMSの構成を完了しました。

8.4.8.1.2 Oracleデータベースでのキューの作成

キューを作成する手順は、次のとおりです。

  1. setup_user.sqlスクリプトを実行します。

  2. create_start_queues.sqlスクリプトを実行します。

これらのスクリプトは、adapters-jms-108-aqjms-textmessageusingqueuesサンプルのartifacts/sqlディレクトリにあります。adapters-jms-108-aqjms-textmessageusingqueuesサンプルを入手するには、Oracle SOA Sample Codeサイトにアクセスし、「Adapters」タブを選択します。

8.4.8.2 アプリケーション・サーバー接続の作成

設計時環境とデプロイ先サーバーの間の接続性を確立する必要があります。第2.7項「Oracle JCAアダプタ用のアプリケーション・サーバー接続の作成」で説明した手順に従って、アプリケーション・サーバー接続を作成します。

8.4.8.3 アプリケーションおよびSOAプロジェクトの作成

SOAコンポジットを含んだJDeveloperアプリケーションを作成する必要があります。次の手順に従って新規アプリケーションとSOAプロジェクトを作成します。

  1. JDeveloperを開きます。

  2. 「アプリケーション・ナビゲータ」で、「新規アプリケーション」をクリックします。「汎用アプリケーションの作成 - アプリケーションの名前付け」ダイアログが表示されます。

  3. 「アプリケーション名」フィールドにアプリケーションの名前を入力します。たとえば、AQQueue2Queueと入力します。

  4. 「アプリケーション・テンプレート」リストで、「汎用アプリケーション」を選択します。

  5. 「次へ」をクリックします。

    「プロジェクトの名前付け」ページが表示されます。

  6. 「プロジェクト名」フィールドにわかりやすい名前を入力します。たとえば、AQQueue2Queueと入力します。

  7. 「プロジェクト・テクノロジ」タブの「選択可能」リストで「SOA」をダブルクリックし、「選択済」リストに移動します。

  8. 「次へ」をクリックします。「汎用アプリケーションの作成 - SOA設定の設定」ページが表示されます。

  9. 「コンポジット・テンプレート」リストから「BPELを使用するコンポジット」を選択して「終了」をクリックします。

    新規アプリケーションおよびSOAプロジェクトが作成されました。

    「BPELプロセスの作成」ページが表示されます。

  10. 「名前」フィールドにBPELプロセスの名前を入力します。

  11. 「テンプレート」リストで「インタフェースを後で定義」を選択し、「OK」をクリックします。

    BPELプロセスが作成されました。

    AQQueue2Queueアプリケーション、AQQueue2QueueプロジェクトおよびSOAコンポジットが設計領域に表示されます。

  12. expense.xsdファイルをプロジェクトのXSDフォルダにコピーします。

    このファイルは、adapters-jms-108-aqjms-textmessageusingqueuesサンプルのartifacts/schemasディレクトリにあります。adapters-jms-108-aqjms-textmessageusingqueuesサンプルを入手するには、Oracle SOA Sample Codeサイトにアクセスし、「Adapters」タブを選択します。

8.4.8.4 インバウンド・アダプタ・サービスの作成

次の手順を実行し、メッセージをキューにデキューするアダプタ・サービスを作成します。

  1. 「サービス・アダプタ」リストから「JMSアダプタ」を「composite.xml」ページの「公開されたサービス」スイムレーンにドラッグ・アンド・ドロップします。アダプタ構成ウィザードの「ようこそ」ページが表示されます。

  2. 「次へ」をクリックします。「サービス名」ページが表示されます。

  3. 「サービス名」フィールドにInboundと入力して「OK」をクリックします。「JMSプロバイダ」ページが表示されます。

  4. 「Oracle Enterprise Messaging Service (OEMS)」ボックスで「Oracle Advanced Queueing」を選択し、「次へ」をクリックします。「サービス接続」ページが表示されます。

  5. 第8.4.5.2項「アプリケーション・サーバー接続の作成」で作成した接続を選択します。

  6. 「次へ」をクリックします。「アダプタ・インタフェース」ページが表示されます。

  7. 「操作およびスキーマから定義(後で指定)」を選択して「次へ」をクリックします。「操作」ページが表示されます。

  8. 「メッセージ消費」を選択して「次へ」をクリックします。「消費操作のパラメータ」ページが表示されます。

  9. 「参照」をクリックし、「接続先」フィールドで「testInQueue」を選択します。

  10. 「次へ」をクリックします。「メッセージ」ページが表示されます。

  11. 「URL」フィールドの端にある「参照」をクリックします。「タイプ・チューザ」ダイアログが表示されます。

  12. 「プロジェクトのスキーマ・ファイル」「expense.xsd」を順番に選択します。

  13. 「次へ」をクリックします。「メッセージ」ページの「URL」フィールドにexpenses.xsdスキーマ・ファイルが表示されます。

  14. 「次へ」をクリックします。「終了」ページが表示されます。

  15. 「終了」をクリックします。JMSインバウンド・アダプタ・サービスの構成を完了しました。

8.4.8.5 アウトバウンド・アダプタ・サービスの作成

リクエスト・メッセージをエンキューし、対応するレスポンス・メッセージ(レポート)をキューからデキューするアダプタ・サービスを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」から、「JMSアダプタ」を「公開されたサービス」スイムレーンにドラッグ・アンド・ドロップします。アダプタ構成ウィザードの「ようこそ」ページが表示されます。

  2. 「次へ」をクリックします。「サービス名」ページが表示されます。

  3. 「サービス名」フィールドにOutboundと入力して「OK」をクリックします。「JMSプロバイダ」ページが表示されます。

  4. 「Oracle Enterprise Messaging Service (OEMS)」ボックスで「Oracle Advanced Queueing」を選択し、「次へ」をクリックします。「サービス接続」ページが表示されます。

  5. 第8.4.5.2項「アプリケーション・サーバー接続の作成」で作成した接続を選択し、「次へ」をクリックします。「アダプタ・インタフェース」ページが表示されます。

  6. 「操作およびスキーマから定義(後で指定)」を選択して「次へ」をクリックします。「操作」ページが表示されます。

  7. 「メッセージ発行」を選択して「次へ」をクリックします。「発行操作のパラメータ」ページが表示されます。

  8. 「参照」をクリックし、「接続先」フィールドで「testOutQueue」を選択します。「発行操作のパラメータ」ページが表示されます。

  9. 「次へ」をクリックします。「メッセージ」ページが表示されます。

  10. 「URL」フィールドの端にある「参照」をクリックします。「タイプ・チューザ」ダイアログが表示されます。

  11. 「プロジェクトのスキーマ・ファイル」「expense.xsd」を順番に選択します。

  12. 「次へ」をクリックします。「メッセージ」ダイアログの「URL」フィールドにexpense.xsdスキーマ・ファイルが表示されます。

  13. 「次へ」をクリックします。「終了」ページが表示されます。

  14. 「終了」をクリックします。JMSアダプタ・サービスの構成が完了し、「composite.xml」ページが表示されます。

8.4.8.6 サービスとアクティビティのワイヤリング

作成した3つのコンポーネント(インバウンド・アダプタ・サービス、BPELプロセスおよびアウトバウンド・アダプタ参照)を接続する必要があります。コンポーネントをまとめて接続する手順は、次のとおりです。

  1. 「公開されたサービス」領域にあるインバウンドOracle JMSアダプタ・コンポーネント内の小さい三角形を、「コンポーネント」領域のBPELプロセス内に緑の三角形として表示されるドロップ・ゾーンにドラッグします。

  2. 「コンポーネント」領域にあるBPELプロセス内の小さい三角形を、「外部参照」領域のアウトバウンドOracle JMSアダプタ内に緑の三角形として表示されるドロップ・ゾーンにドラッグします。

    JDeveloperのcomposite.xmlが図8-25のように表示されます。

    図8-25 JDeveloper: composite.xml

    図8-25の説明が続きます
    「図8-25 JDeveloper: composite.xml」の説明

  3. 「ファイル」「すべて保存」を順番にクリックします。

  4. BPELプロセスをダブルクリックします。「BPELProcess1.bpel」ページが表示されます。

  5. 「コンポーネント・パレット」から、receiveassignおよびinvokeアクティビティを「コンポーネント」領域にこの順序でドラッグ・アンド・ドロップします。

  6. receiveアクティビティをダブルクリックします。

    「Receive」ダイアログが表示されます。

  7. 「パートナ・リンク」フィールドの端にある「パートナ・リンクの参照」をクリックします。

    「パートナ・リンク・チューザ」ダイアログが表示されます。

  8. 「Inbound」を選択して「OK」をクリックします。

    「パートナ・リンク」フィールドに値Outboundが移入された状態で「Receive」ダイアログが表示されます。

  9. 「変数」フィールドの端に表示される「変数の自動作成」アイコンをクリックします。「変数の作成」ダイアログが表示されます。

  10. デフォルトを受け入れて「OK」をクリックします。

  11. 「インスタンスの作成」ボックスを選択します。

  12. Outboundのためのinvokeアクティビティをダブルクリックします。

    「Invoke」ダイアログが表示されます。

  13. 「入力変数」フィールドの端に表示される「入力変数の自動作成」アイコンをクリックします。

  14. 「パートナ・リンク」フィールドの端にある「パートナ・リンクの参照」をクリックします。

    「パートナ・リンク・チューザ」ダイアログが表示されます。

  15. 「Outbound」を選択して「OK」をクリックします。

    「パートナ・リンク」フィールドに値Outboundが移入された状態で「Invoke」ダイアログが表示されます。

  16. デフォルトを受け入れて「OK」をクリックします。

  17. 「OK」をクリックします。

  18. assignアクティビティをダブルクリックします。

    「Assign」ダイアログが表示されます。

  19. 「+」アイコンをクリックして「コピー操作」を選択します。

    「コピー操作の作成」ダイアログが表示されます。

  20. 変数を選択して「OK」をクリックします。

  21. 「Assign」ダイアログで「OK」をクリックします。

  22. 「ファイル」「すべて保存」を順番にクリックします。


注意:

Oracle JMSアダプタを使用して永続サブスクリプションを使用するAQ JMSトピックからデキューする際に、デキュー操作が低パフォーマンスであることに気づいた場合は、アダプタ・サービスごとに複数のインバウンド・スレッドを使用することでパフォーマンス全体を高速化できます。

Oracle JMSアダプタでは、エンドポイント・プロパティadapter.jms.receive.threadsを指定すると複数のインバウンド・スレッドが許可されます。

ただし、非永続サブスクリプションを使用する場合、メッセージが重複するため、この解決策は機能しないことに注意してください。


8.4.8.7 JDeveloperを使用したデプロイ

前述の手順で作成したSOAプロジェクトおよびアプリケーションについて、アプリケーション・プロファイルをデプロイする必要があります。JDeveloperを使用してアプリケーション・プロファイルをデプロイするには、次の手順を実行する必要があります。

  1. 第2章の「Oracle JCAアダプタ用のアプリケーション・サーバー接続の作成」で説明されている手順を使用して、アプリケーション・サーバー接続を作成します。

  2. 第2.8項「Oracle JDeveloperからのOracle JCAアダプタ・アプリケーションのデプロイ」で説明されている手順を使用して、アプリケーションをデプロイします。

8.4.8.8 Fusion Middleware Controlコンソールを使用した監視

Fusion Middleware Controlコンソールを使用して、デプロイ済のコンポジットを監視できます。次の手順を実行します。

  1. http://servername:portnumber/emにナビゲートします。デプロイしたコンポジットがアプリケーション・ナビゲータに表示されます。

  2. 「最後の5つのインスタンス」ペインに、新規インスタンスのエントリがあります。これは、AQQueue2Queue.javaを使用してメッセージをエンキューするときにトリガーされたインスタンスです。

  3. インスタンスのいずれかをクリックします。「フローのトレース」ページが表示されます。

  4. 「TextMessage」コンポーネント・インスタンスをクリックします。「監査」ページが表示されます。

  5. 「フロー - デバッグ」タブをクリックしてインスタンスをデバッグします。

8.4.9 OC4J 10.1.3.4サーバーからリリース11gで作成されたキューとトピックへのアクセス

この項では、Oracle Application Server 11gで作成されたキューとトピックにOC4J 10.1.3.4からアクセスする手順について説明します。このことを行うには、Oracle WebLogic Serverを使用してOracle BPEL PM JMSアダプタを構成する必要があります。

Oracle WebLogic Serverを使用してOracle BPEL PM JMSアダプタを構成する手順は、次のとおりです。

  1. 次の手順に従ってwlfullclient.jarファイルを作成します。

    1. 次の例に示すようにserver/libディレクトリに移動します。

      cd WL_HOME/server/lib
      
    2. 次のコマンドを使用して、server/libディレクトリにwlfullclient.jarファイルを作成します。

      java -jar ../../../modules/com.bea.core.jarbuilder_X.X.X.X.jar
      

      X.X.X.Xは、WL_HOME/server/libディレクトリにあるjarbuilderモジュールのバージョン番号です。例:

      java -jar ../../../modules/com.bea.core.jarbuilder_1.0.1.0.jar
      
  2. wlfullclient.jarファイルを、次の場所にある10.1.3.4サーバーにコピーします。

    <ORACLEAS_HOME>/j2ee/<OC4J_INSTANCE>/connectors/JmsAdapter/JmsAdapter
    
  3. 次の例に示すように、oc4j-ra.xmlファイル内のコネクタ・ファクトリ設定を構成します。

    <connector-factory location="eis/wlsjms/Queue" connector-name="Jms Adapter">
            <config-property name="connectionFactoryLocation"                value="weblogic.jms.ConnectionFactory"/>
            <config-property name="factoryProperties"          value="java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://w3.us.oracle.com:7001;java.naming.security.principal=weblogic;java.naming.security.credentials=weblogic"/>
           <config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE"/>
           <config-property name="isTopic" value="false"/>
           <config-property name="isTransacted" value="false"/>
           <config-property name="username" value=""/>
           <config-property name="password" value=""/>
       <connection-pooling use="none">
       </connection-pooling>
         <security-config use="none">
         </security-config>
    </connector-factory>
    

    注意:

    isTransacted構成プロパティの値は、通常はFALSEに設定する必要があります。現在、XAとWebLogic JMSの統合は、アダプタがOracle WebLogic Serverにデプロイされていないかぎりサポートされていません。

  4. 次の例に示すように、10.1.3.4サーバーのserver.xmlファイルを変更し、environment-naming-url-factory-enabled="true"プロパティを追加します。

    <application-server
    ...
    ...
    environment-naming-url-factory-enabled="true"
    ...
    > 
    
  5. 10.1.3.4サーバーを再起動して変更内容を有効にします。

8.4.10 10.1.3.X OC4Jに存在するキューにアクセスするための11Gサーバーの構成

次の手順に従って、10.1.3.x OC4Jに存在するキューにアクセスするように11Gサーバーを構成できます。

8.4.10.1 Web Logic ServerのdomainsフォルダへのJarファイルのコピー

次のjarファイルをWebLogic Serverのdomains/<DOMAIN_NAME>/libフォルダにコピーします。

  • $J2EE_HOME/lib/jms.jar

  • $J2EE_HOME/lib/jta.jar

  • $J2EE_HOME/oc4jclient.jar

  • $AS_HOME/opmn/lib/optic.jar

8.4.10.2 weblogic-ra.xmlファイルへのコネクタ・ファクトリの追加

次の手順は、weblogic-ra.xmlファイルへのコネクタ・ファクトリの追加です。

<connection-instance>
   <jndi-name>eis/oc4jjms/Queue</jndi-name>
    <connection-properties>
       <properties>
        <property>
          <name>ConnectionFactoryLocation</name>
          <value>jms/XAQueueConnectionFactory</value>
         </property>
         <property>
          <name>FactoryProperties</name>
          <value>java.naming.factory.initial=com.evermind.server.rmi.
RMIInitialContextFactory;java.naming.provider.url=
<PROVIDER_URL>;java.naming.security.principal=oc4jadmin;
java.naming.security.credentials=welcome1</value>
</property> <property> <name>AcknowledgeMode</name> <value>AUTO_ACKNOWLEDGE</value> </property> <property> <name>IsTopic</name> <value>false</value> </property> <property> <name>IsTransacted</name> <value>false</value> </property> <property> <name>Username</name> <value>oc4jadmin</value> </property> </property> <property> <name>Password</name> <value>welcome1</value> </property> </properties> </connection-properties> </connection-instance>

<PROVIDER_URL>=opmn://localhost:6003またはormi://localhost:12401は特定のノードに使用し、opmn:ormi://localhost:6003:oc4j_soaoc4j_soaインスタンスに使用します。

8.4.11 WebLogic Server JMS上の分散宛先(キューとトピック)へのアクセス

分散宛先は、単一の論理的な宛先としてクライアントからアクセスできる宛先のセット(キュー、物理的なJMSキュー・メンバーのセット、またはトピック、物理的なJMSトピック・メンバーのセット)です。


注意:

分散宛先の詳細およびこのコンテキストで使用されている用語の定義は、http://download.oracle.com/docs/cd/E13222_01/wls/docs103//jms/dds.htmlにある分散宛先の使用に関するページを参照してください

JMSアダプタは、使用可能通知の受信後に分散宛先メンバーにアドレス指定されたメッセージを処理できます。分散宛先メンバーに関連する使用可能通知、使用不能通知および障害通知を処理できます。JMSアダプタでこのようなメッセージを処理するには、JMSアダプタで分散宛先(キューまたはトピック)へのアクセスを可能にする追加のプロパティを指定する必要があります。

追加のプロパティを指定する場合は、複数のFactoryProperty値をセミコロンで区切ることができます。次の例を参照してください。

<property>
  <name>FactoryProperties</name>
  <value>ClientID=SOACLient2; TopicMessageDistributionAll=true</value>
</property>

8.4.11.1 分散宛先にアクセスするためのJMSアダプタの指定

3つのFactoryPropertyパラメータ値を使用して、分散宛先へのアクセスの提供、複数の接続でのクライアントIDの共有の有効化、複数のサブスクライバ間での永続サブスクリプションの共有の有効化、アプリケーションごとまたはエンドポイントごとにメッセージのコピーが1つ必要かどうかの指定を行うことができます。次のプロパティがあります。

  • ClientIDPolicy

    複数の接続でクライアントIDを共有できるようにするには、FactoryPropertiesパラメータのClientIDPolicyプロパティにUNRESTRICTEDという値を使用します。値が指定されていない場合、デフォルトはUNRESTRICTEDです。デフォルト以外の値はRESTRICTEDです。デフォルトはほぼすべての用途に使用されるため、通常はこのプロパティを設定する必要はありません。次の例を参照してください。

    </property>
       <name>FactoryProperties</name>
    <value>ClientIDPolicy=UNRESTRICTED</value>
    
     </property>
    
  • SubscriptionSharingPolicy

    複数のサブスクライバ間で永続サブスクリプションを共有できるようにするには、FactoryPropertiesパラメータにSHARABLEという値を使用します。

    SubscriptionSharingPolicyの値EXCLUSIVEは、複数のサブスクライバ間で永続サブスクリプションを共有できないことを意味します。値を指定しない場合、デフォルトはSHARABLEです。ほとんどの場合、値を変更する必要はありません。

     <property> 
        <name>FactoryProperties</name> 
        <value>SubscriptionSharingPolicy=SHARABLE</value> 
     </property>
     
    
  • TopicMessageDistributionAll

    TopicMessageDistributionAll FactoryPropertiesパラメータの詳細は、分散トピックに関する項を参照してください。次の例のように設定できます。

    <property>
        <name>FactoryProperties</name>
        <value>TopicMessageDistributionAll=true</value>
    </property>
    

8.4.11.2 分散キューと分散トピックを使用したJMSアダプタ

特定のインバウンドおよびアウトバウンド・キューおよびエラー処理の動作は、JMS分散キューおよび分散トピックを使用したJMSアダプタに適用されます。

インバウンド・キューの場合、JMSアダプタはインバウンド・ポーラー・スレッドを作成し、エンドポイント・アクティブ化時にWebLogic Server JMSに通知リスナーを登録します。エンドポイントの非アクティブ化時に通知リスナーを登録解除します。

JMSアダプタは、非分散環境のエラーが処理されるのと同じ方法で分散環境のエラーを処理します。再試行可能例外ではメッセージが再試行されます。再試行不能例外ではメッセージが拒否されます。

アダプタが分散キューへのメッセージを生成するときに、他のアダプタの動作からJMSアダプタの動作への変更は行われません。

分散宛先に対するJMSメッセージは、分散宛先に対してMessageProducerを作成し、特定のメンバーに対しては作成しないことで生成されます。

アウトバウンド・エラーは、アウトバウンド参照に対して以前に定義されたフォルト・ポリシーに基づいて処理されます。

分散トピックを使用したインバウンド・アダプタの場合、JMSアダプタはエンドポイントのアクティブ化時に通知リスナーをWebLogic Server JMSに登録します。JMSアダプタは、分散トピック・メンバーに対してWebLogic Server JMSから受信した使用可能通知ごとにインバウンド・ポーラー・スレッドを作成します。

ポーラー・スレッドが作成されたメンバーに対する使用不能通知が受信された場合は、インバウンド・ポーラー・スレッドが作業を停止し、必要なクリーン・アップが実行されます。永続サブスクリプションは、非分散トピックのシナリオと同様の方法でメンテナンスされます。

アダプタは、エンドポイントの非アクティブ化時に通知リスナーを登録解除します。分散トピックに到着したメッセージは、使用されている様々な設定と使用中の分散宛先のタイプ(アプリケーションごとにメッセージのコピーが1つ、またはアダプタ・エンドポイントごとにメッセージのコピーが1つ)に基づいて処理されます。

これらの各タイプの分散宛先の動作を次に示します。

8.4.11.3 アプリケーションごとに1つのメッセージのコピー(デフォルトの動作)

JMSアダプタで使用される場合のWebLogic Serverパーティション分散トピックのデフォルトの動作では、アプリケーションごとにメッセージのコピーが1つ提供されます。各メッセージは必ず1回のみ処理する(つまり、重複する処理がない)必要があります。アプリケーションごとにメッセージのコピーが1つあるこのシナリオでは、クライアントIDとサブスクリプション名はすべての分散宛先に対して 同じ であり、 各 アダプタ・インスタンスが すべての メンバーにサブスクリプションを作成します。サーバーの再起動後も名前は一意であり不変です。パーティション分散トピックを使用する場合、無制限のクライアントIDと共有サブスクリプション・ポリシーを使用するようにJMSアダプタを構成する必要があります。この2つは分散宛先のデフォルト設定です。複製された分散トピックを使用している場合は、無制限のクライアントIDと共有サブスクリプションのポリシーを使用するようにJMSアダプタを構成する必要があります(これはデフォルト設定です)。パフォーマンスを向上させるには、パーティション分散トピックを使用する必要があります。また、アクティブ化仕様を定義するときに、メッセージ・セレクタNOT JMS_WL_DDForwardedを指定する必要があります。

ローカル・クラスタのweblogic-ra.xmlファイルの接続インスタンスのスニペットから構成される例については、次を参照してください。

<property>
    <name>FactoryProperties</name>
    <value>ClientID=SOAClient1;</value>
</property>

8.4.11.4 アダプタ・エンドポイントごとに1つのメッセージのコピー

分散トピックで使用できる2番目の使用例では、アダプタ・エンドポイントごとに1つのメッセージのコピーを使用します。この場合、クライアントIDまたはサブスクリプション名は、アダプタ・インスタンスごとに一意です。メンバー名の一意の 部分 は、サーバーの再起動後も変わりません。

パーティション分散トピックを使用する場合は、無制限のクライアントIDと共有サブスクリプションのポリシーを使用するようにJMSアダプタを構成する必要があります(これはデフォルト設定です)。同時に、サブスクリプション名を一意にするには、JMSアダプタではプロパティTopicMessageDistributionAll (デフォルト値はfalse)がtrueに設定されている必要があります。このプロパティは、weblogic-ra.xmlファイルで接続インスタンスのFactoryPropertiesプロパティを設定することで定義できます。使用例(ローカル・クラスタのweblogic-ra.xmlファイルの接続インスタンスのスニペット)を次に示します。

<name>FactoryProperties</name>
<value>ClientID=SOAClient2;TopicMessageDistributionAll=true</value>
</property>

また、アクティブ化の仕様を定義するときに、メッセージ・セレクタ(NOT JMS_WL_DDForwarded)を指定する必要があります。

パフォーマンスを向上するには、パーティション分散トピックを使用する必要があります。

複製された分散トピックを使用している場合は、無制限のクライアントIDと共有サブスクリプションのポリシーを使用するようにJMSアダプタを構成する必要があります(これはデフォルト設定です)。同時に、サブスクリプション名を一意にするには、JMSアダプタではプロパティTopicMessageDistributionAll (デフォルト値はfalse)がtrueに設定されている必要があります。このプロパティは、weblogic-ra.xmlで接続インスタンスのFactoryPropertiesプロパティを設定することで定義できます。使用例(ローカル・クラスタのweblogic-ra.xmlの接続インスタンスのスニペット)を次に示します。

<name>FactoryProperties</name>
<value> ClientID=SOAClient2;TopicMessageDistributionAll=true</value>
</property>
8.4.11.4.1 アクティブ化の仕様を定義するときのメッセージ・セレクタの指定

アクティブ化の仕様を定義するときに、メッセージ・セレクタも指定する必要があります。メッセージ・セレクタは、アダプタ・エンドポイントごとにメッセージのコピーを1つ作成する場合に必要です。

セレクタを指定するには、重複する分散トピックから読み取ったコンポジット・アプリケーションをモデリングするときにアダプタ・ウィザードを使用します。指定するメッセージ・セレクタのメタデータは、.jcaファイルに取得されます。

アクティブ化の仕様で定義されているメッセージ・セレクタの例を次に示します。このメッセージ・セレクタは、メッセージを宛先サブスクライバに送信するときに、転送されたメッセージのコピーを除外します。このメッセージ・セレクタは、複製された分散トピックを使用する場合のみ適用できます。

<activation-spec className="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec">
     <property name="DestinationName" value="jms/DemoInTopic"/>
     <property name="UseMessageListener" value="false"/>
     <property name="DurableSubscriber" value="dsub1"/>
     <property name="MessageSelector" value="NOT JMS_WL_DDForwarded"/>
     <property name="PayloadType" value="TextMessage"/>
</activation-spec>

分散トピックでは、再試行可能例外によりメッセージが再試行され、再試行不能例外によりメッセージが拒否されます。

使用可能/使用不能/障害通知は、アウトバウンド・アダプタ参照の処理には影響しません。メッセージは、分散宛先に対してMessageProducerを作成し、特定のメンバーに対しては作成しないことで生成されます。

分散トピック環境では、他の環境と同様に、エラーはアウトバウンド参照に対して定義されているフォルト・ポリシーに基づいて処理されます。

8.4.11.4.2 互換性と移行

リモート分散キューのサポートは、新しいDestinationAvailabilityListener APIを使用してWLS JMSバージョン9.0以降のWebLogic JMSリリースで実現されています。リモート分散トピックは、WebLogic 10.3.4より古い場合には"共有サブスクリプション"、"無制限のクライアントID"、"非転送"としてサポートされません。この場合は、分散トピック・メンバーJNDI名を直接参照し、サブスクリプションの制限ごとに1つのサブスクライバを処理する必要があります。