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

戻る
戻る
 
次へ
次へ
 

7 Oracle JCA Adapter for AQ

この章では、Oracle BPEL Process Manager(Oracle BPEL PM)またはOracle Mediatorによるシングル・コンシューマまたはマルチ・コンシューマ・キューの操作を可能にする、Oracle JCA Adapter for AQ(Oracle AQアダプタ)の使用方法について説明します。

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

7.1 Oracle AQアダプタの概要

Oracle Streams Advanced Queuing(AQ)では、関連するアプリケーション間の双方向の非同期通信用に柔軟なメカニズムが提供されています。 アドバンスト・キューはOracleデータベースの機能であるため、スケーラブルで信頼性があります。 バックアップとリカバリ(Point-in-Timeリカバリも含む)、ロギング、トランザクション・サービスおよびシステム管理など、Oracleデータベースの他の機能もアドバンスト・キューによって継承されます。 複数のキューで単一のアプリケーションに対応することも可能です。メッセージを様々な方法でパーティション化し、ロード・バランシングで別のレベルのスケーラビリティを実現します。

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

Oracle AQの詳細は、『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイド』のOracle Streams AQの概要に関する項を参照してください。

7.1.1 Oracle AQアダプタとOracle BPEL Process Managerの統合

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

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

7.1.2 Oracle AQアダプタとOracle Mediatorの統合

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

メディエータ・サーバーを使用すると、Oracle Advanced Queuingのシングル・コンシューマ・キューまたはマルチ・コンシューマ・キューとの間でメッセージを送受信できます。


注意:

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

7.2 Oracle AQアダプタの機能

Oracle AQアダプタは、AQメッセージのプロデューサでもありコンシューマでもあります。 エンキュー操作は、JCAアウトバウンド相互作用として公開されています。 デキュー操作は、JCAインバウンド相互作用として公開されています。

Oracle AQアダプタでは、ペイロードとしてADT(Oracleオブジェクト・タイプ)、XMLTypeおよびRAWキューをサポートしています。 また、1つのADTメンバー列からのペイロードの抽出もサポートしています。

Oracle AQアダプタでは、エンキューおよびデキュー操作用として正規化されたプロパティがサポートされています。

Oracle AQアダプタでサポートされているプロパティの詳細は、付録Aの「Oracle AQアダプタのプロパティ」を参照してください。

Oracle AQアダプタのサンプルは、次の場所にあります。

http://www.oracle.com/technology/sample_code/products/adapters

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

7.2.1 エンキュー固有の機能(メッセージ生成)

Oracle AQアダプタでは、Oracle Streams AQの次の機能をサポートしています。

  • 相関識別子

    アダプタ構成ウィザードでは、特定メッセージの取得に使用するエンキュー操作の定義時に相関識別子を指定できます。

  • マルチ・コンシューマ・キュー

    Oracle Streams AQでは、2つ以上のコンシューマで1つのメッセージの処理と消費を実行できます。 この機能を使用するには、マルチ・コンシューマ・キューを作成し、そのキューにメッセージをエンキューする必要があります。 この構成では、デフォルトのサブスクリプション・リストまたはオーバーライド受信者リストのいずれかを使用して、単一のメッセージが2つ以上のAQコンシューマによって消費(デキュー操作)されます。 このシナリオでは、指定したすべてのコンシューマ・エージェントによって消費されるまで、メッセージはキューに残ります。 Oracle AQアダプタのエンキュー・ヘッダー・プロパティ(jca.aq.RecipientList)を使用すると、キューからのメッセージ取得が可能なオーバーライド受信者リスト(カンマ区切りの文字列値)を指定できます。 サブスクライバとしてマルチ・コンシューマ・キューに追加されたすべてのコンシューマでは、Recipientパラメータに一意の値が必要です。 これは、2つのサブスクライバでNAMEADDRESSおよびPROTOCOL属性に同じ値を使用できないことを意味します。

  • メッセージの優先度

    エンキュー済のメッセージに優先度を指定すると、メッセージは優先度に従ってデキューされます。 2つのメッセージの優先度が同じ場合、デキューの順番はエンキュー時間で決定されます。 また、メッセージのソート順としてエンキュー時間の優先度を指定することで、優先度が格納順の取出し(FIFO)のキューを作成することもできます。 この優先度は、Oracle AQアダプタのエンキュー・ヘッダーのプロパティです。 エンキュー時間は、基礎となるAQアプリケーションによって自動的に設定されます。

    次に、FIFOキューの作成方法の例を示します。

    EXECUTE DBMS_AQADM.CREATE_QUEUE_TABLE( \
    queue_table => 'OE_orders_pr_mqtab', \
    sort_list =>'priority,enq_time', \
    comment => 'Order Entry Priority \
    MultiConsumer Orders queue table',\
    multiple_consumers => TRUE, \
    queue_payload_type => 'BOLADM.order_typ', \
    compatible => '8.1', \
    primary_instance => 2, \
    secondary_instance => 1);
    EXECUTE DBMS_AQADM.CREATE_QUEUE ( \
    queue_name => 'OE_bookedorders_que', \
    queue_table => 'OE_orders_pr_mqtab');
    
  • 時間の指定とスケジュール

    Oracle Streams AQでは、遅延間隔と有効期限の間隔を指定できます。 遅延間隔は、メッセージのエンキュー後に、エンキュー済のメッセージがデキュー元で使用可能とマークされる時期を決定します。 遅延時間の設定されたメッセージがエンキューされると、メッセージはWAIT状態とマークされます。 WAIT状態のメッセージは、デフォルトのデキュー・コールからマスクされます。 有効期限のプロパティは有効期限の指定に使用され、メッセージが有効期限の前に消費されない場合、メッセージは自動的に例外キューに移動されます。

7.2.2 デキューおよびエンキューの機能

Oracle Streams AQには、次のデキュー・オプションがあります。

  • ポーリング・オプション

  • 通知オプション

ポーリング・オプションは、着信の都度のメッセージの処理や、メッセージの継続的なポーリングに関連します。 Oracle AQアダプタでは、AQメッセージ消費のポーリング・メカニズムをサポートしています。

Oracle AQアダプタでは、Oracle Streams AQの次の機能をサポートしています。

  • マルチ・コンシューマ・キュー

    Oracle AQアダプタは、マルチ・コンシューマ・キューからメッセージを取得できます。

  • デキュー処理用のメッセージの移動

    メッセージをエンキューと同じ順序でデキューする必要はありません。 相関識別子を使用してデキューの順序を指定できます。 アダプタ構成ウィザードで、デキュー操作の相関IDを定義できます。

  • 遅延の再試行

    再試行回数は、Oracle AQアダプタのデキュー・ヘッダーのプロパティです。 再試行回数が制限を超えると、メッセージは指定の例外キューに移動されます。 この例外キューは、Oracle AQアダプタのエンキュー・ヘッダーのプロパティです。

  • ルールベースのサブスクリプション

    Oracle Streams AQでは、コンテンツベースおよびサブジェクトベースのメッセージのフィルタ処理が可能です。 ルールには、そのルールに一致するメッセージのサブスクライブを目的とした1つ以上のコンシューマが定義されます。 サブジェクトベースのルールの場合、SQL問合せのWHERE句に似た構文を使用してブール式を指定します。 このブール式には、メッセージ・プロパティの条件(現状では優先度と相関ID)、ユーザー・データ・プロパティ(オブジェクト・ペイロードのみ)および関数(SQL問合せのWHERE句の指定と同様)を含めることができます。

  • Oracle AQアダプタのヘッダー・プロパティ

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

  • デキュー条件

    デキュー条件は、Oracle AQアダプタで使用されるAdvanced Queuing製品の機能です。 デキュー条件が指定されている場合、指定の条件を満たすメッセージがなければ、デキューは発生しません。

    デキュー条件要素は、SQL問合せのWHERE句に似た構文を使用するブール式です。 このブール式には、メッセージ・プロパティ、ユーザー・オブジェクトのペイロード・データ・プロパティおよびPL/SQLまたはSQL関数に関する条件を含めることができます。 メッセージ・プロパティには、prioritycorridおよびキュー表の他の列などがあります。

Oracle AQアダプタのアーキテクチャ、アダプタとOracle BPEL Process Managerの統合およびアダプタのデプロイの詳細は、第1章「Oracle JCAアダプタの概要」を参照してください。

7.2.3 サポートされているADTペイロード・タイプ

Oracle AQアダプタでは、次のRAWタイプをサポートしています。

  • BLOB

  • CHAR

  • CLOB

  • DATE

  • DECIMAL

  • DOUBLE PRECISION

  • FLOAT

  • INTEGER

  • NUMBER

  • REAL

  • SMALLINT

  • TIMESTAMP

  • VARCHAR2

前述のリストに示したRAWタイプ以外にも、Oracle AQアダプタは、プリミティブ型およびオブジェクトのVARRAYもサポートしています。


注意:

現在、Oracle AQアダプタではADT列のTIMESTAMP WITH LOCAL TIMEZONEデータ型およびTIMESTAMP WITH TIMEZONEデータ型がサポートされていません。

ADT全体ではなくペイロード・フィールドを選択する場合は、ペイロード・フィールドとして次のデータ型のいずれか1つのみを選択します。

  • CLOB(XSDまたは不透明(Opaque)スキーマのいずれか)

  • VARCHAR2(XSDまたは不透明(Opaque)スキーマのいずれか)

  • BLOB(不透明(Opaque)スキーマのみ)

  • XMLTYPE(XSDまたは不透明(Opaque)スキーマのいずれか)

7.2.4 ネイティブ・フォーマット・ビルダー・ウィザード

JDeveloper BPELデザイナでは、ネイティブ・フォーマット・ビルダー・ウィザードを使用して、AQ RAWペイロード用のファイルを含む様々なフォーマットのXSDファイルを定義できます。

ネイティブ・フォーマット・ビルダー・ウィザードの詳細は、第6章「ネイティブ・フォーマット・ビルダー・ウィザード」を参照してください。

ネイティブ・フォーマット・ビルダーの例を参照するには、次の場所へ移動します。

http://www.oracle.com/technology/sample_code/products/adapters

ペイロード・スキーマ

ペイロード・スキーマはペイロード・タイプに依存します。 ADT全体の場合、スキーマはアダプタ構成ウィザードによって完全に生成されます。 ペイロードとしてBLOBが選択されたADTの場合、次のように定義された不透明(Opaque)スキーマを使用する必要があります。

<element name="opaqueElement" type="base64Binary" />

その他すべての場合には、表7-1に示すように、スキーマを指定するか不透明(Opaque)スキーマを使用できます。

表7-1 ペイロード・スキーマ

ペイロード・タイプ サポートされているスキーマ

RAW

ユーザー指定のスキーマまたは不透明(Opaque)スキーマ。

ADT全体

アダプタ構成ウィザードによって生成された、キュー構造に基づくスキーマを使用する必要があります。

ペイロードとしてVARCHAR2が選択されたADT

ユーザー指定のスキーマまたは不透明(Opaque)スキーマ。

ユーザー指定のスキーマまたは不透明(Opaque)スキーマのペイロードとしてCLOBが選択されたADT

ユーザー指定のスキーマまたは不透明(Opaque)スキーマ。

不透明(Opaque)スキーマのペイロードとしてBLOBが選択されたADT

不透明(Opaque)スキーマ。

XMLTYPE

ユーザー指定のスキーマまたは不透明(Opaque)スキーマ。


XSDファイルはないがペイロード・データが(カンマ区切り値(CSV)形式などで)書式設定されている場合は、ネイティブ・フォーマット・ビルダー・ウィザードを使用して適切なXSDを生成できます。 アダプタ構成ウィザードは、ネイティブ・フォーマット・ビルダー・ウィザードと統合されています。 「アダプタ構成ウィザード - メッセージ」ウィンドウで、「ネイティブ・フォーマットのスキーマの定義」をクリックしてネイティブ・フォーマット・ビルダー・ウィザードにアクセスします。

7.2.5 正規化されたメッセージのサポート

ヘッダーの操作と伝播は、重要なビジネス統合メッセージング要件です。 Oracle BPEL PM、メディエータ、Oracle JCAおよびB2Bは、顧客の統合ニーズを解決する上でヘッダー・サポートに大きく依存しています。 たとえば、メッセージ・ヘッダーを介して伝播させることで、ファイル名をソース・ディレクトリからターゲット・ディレクトリに保存できます。 Oracle BPEL PMとメディエータでは、様々なUIサポート・レベルでヘッダーにアクセスし、操作して設定できます。


注意:

リリース10.1.3でサポートされているAQアダプタのインバウンド・ヘッダーとアウトバウンド・ヘッダーは、リリース11gでは正規化されたメッセージ・プロパティを介してサポートされています。

詳細は、第2.15項「アダプタ内でのOracle BPEL Process Managerの相関サポート」を参照してください。

正規化されたメッセージのヘッダーの伝播

正規化されたメッセージは、プロパティとペイロードという2つの部分のみを持つように簡素化されています。通常、プロパティはスカラー型の名前/値ペアです。 既存の複雑なヘッダーがプロパティに収まるように、プロパティはスカラー型にフラット化されます。

設計時のヘッダーの操作

複雑なプロパティは事前に決定されているため、設計時にヘッダーを操作する際のユーザー操作は合理化されています。 メディエータまたはBPELデザイナでは、なんらかの予約済キーワードを使用してヘッダーを操作できます。 たとえば、現在、メディエータでは、次の式を使用してインバウンド・ファイル・アダプタのfileNameヘッダーにアクセスできます。

$nmproperty.InboundFileHeaderType.fileName

ただし、この方法はユーザー入力に基づいて動的に生成されるプロパティに対処していません。 たとえば、AQアダプタ・ウィザードでは、AQオブジェクトからの一部のフィールドをヘッダーとして伝播できます。 選択内容に基づいてヘッダー定義が定義されます。 これらの定義は事前に決定されていないため、事前決定済のプロパティ定義のリストでは考慮できません。 動的プロパティのヘッダー操作は、定義するまで設計できません。 この制限に対処するには、必要なサービス(コンポジット・エントリ・ポイント)と参照をすべて生成しておく必要があります。 この制限は、動的プロパティを生成する必要のあるサービスに適用されます。 生成された動的プロパティは、コンポジットごとに格納される必要があります。 その後にのみ、メディエータまたはBPELデザイナで動的プロパティを操作できます。

正規化されたメッセージのライフサイクル中に伝播する必要のあるプロパティの識別

一部のプロパティはメッセージのライフサイクル中に伝播する必要がありますが、伝播できないプロパティもあります。 伝播する必要のあるプロパティを伝播可能プロパティと呼び、伝播できないプロパティを伝播不可プロパティと呼びます。

7.2.6 DOM2準拠

Oracle AQアダプタはDocument Object Model Level 2(DOM 2)に準拠しています。つまり、AQアダプタではDOM2仕様に準拠する文書オブジェクトを処理したり生成できます。

7.2.7 メッセージ・サイズ対応

Oracle AQアダプタはメッセージ・サイズ対応です。つまり、Oracle AQアダプタではメッセージ・サイズが計算され、サイズがJCAバインディング・コンポーネントにレポートされます。 JCAバインディング・コンポーネントにより公開されるサイズ関連APIは、レポート処理に使用できます。

7.2.8 複数の受信者スレッド

Oracle AQアダプタは、アクティブ化エンドポイント・プロパティadapter.aq.dequeue.threadsをサポートしています。 アダプタとエンタープライズ情報システム(EIS)間のインバウンド・メッセージ・フロー用として複数のスレッドを生成するには、このプロパティを設定することをお薦めします。 Oracle AQアダプタの以前のバージョンでは、複数のエンドポイントを開始するためにJCAバインディング・コンポーネントによって使用されていたactivationInstancesに依存していました。

7.2.9 DequeueTimeoutプロパティ

DequeueTimeOutプロパティは、複数のインバウンド・デキュー・スレッドをサポートしています。 このプロパティの値により、dequeue() APIがメッセージを待機する秒数が決まります。この秒数が経過すると、このAPIが返されて次のポーリング・サイクルが開始されます。

次の例に示すように、このプロパティをcomposite.xmlファイルに追加します。

<service name="Inbound" ui:wsdlLocation="Inbound.wsdl">
<interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/aq/AQ_InboundRetry_Mediator/AQ2JMSInboundRetry/Inbound%2F#wsdl.interface(Dequeue_ptt)"/>
<binding.jca config="Inbound_aq.jca">
<property name="DequeueTimeOut" type="xs:integer" many="false"override="may">10</property>
</binding.jca>
</service>

7.2.10 デキュー・タイムアウトおよび複数のインバウンド・ポーリング・スレッドの制御

Oracle AQアダプタには、プロセスごとではなくJava仮想マシン(JVM)ごとにシステム全体単位でデキュー・タイムアウトおよび複数のインバウンド・ポーリング・スレッドを制御するためのシステム・プロパティが用意されています。

デキュー・タイムアウトを制御するためにOracle AQアダプタに用意されているシステム・プロパティは、oracle.adapter.aq.waitです。インバウンド・ポーリング・スレッドを制御するプロパティは、adapter.aq.dequeue.threadsです。

7.2.11 ストリーム・ペイロードのサポート

Oracle AQアダプタには、ストリーム・ペイロードのサポートが用意されています。 この機能を有効化すると、ペイロードはメモリーDOM内のSOAランタイムで操作されるかわりにデータベースにストリーミングされます。 この機能は、大きなペイロードの処理中に使用します。 ストリーム・ペイロードのサポートを有効化するには、Oracle JDeveloper(JDeveloper)でデキュー操作パラメータを定義する際に「ストリーミングの有効化」チェック・ボックスを選択する必要があります。 「ストリーミングの有効化」チェック・ボックスを選択すると、次の例に示すように、対応するブール・プロパティEnableStreamingがそれぞれの.jcaファイルに定義されているActivationSpecプロパティに追加されます。 EnableStreamingプロパティが存在しない場合は、デフォルト値のfalseとみなされます。 このプロパティは、Rawメッセージ、XMLTypeメッセージおよびADT属性を介してペイロードが指定されるADTタイプのメッセージを処理する際に適用可能です。

<activation-spec className="oracle.tip.adapter.aq.inbound.AQDequeueActivationSpec">
      <property name="QueueName" value="RAW_IN_QUEUE"/>
      <property name="DatabaseSchema" value="SCOTT"/>
      <property name="EnableStreaming" value="true"/>
</activation-spec>

7.2.12 Oracle AQアダプタのインバウンドの再試行

再試行可能な例外にjca.retry.countサービスのバインディング・プロパティを使用して6回以上再試行するように、Oracle AQアダプタのインバウンドの再試行を構成する場合は、キューの作成にjca.retry.countに使用される値よりも大きいmax_retries値が使用されることを確認してください。 何も指定しなければ、キューはmax_retries値5を使用して作成されます。これは、メッセージが5回の再試行後に例外キューに送られ、以降の処理のためにアダプタに配信されないことを意味します。 5以下の値を使用してjca.retry.countを指定すれば、キューのmax_retriesプロパティを変更する必要はありません。

キューの作成時に、次のコードを使用してmax_retriesプロパティを変更します。

begin
DBMS_AQADM.CREATE_QUEUE_TABLE ( queue_table => 'RAW_IN_QUEUE_TABLE',queue_payload_type => 'RAW');
DBMS_AQADM.CREATE_QUEUE ( queue_name => 'RAW_IN_QUEUE',queue_table=> 'RAW_IN_QUEUE_TABLE', max_retries=>1500);
DBMS_AQADM.START_QUEUE ( queue_name => 'RAW_IN_QUEUE');
DBMS_AQADM.CREATE_QUEUE_TABLE ( queue_table => 'RAW_OUT_QUEUE_TABLE', queue_payload_type => 'RAW');
DBMS_AQADM.CREATE_QUEUE ( queue_name  => 'RAW_OUT_QUEUE', queue_table => 'RAW_OUT_QUEUE_TABLE');
DBMS_AQADM.START_QUEUE ( queue_name => 'RAW_OUT_QUEUE');
end;

7.2.13 エラー処理のサポート

エラー処理については、第2.22項「エラー処理」を参照してください。

7.2.14 パフォーマンス・チューニング

Oracle AQアダプタでは、パフォーマンス・チューニング機能がサポートされています。

詳細は、Oracle Fusion Middlewareパフォーマンス・ガイドのOracle AQアダプタのチューニングに関する項を参照してください。

7.3 デプロイメント

Oracle AQアダプタは、インストールの一部としてアプリケーション・サーバーにデプロイされます。 このアダプタには、データソースjdbc/aqSampleを指す単一アダプタ・インスタンス・エントリeis/AQ/aqSampleが含まれています。 データソースはインストールの一部として作成されないため、手動で作成する必要があります。データベースへの接続情報は、データソース定義内にあります。

インストールの時点で存在するOracle AQアダプタ・インスタンスeis/AQ/aqSampleを使用するSOAプロジェクトをデプロイする場合は、最初にデータソースjdbc/aqSampleを作成する必要があります。 一方、新しいアダプタ・インスタンスを使用する場合は、新しいアダプタ・インスタンスを追加してアプリケーション・サーバーを再起動する必要があります。 これは、既存のアダプタ・インスタンスjdbc/aqSampleで参照されるデータソースとは別のデータソースを指すようにする場合や、まだ存在しないアダプタ・インスタンスの名前を選択した場合などです。 たとえば、JDeveloperでDBConnection1という名前の接続を作成した場合、図7-6に示すように、AQアダプタ・サービスはデフォルトでeis/AQ/DBConnection1を指します。

また、次のコード・スニペットに示すように.jca ファイルを確認することによって、サービスがどのアダプタ・インスタンスを指しているかを確認できます。

<connection-factory location="eis/AQ/aqSample" … />

前述の例では、場所は実行時のアダプタ・インスタンスのJNDI名です。

新しいAQアダプタ・インスタンスを作成するには、第2.19項「アダプタ・コネクション・ファクトリの追加」の説明に従ってOracle WebLogic Server管理コンソールを使用するか、weblogic-ra.xmlファイルを直接編集します。weblogic-ra.xmlを編集する手順は、次のとおりです。

  1. fmwhome/でAqAdapter.rarを検索します。

  2. ファイルを解凍します。

  3. META-INF/weblogic-ra.xml(および、場合によってはra.xml)を編集します。

  4. このファイルから再びJARを作成します。

  5. アプリケーション・サーバーを再起動します。

weblogic-ra.xmlに含まれるサンプル・アダプタ・インスタンスを次に示します。

<connection-instance>
  <jndi-name>eis/AQ/aqSample</jndi-name>
  <connection-properties>
    <properties>
      <property>
         <name>XADataSourceName</name>
         <value>jdbc/aqSample</value>
      </property>
      <property>
    <name>DataSourceName</name>
    <value></value>
      </property>
      <property>
    <name>ConnectionString</name>
    <value></value>
      </property>
      <property>
    <name>UserName</name>
    <value></value>
      </property>
      <property>
    <name>Password</name>
    <value></value>
      </property>
      <property>
    <name>DefaultNChar</name>
    <value>false</value>
      </property>
      <property>
    <name>UseDefaultConnectionManager</name>
    <value>false</value>
      </property>
    </properties>
  </connection-properties>
</connection-instance>

必須プロパティは、jndi-nameXADataSourceNameまたはDataSourceNameです。 jndi-nameプロパティは、.jcaファイル内の場所属性に一致している必要があり、アダプタ・インスタンスの名前を表しています。 XADataSourceNameまたはDataSourceNameプロパティは、基礎となるデータソース(接続情報が設定されている)の名前です。 XADataSourceNameまたはDataSourceNameのいずれかのプロパティのみを指定する必要があります。 使用方法は、シナリオに関与していてアダプタもグローバル・トランザクションに加える必要があるかどうか、またはローカル・トランザクション・セマンティクスが十分かどうかに応じて異なります。 前者の場合にはXADataSourceNameを指定する必要があり、後者の場合にはDataSourceNameを指定する必要があります。 XADataSourceNameプロパティを指定する場合は、プロパティによって参照される物理データソースでXAが有効化されていることを確認します。ただし、DataSourceNameプロパティを指定する場合は、プロパティによって参照される物理データソースでXAが有効化されている場合もされていない場合もあります。

最も一般的なミス

デプロイメントに関する最も一般的なミスとして、次の2つがあります。

後者の場合は、アダプタ・インスタンス名(eis/AQ/...)を指定し、このインスタンス名がデータソース・プール(jdbc/...)を指すというように間接的に指定する必要があります。一般的なミスは、このように間接的に指定せず、名前jdbc/...を場所属性に直接指定することです。

その他のアダプタ・インスタンス・プロパティ

AQアダプタ・インスタンスには、xADataSourceNamedataSourceName以外にもプロパティがあります。

Oracle AQアダプタ・インスタンス・プロパティの詳細は、付録A「Oracle AQアダプタのプロパティ」を参照してください。

7.4 Oracle AQアダプタの使用例

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

7.4.1 一般的な使用例

次の使用例には、アダプタ構成ウィザードの概要が含まれ、様々な状況において通常の手順を変更する方法の例も示します。 それぞれの例では、生成されるWSDLファイルとJCAファイルの関連部分を示しています。

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

7.4.1.1 アダプタ構成ウィザードの概要

この例では、service_typeオブジェクト内の1つのフィールドであるペイロードとユーザー定義スキーマを設定して、メッセージをservice_in_queueキューにデキューするOracle AQアダプタ・サービスを作成します。

この項では、JDeveloperでアダプタ構成ウィザードを使用してOracle AQアダプタを構成する際の必須タスクについて説明します。

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

7.4.1.1.1 前提条件の確認

この例は、基本的なBPELコンストラクト(アクティビティやパートナ・リンクなど)と、BPELコンポジットを作成およびデプロイするJDeveloper環境をよく理解していることを前提としています。

SCOTTスキーマを持つデータベースへのアクセス権限が必要です。

この使用例を実行するには、adapters-aq-103-adtclobpayloadサンプルに含まれているartifacts.zipファイルの次のファイルが必要です。

  • artifacts/sql/setup_user.sql

  • artifacts/sql/create_type_service.sql

  • artifacts/sql/create_queues.sql

  • artifacts/sql/dequeue_service.sql

  • artifacts/sql/enqueue_service.sql

adapters-aq-103-adtclobpayloadサンプルは、次の場所にあります。

http://www.oracle.com/technology/sample_code/products/adapters

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

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

  1. JDeveloperを開きます。

  2. 「アプリケーション・ナビゲータ」で、「新規アプリケーション」をクリックします。 図7-1に示すように、「汎用アプリケーションの作成 - アプリケーションの名前付け」ページが表示されます。

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

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

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

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

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

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

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

    たとえば、SOACompositeと入力します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

7.4.1.1.3 Oracle AQアダプタ・サービスの定義

次のステップは、Oracle AQアダプタ・サービスを定義することです。 次の手順に従ってOracle AQアダプタ・サービスを作成します。

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

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

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

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

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

    図7-5 「アダプタ構成ウィザード - サービス名」ページ

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

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

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

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

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

  5. プラス・アイコンをクリックして新規データベース接続を作成します。

    「データベース接続の作成」ページが表示されます。


    注意:

    Oracle Applicationsを実行中のデータベースに接続する必要があります。

  6. 次の情報を入力します。

    1. 「接続の作成場所」で、「アプリケーション・リソース」を選択します。

    2. 「接続名」フィールドで、データベース接続に使用する一意の名前を指定します。

      この例では、DBConnection1と入力します。

    3. 「接続タイプ」ボックスから「Oracle (JDBC)」を選択します。

    4. 「ユーザー名」フィールドで、データベースへのアクセスが認証されているユーザー名を指定します。

      この例では、scottと入力します。

    5. 「ロール」フィールドで、必要に応じてロールを入力します。

      これは、データベースに指定されているSYSDBAなどの特定のデータベース・ロールである必要があります。 このフィールドはオプションです。 この例では、「ロール」フィールドは空白にしておきます。

    6. 「パスワード」フィールドで、指定されたユーザー名に関連付けるパスワードを指定します。

      この例では、tigerと入力します。

    7. 「パスワードの保存」「パスワードのデプロイ」を順番に選択します。

    8. 「ドライバ」リストから「thin」を選択します。

    9. 「ホスト名」フィールドで、Oracleサーバーを実行するシステムを識別する値を入力します。

      TCP/IPで解決できるIPアドレスまたはホスト名(myserverなど)を使用します。 デフォルト値はlocalhostです。

    10. 「JDBCポート」フィールドで、TCP/IPポートを識別する値を入力します。 デフォルトは1521です。

    11. 「SID」フィールドで、Oracleデータベース・インスタンスの一意のシステム識別子(SID)の値を入力します。

      デフォルトはXEです。

    12. 「接続のテスト」をクリックし、指定した情報によりデータベースとの接続が確立されるかどうかを確認します。

      成功メッセージが表示されます。

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

      作成した接続が「サービス名」ページの「接続」フィールドに表示されます。

      データベース接続の作成を完了すると、「JNDI名」フィールドにJava Naming and Directory Interface(JNDI)名が移入されます。 JNDI名は、サービスがBPELサーバーにデプロイされる際に使用される接続のプレースホルダとして機能します。 これにより、開発とその後の本番に異なるデータベースを使用できます。

      アダプタが管理モードで確実に実行されるように、JNDI名で指定した値がOracle AQアダプタのweblogic-ra.xmlファイルに存在する必要があります。 デフォルトの接続インスタンスeis/AQ/aqSampleが用意されており、このフィールドのデフォルト値として使用できます。 この接続インスタンスを使用するには、JNDI名jdbc/aqSampleを使用してデータソースを作成する必要もあります。

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

    図7-7に示すように、「アダプタ構成ウィザード - アダプタ・インタフェース」ページが表示されます。

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

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

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

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

    「操作」ページが表示されます。

  10. Oracle AQアダプタでは、3つの操作をサポートしています。

    • デキュー: キューから受信するメッセージをポーリングします。

    • エンキュー: 発信メッセージをキューに置きます。

    • エンキュー/デキュー: 発信メッセージをキューに置き、キュー上でレスポンス・メッセージを待機します。

    この例では、図7-8に示すように「デキュー」を選択します。

    操作には、選択した操作名に基づいて名前が自動的に付けられます。 ただし、「操作名」フィールドは編集できます。

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

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


    注意:

    SchemaValidationプロパティがTRUEに設定されている場合に、ADTデータ型でOracle AQアダプタを使用するSOAコンポジットを作成した場合、デキュー・メッセージ内にNULLデータ型があるとAQ_INVALID_PAYLOADエラーになり、さらにメッセージが拒否されます。 メッセージの拒否を回避するには、SchemaValidationプロパティをfalseに設定する必要があります。

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

    図7-9に示すように、アダプタ構成ウィザードの「キュー名」ページが表示されます。

    図7-9 「アダプタ構成ウィザード - キュー名」ページ

    図7-9の説明が続きます
    「図7-9 「アダプタ構成ウィザード - キュー名」ページ」の説明

  12. 「データベース・スキーマ」リストからデータベース・スキーマを選択するか、「参照」をクリックしてスキーマを参照します。 この例では、「参照」をクリックします。

    図7-10に示すように、「キューの選択」ダイアログが表示されます。

    図7-10 「キューの選択」ダイアログ

    図7-10の説明が続きます
    「図7-10 「キューの選択」ダイアログ」の説明

  13. 必要なキューを選択して「OK」をクリックします。

    この例では、「SERVICE_IN_QUEUE」を選択します。 図7-11に示すように、「キュー名」フィールドにSERVICE_IN_QUEUEが移入された状態で「キュー名」ページが再表示されます。

    図7-11 「アダプタ構成ウィザード - キュー名」ページ

    図7-11の説明が続きます
    「図7-11 「アダプタ構成ウィザード - キュー名」ページ」の説明

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

    図7-12に示すように、アダプタ構成ウィザードの「キュー・パラメータ」ページが表示されます。

    図7-12 「アダプタ構成ウィザード - キュー・パラメータ」ページ

    図7-12の説明が続きます
    「図7-12 「アダプタ構成ウィザード - キュー・パラメータ」ページ」の説明

  15. パラメータ値を入力して「次へ」をクリックします。

    • 相関ID: 1文字から30文字までの長さでオプションの相関IDを入力します。 これは、同じ相関IDを使用したデキュー・アクティビティによって後から取得されるメッセージの識別に使用されます。

      入力する値は、非同期通信のためにエンキューの送信元とデキューの受信先で同意されています。 相関IDはAQヘッダー・プロパティにマップされます。 インバウンド方向の相関IDにより、デキューするメッセージの選択が可能になります。 このフィールドはオプションです。 値を入力しない場合は、キューにあるすべてのメッセージが処理されます。

      アウトバウンド方向の相関IDの値を入力した場合、適切なIDを持つすべてのアウトバウンド・メッセージが入力した値に設定されます。 この値はアウトバウンド・ヘッダーの相関フィールドで、メッセージごとにオーバーライドできます。

    • デキュー条件: 「操作」ページでデキューを選択した場合にのみ表示されます。

      SQL問合せのWHERE句に似たブール式を入力します。 このブール式には、メッセージ・プロパティ、ユーザー・データ・プロパティ(オブジェクト・ペイロードのみ)およびPL/SQLまたはSQL関数に関する条件を含めることができます。 複数のメッセージがデキュー条件を満たす場合、デキューの順序は未確定で、キューのソート順は考慮されません。

      このフィールドは、インバウンド・シングル・コンシューマおよびマルチ・コンシューマ・キューに対して表示されます。

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

    図7-13に示すように、アダプタ構成ウィザードの「オブジェクト・ペイロード」ページが表示されます。

    図7-13 「アダプタ構成ウィザード - オブジェクト・ペイロード」ページ

    図7-13の説明が続きます
    「図7-13 「アダプタ構成ウィザード - オブジェクト・ペイロード」ページ」の説明

    1. 「ビジネス・ペイロード」で、「オブジェクト内のフィールド」を選択します。

    2. 「ペイロード・フィールド・オプション」セクションで「参照」をクリックし、ビジネス・ペイロードが含まれるフィールドを選択します。

      図7-14に示すように、「ペイロード・フィールドの選択」ダイアログが表示されます。

      図7-14 「ペイロード・フィールドの選択」ダイアログ

      図7-14の説明が続きます
      「図7-14 「ペイロード・フィールドの選択」ダイアログ」の説明

  17. フィールドを選択して「OK」をクリックします。

    この例では、「PAYLOAD (CLOB)」を選択します。

    図7-15に示すように、すべてのペイロード詳細が入力された状態で「オブジェクト・ペイロード」フィールドが表示されます。

    図7-15 「アダプタ構成ウィザード - オブジェクト・ペイロード」ページ

    図7-15の説明が続きます
    「図7-15 「アダプタ構成ウィザード - オブジェクト・ペイロード」ページ」の説明

  18. 「ペイロード以外のフィールドへのアクセスも必要」を選択して「次へ」をクリックします。

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

    「メッセージ」ページには、次のオプションが表示されます。

    • ネイティブ・フォーマット変換は不要(スキーマを不透明(Opaque)にする): スキーマを指定しない場合は、このオプションを選択します。 このオプションを選択すると、「メッセージ・スキーマ」の他のフィールドがすべて無効化されます。

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

    • URL: スキーマ・ファイルURLのパスを入力するか、「参照」をクリックしてパスを参照できます。

    • スキーマ要素: スキーマ要素名。

  19. この例では、「スキーマ・ファイルを参照」をクリックしてスキーマ・ファイルURLを参照します。

    図7-16に示すように、「タイプ・チューザ」ダイアログが表示されます。

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

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

  20. 図7-16に示すように、リストから「SERVICE」を選択して「OK」をクリックします。

    図7-17に示すように、「スキーマの場所」および「スキーマ要素」のフィールドに移入済の「メッセージ」ページが表示されます。

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

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

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

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

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

    デキュー操作を持つAQアダプタ・サービスの作成を完了しました。

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

7.4.1.1.4 生成されたWSDLおよびJCAファイル

アダプタ・サービスにより、定義済のアダプタ・インタフェースとして機能するWSDLおよびJCAファイルが生成されます。

デキュー操作用に生成されたWSDLファイルを次に示します。

<definitions name="Inbound" targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/aq/Inbound/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/aq/Inbound/" xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:obj1="http://xmlns.oracle.com/xdb/SCOTT" xmlns:imp1="http://www.oracle.com/service/contract">
    <types>
        <schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/aq/Inbound/" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/aq/Inbound/" xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/aq/inbound/" xmlns:obj1="http://xmlns.oracle.com/xdb/SCOTT">
            <import namespace="http://xmlns.oracle.com/xdb/SCOTT" schemaLocation="xsd/SCOTT_SERVICE_TYPE.xsd"/>
            <import namespace="http://xmlns.oracle.com/pcbpel/adapter/aq/inbound/" schemaLocation="xsd/aqAdapterInboundHeader.xsd"/>
            <complexType name="HeaderCType">
                <sequence>
                    <element name="QueueHeader" type="hdr:HeaderType"/>
                    <element name="PayloadHeader" type="obj1:SERVICE_TYPE"/>
                </sequence>
            </complexType>
            <element name="Header" type="tns:HeaderCType"/>
        </schema>
        <schema xmlns="http://www.w3.org/2001/XMLSchema">
            <import namespace="http://www.oracle.com/service/contract" schemaLocation="xsd/service.xsd"/>
        </schema>
    </types>
    <message name="SERVICE_msg">
        <part name="SERVICE" element="imp1:SERVICE"/>
    </message>
    <message name="Header_msg">
        <part name="Header" element="tns:Header"/>
    </message>
    <portType name="Dequeue_ptt">
        <operation name="Dequeue">
            <input message="tns:SERVICE_msg"/>
        </operation>
    </portType>
    <plt:partnerLinkType name="Dequeue_plt">
        <plt:role name="Dequeue_role">
            <plt:portType name="tns:Dequeue_ptt"/>
        </plt:role>
    </plt:partnerLinkType>
</definitions>

7.4.1.2 オブジェクトとADTペイロードのデキューおよびエンキュー

デキューとエンキューについては、第7.4.2項「Oracle AQアダプタのADTキュー」を参照してください。

オブジェクト全体をペイロードとしてエンキューまたはデキューするには、次の手順を実行します。

  • 手順10「エンキュー」または「デキュー」を選択します。

  • 「オブジェクトCUSTOMER_TYPE全体」を選択し、手順16に進みます。

ADTペイロードの使用例の実例を参照するには、次のサンプルのいずれかを参照してください。

  • adapters-aq-102-adt

  • adapters-aq-110-supportedadttypes

これらのサンプルは、次の場所にあります。

http://www.oracle.com/technology/sample_code/products/adapters


注意:

ADTタイプのキューを作成し、キューとそのキュー用に作成されたデータ型の両方を削除してプロセスを再デプロイすると、SQL例外がスローされ、データベースの再起動が必要になります。 これを回避するには、データ型は削除せずにキューのみを削除する必要があります。

7.4.1.3 オブジェクト・ペイロードの1つの列のデキュー

概要では、オブジェクト・ペイロード内の単一のフィールドまたは列をデキューする例を示しました。

オブジェクト内の1つのフィールドをデキューするOracle AQアダプタを作成するには、アダプタ構成ウィザードの「オブジェクト・ペイロード」ページで次の手順を実行する必要があります。

  1. 「オブジェクト内のフィールド」を選択します。

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

    「ペイロード・フィールドの選択」ダイアログが表示されます。

  3. ビジネス・ペイロードを格納するフィールドを選択して「OK」をクリックします。

    図7-18に示すように、「フィールド名」フィールドに選択したフィールドが移入された状態でアダプタ構成ウィザードの「オブジェクト・ペイロード」ページが表示されます。

    図7-18 「アダプタ構成ウィザード - オブジェクト・ペイロード」ページ

    図7-18の説明が続きます
    「図7-18 「アダプタ構成ウィザード - オブジェクト・ペイロード」ページ」の説明

  4. 「ペイロード以外のフィールドへのアクセスも必要」を選択して「次へ」をクリックします。

生成されたJCAファイルの次のセグメントには、ペイロード・ヘッダー・フィールド以外に、1つのフィールド(この場合はPAYLOADという名前のフィールド)がデキューされることが指定されています。

<adapter-config name="Inbound" adapter="AQ Adapter" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/AQ/aqSample" UIConnectionName="Connection1" adapterRef=""/>
  <endpoint-activation portType="Dequeue_ptt" operation="Dequeue">
    <activation-spec className="oracle.tip.adapter.aq.inbound.AQDequeueActivationSpec">
      <property name="QueueName" value="SERVICE_IN_QUEUE"/>
      <property name="ObjectFieldName" value="PAYLOAD"/>
      <property name="PayloadHeaderRequired" value="true
"/>
      <property name="SchemaValidation" value="false"/>
    </activation-spec>
  </endpoint-activation>
</adapter-config>

オブジェクト・ペイロード内の1つのフィールドまたは列がデキューされるADT CLOBの使用例の実例を参照するには、次のサンプルを参照してください。

  • adapters-aq-103-adtclobpayload

  • adapters-aq-105-adtclobopaquepayload

これらのサンプルは、次の場所にあります。

http://www.oracle.com/technology/sample_code/products/adapters

7.4.1.4 エンキュー/デキュー操作タイプの構成

この使用例では、Oracle AQアダプタが発信メッセージをキューに蓄積し、別のキュー上のレスポンス・メッセージを待機する、Oracle AQアダプタのエンキュー/デキュー操作タイプを構成する手順について説明します。

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

7.4.1.4.1 前提条件の確認

この使用例を実行するには、SCOTTスキーマを持つデータベースへのアクセス権限が必要です。 また、adapters-aq-104-requestreplyサンプルに含まれているartifacts.zipファイルの次のファイルも必要となります。

  • create_queues.sql

  • drop_queues.sql

  • enqueue.sql

  • SendReply.sql

  • setup_user.sql

adapters-aq-104 requestreplyサンプルは、次の場所にあります。

http://www.oracle.com/technology/sample_code/products/adapters

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

SOAコンポジットを含んだJDeveloperアプリケーションを作成する必要があります。 第7.4.1.1.2項「アプリケーションおよびSOAプロジェクトの作成」に記載された手順に従って、新しいアプリケーションおよびSOAプロジェクトを作成します。

7.4.1.4.3 Oracle AQアダプタ・サービスの定義

発信メッセージをキューに蓄積し、キューのレスポンス・メッセージを待機するOracle AQアダプタ・サービスを作成する手順は、次のとおりです。

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

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

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

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

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

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

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

  5. プラス・アイコンをクリックして新規データベース接続を作成します。

    「データベース接続の作成」ページが表示されます。


    注意:

    Oracle Applicationsを実行中のデータベースに接続する必要があります。

  6. 次の情報を入力します。

    1. 「接続の作成場所」で、「アプリケーション・リソース」を選択します。

    2. 「接続名」フィールドで、データベース接続に使用する一意の名前を指定します。

    3. 「接続タイプ」ボックスから「Oracle (JDBC)」を選択します。

    4. 「ユーザー名」フィールドで、データベースへのアクセスが認証されているユーザー名を指定します。

      この例では、scottと入力します。

    5. 「ロール」フィールドで、必要に応じてロールを入力します。

      これは、データベースに指定されているSYSDBAなどの特定のデータベース・ロールである必要があります。このフィールドはオプションです。この例では、「ロール」フィールドは空白にしておきます。

    6. 「パスワード」フィールドで、指定されたユーザー名に関連付けるパスワードを指定します。

      この例では、tigerと入力します。

    7. 「パスワードの保存」「パスワードのデプロイ」を順番に選択します。

    8. 「ドライバ」リストから「thin」を選択します。

    9. 「ホスト名」フィールドで、Oracleサーバーを実行するシステムを識別する値を入力します。

      TCP/IPで解決できるIPアドレスまたはホスト名(myserverなど)を使用します。デフォルト値はlocalhostです。

    10. 「JDBCポート」フィールドで、TCP/IPポートを識別する値を入力します。デフォルトは1521です。

    11. 「SID」フィールドで、Oracleデータベース・インスタンスの一意のシステム識別子(SID)の値を入力します。

      デフォルトはXEです。

    12. 「接続のテスト」をクリックし、指定した情報によりデータベースとの接続が確立されるかどうかを確認します。

      成功メッセージが表示されます。

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

      作成した接続が「サービス接続」ページの「接続」フィールドに表示されます。

      また、データベース接続を作成した後、「JNDI名」フィールドに移入が行われます。

      アダプタが管理モードで確実に実行されるように、JNDI名で指定した値がOracle AQアダプタのweblogic-ra.xmlファイルに存在する必要があります。デフォルトの接続インスタンスeis/AQ/aqSampleが用意されており、このフィールドのデフォルト値として使用できます。この接続インスタンスを使用するには、JNDI名jdbc/aqSampleを使用してデータソースを作成する必要もあります。

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

    アダプタ構成ウィザードの「アダプタ・インタフェース」ページが表示されます。

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

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

    「操作」ページが表示されます。

  10. 図7-8に示すように「エンキュー/デキュー」を選択します。

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

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

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

    図7-9に示すように、アダプタ構成ウィザードの「キュー名」ページが表示されます。

    図7-20 「アダプタ構成ウィザード - キュー名」ページ

    図7-20の説明が続きます
    「図7-20 「アダプタ構成ウィザード - キュー名」ページ」の説明

  12. リクエスト・キューを参照するには、「参照」をクリックします。

    図7-21に示すように、「キューの選択」ダイアログが表示されます。

    図7-21 「キューの選択」ダイアログ

    図7-21の説明が続きます
    「図7-21 「キューの選択」ダイアログ」の説明

  13. 必要なキューを選択して「OK」をクリックします。

    この例では、「CORRELATION_REQUEST」を選択します。 図7-22に示すように、「キュー名」フィールドにCORRELATION_REQUESTが移入された状態で「キュー名」ページが表示されます。

  14. 手順1213を繰り返して、キュー情報をエンキューします。

    図7-22に示すように、「キュー名」ページが表示されます。

    図7-22 「アダプタ構成ウィザード - キュー名」ページ

    図7-22の説明が続きます
    「図7-22 「アダプタ構成ウィザード - キュー名」ページ」の説明

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

    図7-23に示すように、アダプタ構成ウィザードの「キュー・パラメータ」ページが表示されます。

    図7-23 「アダプタ構成ウィザード - キュー・パラメータ」ページ

    図7-23の説明が続きます
    「図7-23 「アダプタ構成ウィザード - キュー・パラメータ」ページ」の説明

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

    図7-24に示すように、アダプタ構成ウィザードの「オブジェクト・ペイロード」ページが表示されます。

    図7-24 「アダプタ構成ウィザード - オブジェクト・ペイロード」ページ

    図7-24の説明が続きます
    「図7-24 「アダプタ構成ウィザード - オブジェクト・ペイロード」ページ」の説明

  17. 「ビジネス・ペイロード」オプション、「オブジェクトCORRELATIONREQUEST_TYPE全体」および「オブジェクトCORRELATIONREPLY_TYPE全体」を選択します。

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

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

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

    同期エンキュー/デキュー操作に対して、AQアダプタ・サービスの作成を完了しました。

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

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

BPELプロセスおよびアウトバウンド・アダプタ参照をアセンブルまたは接続する必要があります。コンポーネントを接続する手順は、次のとおりです。

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

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

    図7-25 JDeveloper: composite.xml

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

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

invokeアクティビティの追加

  1. 「BPELProcess1」をダブルクリックします。「BPELProcess1.bpel」ページが表示されます。

  2. 「コンポーネント・パレット」から設計領域にinvokeアクティビティをドラッグ・アンド・ドロップします。

  3. invokeアクティビティをダブルクリックします。 「Invoke」ダイアログが表示されます。

  4. 「名前」フィールドにinvokeアクティビティの名前を入力します。

  5. 「パートナ・リンク」フィールドの端にある「パートナ・リンクの参照」をクリックします。 図7-26に示すように、「パートナ・リンク・チューザ」ダイアログが表示されます。

    図7-26 「パートナ・リンク・チューザ」ダイアログ

    図7-26の説明が続きます
    「図7-26 「パートナ・リンク・チューザ」ダイアログ」の説明

  6. 「RequestReply」を選択して「OK」をクリックします。

  7. 図7-27に示すように、「Invoke」ダイアログで、「入力変数」フィールドの右にある「入力変数の自動作成」アイコンをクリックします。 「変数の作成」ダイアログが表示されます。

    図7-27 「Invoke」ダイアログ

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

  8. デフォルトの変数名を選択して「OK」をクリックします。「変数」フィールドにデフォルトの変数名が移入されます。

  9. 「OK」をクリックします。 次に示すように、Jdeveloperの「BPELProcess1.bpel」ページが表示されます。

    図7-28 JDeveloper: 「BPELProcess1.bpel」ページ

    図7-28の説明が続きます
    「図7-28 JDeveloper: 「BPELProcess1.bpel」ページ」の説明

assignアクティビティの追加

  1. 「コンポーネント・パレット」から設計領域にassignアクティビティをドラッグ・アンド・ドロップします。

  2. assignアクティビティをダブルクリックします。 「Assign」ダイアログが表示されます。

  3. 「名前」フィールドにassignアクティビティの名前を入力します。

  4. 「コピー操作」タブをクリックします。

  5. 「コピー操作」を選択します。 「コピー操作の作成」ダイアログが表示されます。

  6. 図7-29に示すように、inputVariableからoutputVariableへのコピー操作を作成します。

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

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

  7. 「コピー操作の作成」ダイアログで「OK」をクリックします。

  8. 図7-30に示すように、inputVariableからInvoke_1_Enqueue_InputVariableへの別のコピー操作を作成します。

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

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

  9. 「コピー操作の作成」ダイアログで「OK」をクリックします。

  10. 図7-31に示すように、「OK」をクリックしてJDeveloperの「BPELProcess1.bpel」ページに戻ります。

    図7-31 JDeveloper: BPELProcess1.bpel

    図7-31の説明が続きます
    「図7-31 JDeveloper: BPELProcess1.bpel」の説明

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

receiveアクティビティの追加

  1. 「コンポーネント・パレット」から設計領域にreceiveアクティビティをドラッグ・アンド・ドロップします。

  2. receiveアクティビティをダブルクリックします。 「Receive」ダイアログが表示されます。

  3. 「名前」フィールドにreceiveアクティビティの名前を入力します。

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

  5. 「RequestReply」を選択して「OK」をクリックします。

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

  7. デフォルトの変数名を選択して「OK」をクリックします。「変数」フィールドにデフォルトの変数名が移入されます。

  8. 「インスタンスの作成」を選択して「OK」をクリックします。 次に示すように、Jdeveloperの「BPELProcess1.bpel」ページが表示されます。

    図7-32 JDeveloper: BPELProcess1.bpel

    図7-32の説明が続きます
    「図7-32 JDeveloper: BPELProcess1.bpelの説明

7.4.1.4.5 JDeveloperを使用したデプロイ

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

JDeveloperを使用してアプリケーション・プロファイルをデプロイする手順は、次のとおりです。

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

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

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

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

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

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

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

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

7.4.1.4.7 生成されたWSDLおよびJCAファイル

エンキュー/デキュー操作用に生成されたWSDLファイルを次に示します。

<?binding.jca RequestReply_aq.jca?><wsdl:definitions name="RequestReply" targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/aq/AQRequestReplycase/AQRequestReplycase/RequestReply" xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/aq/AQRequestReplycase/AQRequestReplycase/RequestReply" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:obj1="http://xmlns.oracle.com/xdb/SCOTT" xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">    <plt:partnerLinkType name="RequestReply_plt">        <plt:role name="Dequeue_role">            <plt:portType name="tns:Dequeue_ptt"/>        </plt:role>        <plt:role name="Enqueue_role">            <plt:portType name="tns:Enqueue_ptt"/>        </plt:role>    </plt:partnerLinkType>    <wsdl:types>        <schema xmlns="http://www.w3.org/2001/XMLSchema">            <import namespace="http://xmlns.oracle.com/xdb/SCOTT" schemaLocation="xsd/SCOTT_CORRELATIONREQUEST_TYPE.xsd"/>        </schema>        <schema xmlns="http://www.w3.org/2001/XMLSchema">            <import namespace="http://xmlns.oracle.com/xdb/SCOTT" schemaLocation="xsd/SCOTT_CORRELATIONREPLY_TYPE.xsd"/>        </schema>    </wsdl:types>    <wsdl:message name="CORRELATIONREQUEST_TYPE_msg">        <wsdl:part name="CORRELATIONREQUEST_TYPE" element="obj1:CORRELATIONREQUEST_TYPE"/>    </wsdl:message>    <wsdl:message name="CORRELATIONREPLY_TYPE_msg">        <wsdl:part name="CORRELATIONREPLY_TYPE" element="obj1:CORRELATIONREPLY_TYPE"/>    </wsdl:message>    <wsdl:portType name="Enqueue_ptt">        <wsdl:operation name="Enqueue">            <wsdl:input message="tns:CORRELATIONREQUEST_TYPE_msg"/>        </wsdl:operation>    </wsdl:portType>    <wsdl:portType name="Dequeue_ptt">        <wsdl:operation name="Dequeue">            <wsdl:input message="tns:CORRELATIONREPLY_TYPE_msg"/>        </wsdl:operation>    </wsdl:portType></wsdl:definitions>

エンキュー/デキュー操作用に生成されたJCAファイルを次に示します。

<adapter-config name="RequestReply" adapter="AQ Adapter" wsdlLocation="RequestReply.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
  
  <connection-factory location="eis/AQ/aqSample" UIConnectionName="aqSample" adapterRef=""/>
  <endpoint-activation portType="Dequeue_ptt" operation="Dequeue" UITransmissionPrimitive="Request-response">
    <activation-spec className="oracle.tip.adapter.aq.inbound.AQDequeueActivationSpec">
      <property name="QueueName" value="CORRELATION_REPLY"/>
    </activation-spec>
  </endpoint-activation>
 
  <endpoint-interaction portType="Enqueue_ptt" operation="Enqueue" UITransmissionPrimitive="Request-response">
    <interaction-spec className="oracle.tip.adapter.aq.outbound.AQEnqueueInteractionSpec">
      <property name="QueueName" value="CORRELATION_REQUEST"/>
    </interaction-spec>
  </endpoint-interaction>
 
</adapter-config>

7.4.1.5 デキュー中のメッセージのフィルタ処理に対する相関IDの使用

特定の相関IDのメッセージのみをデキューするアダプタを設定するには、次の手順を実行します。

  • 手順10「デキュー」操作を選択します。

  • 手順15で相関IDを入力します。

アダプタにより、それと同様の相関IDでエンキューされたメッセージのみがデキューされます。

この使用例(Oracle AQアダプタにより、それと同様の相関IDでエンキューされたメッセージがデキューされる例)の実例を参照するには、次のサンプルを参照してください。

  • adapters-aq-106-messagerejection

  • adapters-aq-109-nativecorrelation

  • adapters-aq-112-prioritymessageselector

  • adapters-aq-113-payloadbasedmessageselector

これらのサンプルは、次の場所にあります。

http://www.oracle.com/technology/sample_code/products/adapters

7.4.1.6 マルチ・サブスクライバ・キューからのエンキューおよびデキュー

マルチ・サブスクライバ・キューには、複数のユーザーがアクセスできます。また、それらのユーザーがキュー内の特定のタイプのメッセージのみを対象とする場合もあります。 たとえば、$100,000を超えるローンには監督者の承認が必要であるのに対して、$100,000未満のローンは通常のローン承認スタッフが承認できるローン・アプリケーションがあり、そのアプリケーションにマルチ・ユーザー・キューがあるとします。 この場合、BPELプロセスでは、1つのアダプタが監督者用の巨額ローンのローン・アプリケーションのエンキューに使用され、もう1つのアダプタが同じマルチ・サブスクライバ・キューにある一般スタッフ用の小額ローンのローン・アプリケーションのエンキューに使用されます。

マルチ・サブスクライバ・キューにエンキューするアダプタを指定し、「受信者」フィールドでキュー・パラメータを指定します。

手順15で、「受信者」フィールドにBobを指定します。

次に、受信者リストBobを使用してエンキューするOracle AQアダプタを定義して生成されたJCAファイルのコードを示します。

<adapter-config name="Inbound" adapter="AQ Adapter" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/AQ/aqSample" UIConnectionName="aqSample" adapterRef=""/>
  <endpoint-interaction portType="Enqueue_ptt" operation="Enqueue">
    <interaction-spec className="oracle.tip.adapter.aq.outbound.AQEnqueueInteractionSpec">
      <property name="QueueName" value="PURCHASEORDER_APPROVAL"/>
      <property name="RecipientList" value="Bob"/>
    </interaction-spec>
  </endpoint-interaction>
</adapter-config>

マルチ・サブスクライバ・キューからデキューすると、「キュー・パラメータ」ウィンドウが表示されます。

「コンシューマ」フィールドは、コンシューマ名またはキュー・サブスクライバ名を指定するフィールドです。 デキューするメッセージのエンキュー・プロセスの「受信者」エントリと一致する必要があります。 マルチ・コンシューマ・キューへのサブスクライブには、このフィールドが必要です。

次に、コンシューマ名を使用するOracle AQアダプタを定義して生成されるJCAファイルのコードを示します。

<adapter-config name="Dequer_Bob" adapter="AQ Adapter" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/AQ/manas" UIConnectionName="aqSample" adapterRef=""/>
  <endpoint-activation portType="Dequeue_ptt" operation="Dequeue">
    <activation-spec className="oracle.tip.adapter.aq.inbound.AQDequeueActivationSpec">
      <property name="QueueName" value="PURCHASEORDER_APPROVAL"/>
      <property name="Consumer" value="Bob"/>
      <property name="SchemaValidation" value="false"/>
    </activation-spec>
  </endpoint-activation>
</adapter-config>

マルチ・サブスクライバ・キューからのエンキューとデキューを示す、この使用例の実例を参照するには、次のサンプルを参照してください。

  • adapters-aq-114-multiconsumeroutbound

これらのサンプルは、次の場所にあります。

http://www.oracle.com/technology/sample_code/products/adapters

7.4.1.7 マルチ・コンシューマ・キューのルールベースのサブスクリプション

マルチ・サブスクライバ・キューでデキューが実行される際には、メッセージを選別して特定の条件を満たすもののみを着信することが必要な場合があります。 これらの条件は、優先度1のメッセージのみを選択する場合などはヘッダー情報に、$100,000を超えるローン・アプリケーションのみを選択する場合などはメッセージ・ペイロードの一部に関係します。

マルチ・サブスクライバ・キューを選択した場合は、手順15で「メッセージ・セレクタ・ルール」フィールドが表示されます。 priority = 1またはTAB.USER_DATA.amount > 1000など、SQLのWHERE句に似た構文を使用したブール式でサブスクリプション・ルールを入力します。 アダプタにより、このブール式がtrueのメッセージのみがデキューされます。

ヘッダー情報にアクセスするには、「ペイロード以外のフィールドへのアクセスも必要」チェック・ボックスを選択する必要があります。

このチェック・ボックスを選択すると、生成されるWSDLファイルのtypeセクションにコードが追加されます。

<?xml version = '1.0' encoding = 'UTF-8'?>
<?binding.jca Inbound_aq.jca?>
<definitions name="Inbound" targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/aq/Inbound/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/aq/Inbound/" xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:obj1="http://xmlns.oracle.com/xdb/SCOTT" xmlns:imp1="http://www.oracle.com/ipdemo">
    <types>
        <schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/aq/Inbound/" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/aq/Inbound/" xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/aq/inbound/" xmlns:obj1="http://xmlns.oracle.com/xdb/SCOTT">
            <import namespace="http://xmlns.oracle.com/xdb/SCOTT" schemaLocation="xsd/SCOTT_MAGAZINE_TYPE.xsd"/>
            <import namespace="http://xmlns.oracle.com/pcbpel/adapter/aq/inbound/" schemaLocation="xsd/aqAdapterInboundHeader.xsd"/>
            <complexType name="HeaderCType">
                <sequence>
                    <element name="QueueHeader" type="hdr:HeaderType"/>
                    <element name="PayloadHeader" type="obj1:MAGAZINE_TYPE"/>
                </sequence>
            </complexType>
            <element name="Header" type="tns:HeaderCType"/>
        </schema>
        <schema xmlns="http://www.w3.org/2001/XMLSchema">
            <import namespace="http://www.oracle.com/ipdemo" schemaLocation="xsd/simpleMagazine.xsd"/>
        </schema>
    </types>
    <message name="simpleMagazine_msg">
        <part name="simpleMagazine" element="imp1:simpleMagazine"/>
    </message>
    <message name="Header_msg">
        <part name="Header" element="tns:Header"/>
    </message>
    <portType name="Dequeue_ptt">
        <operation name="Dequeue">
            <input message="tns:simpleMagazine_msg"/>
        </operation>
    </portType>
    <plt:partnerLinkType name="Dequeue_plt">
        <plt:role name="Dequeue_role">
            <plt:portType name="tns:Dequeue_ptt"/>
        </plt:role>
    </plt:partnerLinkType>
</definitions>

PayloadHeaderは、キューのADT全体のタイプであることに注意してください。 ペイロードには選択したペイロード・フィールドのみが含まれます。 「ペイロード以外のフィールドへのアクセスも必要」を選択した場合、PayloadHeader. jca.aq.HeaderDocument)にはADT全体が含まれます(ヘッダーにも存在しアダプタでは無視されるペイロード・フィールドも含まれます)。

7.4.2 Oracle AQアダプタのADTキュー

このサンプルでは、ビジネス・プロセスはAQアダプタからメッセージを受信し、ペイロードをアウトバウンド・メッセージにコピーし、アウトバウンド・メッセージを使用してAQアダプタを起動します。関係するキューはADTキューです。 このシナリオでは、ユーザーがADT全体をペイロードとして使用するように選択しており、AQアダプタ・ウィザードではキュー構造に従ってSCOTT_CUSTOMER_TYPE.xsdにスキーマが生成されています。 実行時には、アダプタによりスキーマに一致するXMLファイルがメッセージごとに作成されます。

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

7.4.2.1 前提条件の確認

SCOTTスキーマを持つデータベースへのアクセス権限が必要です。

この使用例を実行するには、adapters-aq-102-adtサンプルに含まれているartifacts.zipファイルの次のSQLファイルが必要です。 これらのファイルは、artifacts.zipファイルのartifacts/sqlサブディレクトリにあります。 次に示す順序でSQLファイルを実行します。

  • setup_user.sql

  • create_type_customer.sql

  • create_queues.sql

  • enqueue_customer.sql

  • dequeue_customer.sql

adapters-aq-102-adtサンプルは、次の場所にあります。

http://www.oracle.com/technology/sample_code/products/adapters

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

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

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

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

  2. 「アプリケーション名」フィールドにADTと入力して「次へ」をクリックします。

    「汎用アプリケーションの作成 - プロジェクトの名前付け」ページが表示されます。

  3. 「プロジェクト名」フィールドにADTと入力します。

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

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

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

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

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

    図7-33に示すように、「メディエータの作成」ページが表示されます。

    図7-33 「メディエータの作成」ページ

    図7-33の説明が続きます
    「図7-33 「メディエータの作成」ページ」の説明

  7. 「名前」フィールドにメディエータ・コンポーネントの名前を入力します。 この例では、デフォルト名のMediator1を保持します。

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

    メディエータ・コンポーネントが作成されました。

7.4.2.3 インバウンドOracle AQアダプタの作成

次の手順に従ってインバウンドOracle AQアダプタ・サービスを作成します。

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

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

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

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

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

  4. 「サービス名」ページでサービスの名前を指定します。 この例では、dequeueと入力します。

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

    「サービス接続」ページが表示されます。 Oracle AQアダプタを構成するにはデータベース接続が必要です。 新規接続を作成するか、既存のデータベース接続を選択できます。

  6. 「新規データベース接続を作成します。」アイコンをクリックして新規データベース接続を作成します。

    「データベース接続の作成」ページが表示されます。

  7. 第7.4.1.1.3項「Oracle AQアダプタ・サービスの定義」の手順6の説明に従ってデータベース接続を作成します。

  8. 「OK」をクリックして新規データベース接続の作成プロセスを完了します。

    「サービス接続」ページが表示され、データベース接続のサマリーが示されます。

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

    「アダプタ・インタフェース」ページが表示されます。

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

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

    「操作」ページが表示されます。

  12. 「デキュー」を選択します。

  13. デフォルトの操作名を受け入れて「次へ」をクリックします。

    「キュー名」ページが表示されます。

  14. リストからデータベース・スキーマを選択するか、「参照」をクリックしてスキーマを参照します。この例では、「参照」をクリックします。

    「キューの選択」ダイアログが表示されます。

  15. 「キューの選択」ダイアログで、次の手順を実行します。

    1. 「キュー・タイプ」で「すべてのタイプ」を選択します。

    2. 「データベース・スキーマ」で「Scott」を選択します。

    3. 他のフィールドではデフォルト値を保持します。

    4. 「キュー」で「CUSTOMER_IN_QUEUE」を選択します。

    図7-34に、「キューの選択」ダイアログを示します。

    図7-34 インバウンド操作用のキューの選択

    図7-34の説明が続きます
    「図7-34 インバウンド操作用のキューの選択」の説明

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

    図7-35に示すように、すべてのフィールドに移入済の「キュー名」ダイアログが表示されます。

    図7-35 「キュー名」ページ

    図7-35の説明が続きます
    「図7-35 「キュー名」ページ」の説明

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

    「キュー・パラメータ」ページが表示されます。

  18. 「キュー・パラメータ」ページで、各フィールドを空白にしたままで「次へ」をクリックします。

    「オブジェクト・ペイロード」ページが表示されます。

  19. 「ビジネス・ペイロード」で、オブジェクト全体またはオブジェクト内の1つのフィールドのみのいずれかを選択します。

    この例では「オブジェクトCUSTOMER_TYPE全体」を選択します。

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

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

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

    インバウンドOracle AQアダプタの定義が完了しました。

7.4.2.4 アウトバウンドOracle AQアダプタの作成

次の手順に従ってアウトバウンドOracle AQアダプタ・サービスを作成します。

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

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

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

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

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

  4. 「サービス名」フィールドにenqueueと入力し、「次へ」をクリックします。

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

  5. 「接続」で、「MyConnection」を選択して「次へ」をクリックします。

    「アダプタ・インタフェース」ページが表示されます。

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

    「操作」ページが表示されます。

  7. 「操作」ページで、「エンキュー」を選択してデフォルトの操作名を受け入れます。

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

    「キュー名」ページが表示されます。

  9. 「キュー名」ページで、リストからデータベース・スキーマを選択するか、「参照」をクリックしてスキーマを参照します。この例では、「参照」をクリックします。

    「キューの選択」ダイアログが表示されます。

  10. 「キューの選択」ダイアログで、次の手順を実行します。

    1. 「キュー・タイプ」で「すべてのタイプ」を選択します。

    2. 「データベース・スキーマ」で「Scott」を選択します。

    3. 他のフィールドではデフォルト値を保持します。

    4. 図7-36に示すように、「キュー」で「CUSTOMER_OUT_QUEUE」を選択します。

    図7-36 アウトバウンド操作用のキューの選択

    図7-36の説明が続きます
    「図7-36 アウトバウンド操作用のキューの選択」の説明

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

    図7-37に示すように、すべてのフィールドに移入済の「キュー名」ページが表示されます。

    図7-37 「キュー名」ページ

    図7-37の説明が続きます
    「図7-37 「キュー名」ページ」の説明

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

    「キュー・パラメータ」ページが表示されます。

  13. 「キュー・パラメータ」ページで、各フィールドを空白にしたままで「次へ」をクリックします。

    「オブジェクト・ペイロード」ページが表示されます。

  14. 「ビジネス・ペイロード」で、オブジェクト全体またはオブジェクト内の1つのフィールドのみのいずれかを選択します。この例では「オブジェクトCUSTOMER_TYPE全体」を選択します。

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

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

  16. 「終了」ウィンドウで「終了」をクリックします。

    アウトバウンドOracle AQアダプタの定義が完了しました。

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

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

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

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

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

    図7-38 JDeveloper: composite.xml

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

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

7.4.2.6 ルーティング・サービスの構成

次の手順に従ってルーティング・サービスを構成します。

  1. 「Mediator1」をダブルクリックします。

    「Mediator1.mplan」ウィンドウが表示されます。

  2. 「次を使用して変換」フィールドの端に表示される「既存のマッパー・ファイルを選択するか、新規マッパー・ファイルを作成します。」アイコンをクリックします。

    図7-39に示すように、「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。

    図7-39 「リクエスト・トランスフォーメーション・マップ」ダイアログ

    図7-39の説明が続きます
    「図7-39 「リクエスト・トランスフォーメーション・マップ」ダイアログ」の説明

  3. 「新規マッパー・ファイルの作成」を選択して「OK」をクリックします。

    図7-40に示すように、「トランスフォーメーション」ウィンドウが表示されます。

    図7-40 「トランスフォーメーション」ウィンドウ

    図7-40の説明が続きます
    「図7-40 「トランスフォーメーション」ウィンドウ」の説明

  4. マッパーの左側でソース・ルート要素を選択し、右側の宛先ルート要素へドラッグしてマップ・プリファレンスを設定します。

    図7-41に示すように、「自動マップ・プリファレンス」ダイアログが表示されます。

    図7-41 「自動マップ・プリファレンス」ダイアログ

    図7-41の説明が続きます
    「図7-41 「自動マップ・プリファレンス」ダイアログ」の説明

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

    「アプリケーション」ウィンドウの中央ペインは、図7-42のようになります。

    図7-42 マップ・プリファレンス設定後の「アプリケーション」ウィンドウ

    図7-42の説明が続きます
    「図7-42 マップ・プリファレンス設定後の「アプリケーション」ウィンドウ」の説明

  6. マッパーの設定を保存してタブを閉じます。

  7. ルーティング・サービスの設定を保存してタブを閉じます。

7.4.2.7 Oracle WebLogic Server管理コンソールでのデータソースの構成

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

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

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

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

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

  3. 「ドメイン構造」で、「サービス」「JDBC」を選択し、「データ・ソース」をクリックします。

    図7-44に示すように、「JDBCデータ・ソースの概要」ページが表示されます。

    図7-44 「JDBCデータ・ソースの概要」ページ

    図7-44の説明が続きます
    「図7-44 「JDBCデータ・ソースの概要」ページ」の説明

  4. 「新規作成」をクリックします。 「新しいJDBCデータ・ソースの作成」ページが表示されます。

  5. 図7-45に示すように、新しいJDBCデータソースの識別に使用するプロパティの値を入力します。

    図7-45 「新しいJDBCデータ・ソースの作成」ページ

    図7-45の説明が続きます
    「図7-45 「新しいJDBCデータ・ソースの作成」ページ」の説明

  6. 「次へ」をクリックします。 図7-46に示すように、「新しいJDBCデータ・ソースの作成 - トランザクション・オプション」ページが表示されます。

    図7-46 「新しいJDBCデータ・ソースの作成 - トランザクション・オプション」ページ

    図7-46の説明が続きます
    「図7-46 「新しいJDBCデータ・ソースの作成 - トランザクション・オプション」ページ」の説明

  7. 「次へ」をクリックします。 図7-47に示すように、「新しいJDBCデータ・ソースの作成 - 接続プロパティ」ページが表示されます。

    図7-47 「新しいJDBCデータ・ソースの作成 - 接続プロパティ」ページ

    図7-47の説明が続きます
    「図7-47 「新しいJDBCデータ・ソースの作成 - 接続プロパティ」ページ」の説明

  8. 「接続プロパティ」ページで接続プロパティを入力します。

  9. 「次へ」をクリックします。 図7-48に示すように、「新しいJDBCデータ・ソースの作成 - データベース接続のテスト」ページが表示されます。

    図7-48 「新しいJDBCデータ・ソースの作成 - データベース接続のテスト」ページ

    図7-48の説明が続きます
    「図7-48 「新しいJDBCデータ・ソースの作成 - データベース接続のテスト」ページ」の説明

  10. 「構成のテスト」をクリックし、データベースの可用性および指定した接続プロパティをテストします。 「新しいJDBCデータ・ソースの作成 - データベース接続のテスト」ページの上部に接続テストに成功したことを示すメッセージが表示されます。

  11. 「次へ」をクリックします。 図7-49に示すように、「新しいJDBCデータ・ソースの作成 - ターゲットの選択」ページが表示されます。

    図7-49 「新しいJDBCデータ・ソースの作成 - ターゲットの選択」ページ

    図7-49の説明が続きます
    「図7-49 「新しいJDBCデータ・ソースの作成 - ターゲットの選択」ページ」の説明

  12. ターゲットを選択して「終了」をクリックします。

    図7-50に示すように、「JDBCデータ・ソースの概要」ページが表示されます。 このページには、このドメインに作成されているJDBCデータソース・オブジェクトがまとめられています。 このリストには、作成したデータソースが表示されます。

    図7-50 「JDBCデータ・ソースの概要」ページ

    図7-50の説明が続きます
    「図7-50 「JDBCデータ・ソースの概要」ページ」の説明

  13. Oracle WebLogic Server管理コンソールを閉じます。

7.4.2.8 JDeveloperを使用したデプロイ

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

JDeveloperを使用してアプリケーション・プロファイルをデプロイする手順は、次のとおりです。

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

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

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

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

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

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

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

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

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

7.4.3 Oracle AQアダプタのRAWキュー

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

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

7.4.3.1 前提条件

SCOTTスキーマを持つデータベースへのアクセス権限が必要です。

この使用例を実行するには、adapters-aq-101-rawサンプルに含まれているartifacts.zipファイルの次のSQLファイルが必要です。 これらのファイルは、artifacts.zipファイルのartifacts/sqlサブディレクトリにあります。 次に示す順序でSQLファイルを実行します。

  • setup_user.sql

  • create_queues.sql

  • enqueue_raw.sql

  • dequeue_raw.sql

また、adapters-aq-101-rawサンプル自体に含まれているartifacts.zipの次のファイルも必要となります。

  • artifacts/schemas/emp.xsd

adapters-aq-101-rawサンプルは、次の場所にあります。

http://www.oracle.com/technology/sample_code/products/adapters

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

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

  1. JDeveloperを開きます。

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

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

  3. 「アプリケーション名」フィールドにRawqueueと入力します。

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

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

    「汎用アプリケーションの作成 - プロジェクトの名前付け」ページが表示されます。

  6. 「プロジェクト名」フィールドにわかりやすい名前(Rawなど)を入力します。

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

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

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

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

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

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

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

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

    RawqueueアプリケーションとRawプロジェクトが設計領域に表示されます。

  12. emp.xsdファイルをプロジェクトのXSDフォルダにコピーします(このファイルの場所の詳細は、第7.4.3.1「前提条件」を参照)。

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

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

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

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

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

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

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

  4. 「サービス名」フィールドにRaw-Dequeuerと入力し、「次へ」をクリックします。

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

  5. 第7.4.1.1.3項「Oracle AQアダプタ・サービスの定義」の手順6の説明に従ってデータベース接続を作成します。

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

    「アダプタ・インタフェース」ページが表示されます。

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

    「操作」ページが表示されます。

  8. 図7-51に示すように、「操作」ページで「デキュー」を選択します。

  9. デフォルトの操作名を受け入れて「次へ」をクリックします。

    「キュー名」ページが表示されます。

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

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

  10. 図7-52に示すように、データベース・スキーマとしてSCOTTを選択し、キュー名としてRAW_IN_QUEUEを選択します。

    図7-52 「アダプタ構成ウィザード - キュー名」ページ

    図7-52の説明が続きます
    「図7-52 「アダプタ構成ウィザード - キュー名」ページ」の説明

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

    「キュー・パラメータ」ページが表示されます。

  12. 相関IDとデキュー条件を入力し、「次へ」をクリックします。

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

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

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

  14. 図7-53に示すように、「プロジェクトのスキーマ・ファイル」「emp.xsd」および「AQRaw_End2End」を順番に選択します。

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

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

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

    図7-54に示すように、「メッセージ」ダイアログの「URL」フィールドにemp.xsdスキーマ・ファイルが表示されます。

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

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

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

  17. 「終了」をクリックします。 Oracle AQアダプタ・サービスの構成が完了し、図7-55に示すように「composite.xml」ページが表示されます。

    図7-55 JDeveloperウィンドウ: 「composite.xml」ページ

    図7-55の説明が続きます
    「図7-55 JDeveloperウィンドウ: 「composite.xml」ページ」の説明

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

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

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

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

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

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

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

  4. 「XAデータ・ソース」を選択して「次へ」をクリックします。

    「操作」ページが表示されます。

  5. 「エンキュー」を選択します。

  6. デフォルトの操作名を受け入れて「次へ」をクリックします。

    「キュー名」ページが表示されます。

  7. 図7-56に示すように、データベース・スキーマとしてSCOTTを選択し、キュー名としてRAW_OUT_QUEUEを選択します。

    図7-56 「アダプタ構成ウィザード - キュー名」ページ

    図7-56の説明が続きます
    「図7-56 「アダプタ構成ウィザード - キュー名」ページ」の説明

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

    「キュー・パラメータ」ページが表示されます。

  9. 相関IDを入力して「次へ」をクリックします。

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

  10. 「URL」フィールドの端にある「スキーマ・ファイルを参照」をクリックします。

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

  11. 図7-53に示すように、「プロジェクトのスキーマ・ファイル」「emp.xsd」および「AQRaw_End2End」を順番に選択します。

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

    図7-54に示すように、「メッセージ」ダイアログの「URL」フィールドにemp.xsdスキーマ・ファイルが表示されます。

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

    「終了」ページが表示されます。

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

    Oracle AQアダプタ・サービスの構成が完了し、図7-57に示すように「composite.xml」ページが表示されます。

    図7-57 JDeveloperウィンドウ: 「composite.xml」ページ

    図7-57の説明が続きます
    「図7-57 JDeveloperウィンドウ: 「composite.xml」ページ」の説明

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

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

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

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

    同様に、「コンポーネント」領域にあるBPELプロセス内の小さい三角形を、「外部参照」領域のOutboundService内のドロップ・ゾーンにドラッグします。

    JDeveloperのcomposite.xmlファイルが図7-58のように表示されます。

    図7-58 JDeveloper: composite.xml

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

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

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

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

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

    図7-59に示すように、JDeveloperの「BPELRawqueue.bpel」ページが表示されます。

    図7-59 「BPELRawqueue.bpel」ページ

    図7-59の説明が続きます
    「図7-59 「BPELRawqueue.bpel」ページ」の説明

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

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

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

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

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

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

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

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

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

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

    図7-60 「Receive」ダイアログ

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

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

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

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

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

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

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

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

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

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

    図7-61 「Invoke」ダイアログ

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

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

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

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

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

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

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

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

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

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

    図7-63に示すように、JDeveloperの「BPELRawqueue.bpel」ページが表示されます。

    図7-63 「BPELRawqueue.bpel」ページ

    図7-63の説明が続きます
    「図7-63 「BPELRawqueue.bpel」ページ」の説明

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

7.4.3.6 Oracle WebLogic Server管理コンソールでのデータソースの構成

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

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

  3. ホーム・ページの「ドメイン構造」で、「サービス」「JDBC」を選択し、「データ・ソース」をクリックします。

    「JDBCデータ・ソースの概要」ページが表示されます。

  4. 「新規作成」をクリックします。「新しいJDBCデータ・ソースの作成」ページが表示されます。

  5. 新しいJDBCデータソースの識別に使用するプロパティの値を入力します。

  6. 「次へ」をクリックします。 「新しいJDBCデータ・ソースの作成 - トランザクション・オプション」ページが表示されます。

  7. 「次へ」をクリックします。 「新しいJDBCデータ・ソースの作成 - 接続プロパティ」ページが表示されます。

  8. 「接続プロパティ」ページで接続プロパティを入力します。

  9. 「次へ」をクリックします。 「新しいJDBCデータ・ソースの作成 - データベース接続のテスト」ページが表示されます。

  10. 「構成のテスト」をクリックし、データベースの可用性および指定した接続プロパティをテストします。「新しいJDBCデータ・ソースの作成 - データベース接続のテスト」ページの上部に接続テストに成功したことを示すメッセージが表示されます。

  11. 「次へ」をクリックします。 「新しいJDBCデータ・ソースの作成 - ターゲットの選択」ページが表示されます。

  12. ターゲットを選択して「終了」をクリックします。

    「JDBCデータ・ソースの概要」ページが表示されます。 このページには、このドメインに作成されているJDBCデータソース・オブジェクトがまとめられています。 このリストには、作成したデータソースが表示されます。

  13. Oracle WebLogic Server管理コンソールを閉じます。

7.4.3.7 JDeveloperを使用したデプロイ

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

JDeveloperを使用してアプリケーション・プロファイルをデプロイする手順は、次のとおりです。

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

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

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

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

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

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

  2. 「最後の5つのインスタンス」ペインに、新規インスタンスのエントリがあります。

    これは、メッセージをエンキューするときにトリガーされたインスタンスです。

  3. インスタンスのいずれかをクリックします。

    「フローのトレース」ページが表示されます。

  4. 「BPELRawqueue」コンポーネント・インスタンスをクリックします。

    「監査」ページが表示されます。

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