プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle SOA SuiteでのSOAアプリケーションの開発
12c (12.1.3)
E53007-05
目次へ移動
目次

前
次

24 Oracle Mediatorのメッセージ交換パターンの理解

この章では、Oracle Mediatorサービス・コンポーネントと他のアプリケーションとの間の一般的なメッセージ交換パターンについて説明します。

この章の内容は次のとおりです。

注意:

次の交換パターンは、ルーティング・ルールが作成された際のレスポンス、フォルトおよびコールバックに対するOracle JDeveloperのデフォルト処理を示しています。すべてのケースについて、次の点を考慮してください。

  • レスポンス、フォルトまたはコールバックがコール元に返信される場合は、同じメッセージを別のターゲット・サービスまたはイベントにルーティングすることもできます。これを実行するには、ターゲットの横にあるボタンをクリックし、別のターゲットを選択します。

  • メディエータのコール元がレスポンスを想定する場合、1つ以上のルーティング・ルールにより、レスポンスを返さないターゲットにリクエストがルーティングされる可能性がありますが、レスポンスを返す順次ルーティング・ルールが少なくとも1つ必要です。

  • リクエスト・レスポンス・パターンに複数のルーティング・ルールが含まれ、複数のルールで最初のコール元に対してレスポンスが返される場合、受信した最初のレスポンスがコール元に配信されるレスポンスになります。その他のレスポンスは無視されます。したがって、レスポンスを送信するルーティング・ルールは、レスポンスを転送する他のルーティング・ルール(存在する場合)よりも前に実行される必要があります。

24.1 一方向メッセージ交換パターン

一方向相互作用では、メディエータは起動されますが、コール元にはレスポンスを返信しません。表24-1に示すように、ルーティング・ルール・ターゲットのタイプに基づいて、レスポンス、フォルトおよびコールバックが処理されます。

注意:

イベント・サブスクリプションには、一方向相互作用と同じ変換パターンが適用されます。


表24-1 メディエータのWSDLが一方向相互作用の場合のレスポンス

ルーティング・ルール・ターゲットのタイプ レスポンス

リクエスト

レスポンスはありません。

リクエスト・レスポンス

レスポンスは、別のターゲットまたはイベントに転送されます。

リクエスト・レスポンス・フォルト

レスポンスおよびフォルトは、別のターゲットまたはイベントに転送されます。

リクエスト・コールバック

コールバックは、別のターゲットまたはイベントに転送されます。

リクエスト・レスポンス・コールバック

レスポンスおよびコールバックは、別のターゲットまたはイベントに転送されます。

リクエスト・レスポンス・フォルト・コールバック

レスポンス、フォルトおよびコールバックは、別のターゲットまたはイベントに転送されます。


図24-1は、一方向メッセージ交換パターンを示しています。

図24-1 一方向メッセージ交換パターン

図24-1の説明が続きます
「図24-1 一方向メッセージ交換パターン」の説明

24.1.1 one.way.returns.faultプロパティ

one.way.returns.faultプロパティは、一方向インタフェースのSOAPコールについて、フォルトおよび一方向メッセージの処理方法を制御します。このプロパティは、composite.xmlファイルの一方向Webサービスに関するWebサービス・セクションのサービス・バインディング・コンポーネントに追加できます。このプロパティを、参照に適用することはできません。適用できるのは、サービスとbinding.wsバインディング・タイプに対してのみです。表24-2に、このプロパティの詳細を示します。


表24-2 one.way.returns.faultプロパティ

one.way.returns.faultの設定 結果

trueに設定した場合

. . .
<service name="Mediator1_2"
 ui:wsdlLocation="ReadFile.wsdl">
    <interface.wsdl
 interface="http://xmlns.oracle.com/pcbpel/adapter/file
 /LocalSandbox/Project1/ReadFile%2F#wsdl.interface(Read_
ptt)"/>
    <binding.ws
 port="http://xmlns.oracle.com/pcbpel/adapter/file
/LocalSandbox/Project1/ReadFile%2F#wsdl.endpoint
(Mediator1/Read_pt)">
   <property name="one.way.returns.fault" type="xs:string" many="false"
     override="may">true</property>
    </binding.ws>
</service>
. . .

後続処理で発生するフォルトは、クライアントへのSOAPフォルトと、HTTPレスポンス・コード500を返します。(11g リリース1と同じ動作。)

falseに設定した場合

. . .
<service name="Mediator1_2"
 ui:wsdlLocation="ReadFile.wsdl">
    <interface.wsdl
 interface="http://xmlns.oracle.com/pcbpel/adapter/file/
Local Sandbox/Project1/ReadFile%2F#wsdl.interface(Read_
ptt)"/>
    <binding.ws
port="http://xmlns.oracle.com/pcbpel/adapter/file/LocalSan
dbox/Project1/ReadFile%2F#wsdl.endpoint(Mediator1/Read_
pt)">
      <property name="one.way.returns.fault"
 type="xs:string" many="false"
                override="may">false</property>
    </binding.ws>
  </service>
. . .

後続処理で発生するフォルトは、HTTPレスポンス・コード500のみを返します。クライアントにはSOAPフォルトを返しません。

未設定の場合(デフォルト)

後続処理で発生するフォルトは、クライアントへのSOAPフォルトと、HTTPレスポンス・コード500を返します。(11g リリース1と同じ動作。)


24.1.1.1 one.way.returns.faultプロパティを追加する手順:

  1. SOAコンポジット・エディタで、one.way.returns.faultプロパティを追加するサービス・バインディング・コンポーネントを選択します。

  2. エディタの右下部にある「プロパティ・インスペクタ」セクションに移動します。

  3. 「バインディング・プロパティ」セクションで、「追加」アイコンをクリックします。

    「プロパティの作成」ダイアログが表示されます。

  4. 「名前」フィールドに、one.way.returns.faultと入力します。

  5. 「値」フィールドに、trueまたはfalseを入力します。

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

24.2 リクエスト・リプライ・メッセージ交換パターン

リクエスト・リプライ相互作用では、メディエータが起動され、コール元にリプライを送信します。表24-3に示すように、ルーティング・ルール・ターゲットのタイプに基づいて、レスポンス、フォルトおよびコールバックが処理されます。


表24-3 メディエータのWSDLがリクエスト・リプライの場合のレスポンス

ルーティング・ルール・ターゲットのタイプ レスポンス

リクエスト

ターゲットからのレスポンスはありませんが、リクエスト・レスポンス・サービスが含まれる順次ルーティング・ルールが少なくとも1つ必要です。

リクエスト・レスポンス

レスポンスは、コール元に返信されます。レスポンスは別のターゲットまたはイベントに転送できますが、コール元にレスポンスを返す順次ルーティング・ルールが少なくとも1つ必要です。

リクエスト・レスポンス・フォルト

レスポンスは、コール元に返信されます。フォルトは、別のターゲットまたはイベントに転送されます。

リクエスト・コールバック

ターゲットからのレスポンスはありませんが、リクエスト・レスポンス・サービスが含まれる順次ルーティング・ルールが少なくとも1つ必要です。コールバックは、別のターゲットまたはイベントに転送されます。

リクエスト・レスポンス・コールバック

レスポンスは、コール元に返信されます。コールバックは、別のターゲットまたはイベントに転送されます。

リクエスト・レスポンス・フォルト・コールバック

レスポンスは、コール元に返信されます。コールバックおよびフォルトは、別のターゲットまたはイベントに転送されます。


図24-2は、リクエスト/リプライ・メッセージ交換パターンを示しています。

図24-2 リクエスト/リプライ・メッセージ交換パターン

図24-2の説明が続きます
「図24-2 リクエスト/リプライ・メッセージ交換パターン」の説明

24.3 リクエスト・リプライ・フォルト・メッセージ交換パターン

リクエスト・リプライ・フォルト相互作用では、メディエータが起動され、コール元にリプライと1つ以上のフォルトを返信します。表24-4に示すように、ルーティング・ルール・ターゲットのタイプに基づいて、レスポンス、フォルトおよびコールバックが処理されます。


表24-4 メディエータのWSDLがリクエスト・リプライ・フォルトの場合のレスポンス

ルーティング・ルール・ターゲットのタイプ レスポンス

リクエスト

リクエスト・レスポンス・フォルト・サービスが含まれる順次ルーティング・ルールが少なくとも1つ必要です。送信するレスポンスがない場合、メディエータはnullを返します。

リクエスト・レスポンス

レスポンスは、コール元に返信されます。メディエータによるメッセージ処理での例外によってフォルトが発生する場合があります。

リクエスト・レスポンス・フォルト

レスポンスおよびフォルトがコール元に返信されます。メディエータによるメッセージ処理での例外によってフォルトが発生する場合があります。

リクエスト・コールバック

ターゲットからのレスポンスはありませんが、リクエスト・レスポンス・サービスが含まれる順次ルーティング・ルールが少なくとも1つ必要です。送信するレスポンスがない場合、メディエータはnullを返します。コールバックは、別のターゲットまたはイベントに転送されます。

リクエスト・レスポンス・コールバック

レスポンスは、コール元に返信されます。メディエータによるメッセージ処理での例外によってフォルトが発生する場合があります。

リクエスト・レスポンス・フォルト・コールバック

レスポンスおよびフォルトがコール元に返信されます。メディエータによるメッセージ処理での例外によってフォルトが発生する場合があります。


図24-3は、リクエスト・リプライ・フォルト・メッセージ交換パターンを示しています。

図24-3 リクエスト・リプライ・フォルト・メッセージ交換パターン

図24-3の説明が続きます
「図24-3 リクエスト・リプライ・フォルト・メッセージ交換パターン」の説明

24.4 リクエスト・コールバック・メッセージ交換パターン

リクエスト・コールバック相互作用では、メディエータが起動され、コール元に非同期リプライを送信する場合があります。表24-5に示すように、ルーティング・ルール・ターゲットのタイプに基づいて、レスポンス、フォルトおよびコールバックが処理されます。


表24-5 メディエータのWSDLがリクエスト・コールバックの場合のレスポンス

ルーティング・ルール・ターゲットのWSDL レスポンス

リクエスト

リクエスト・コールバック・サービスが含まれる順次ルーティング・ルールが少なくとも1つ必要です。コールバックが定義されたルーティング・ルールがない場合、コールバックはコール元に送信されません。

リクエスト・レスポンス

レスポンスは、独立したスレッドでコールバックとしてコール元に返信されます。追加のルーティング・ルールを作成して、レスポンスを別のターゲットまたはイベントに転送できます。

リクエスト・レスポンス・フォルト

レスポンスは、独立したスレッドでコールバックとしてコール元に返信されます。フォルトは、別のターゲットまたはイベントに転送されます。前項と同様に、追加のルーティング・ルールを作成して、レスポンスを別のターゲットまたはイベントに転送できます。

リクエスト・コールバック

コールバックは、コール元に返信されます。

リクエスト・レスポンス・コールバック

コールバックはコール元に返信され、レスポンスは別のターゲットまたはイベントに転送されます。

リクエスト・レスポンス・フォルト・コールバック

コールバックは、コール元に返信されます。レスポンスおよびフォルトは、別のターゲットまたはイベントに転送されます。


図24-4は、リクエスト・コールバック・メッセージ交換パターンを示しています。

図24-4 リクエスト・コールバック・メッセージ交換パターン

図24-4の説明が続きます
「図24-4 リクエスト・コールバック・メッセージ交換パターン」の説明

24.5 リクエスト・リプライ・コールバック・メッセージ交換パターン

リクエスト・リプライ・コールバック相互作用では、メディエータが起動され、最初のコール元にレスポンスと非同期リプライを送信します。表24-6に示すように、ルーティング・ルール・ターゲットのタイプに基づいて、レスポンス、フォルトおよびコールバックが処理されます。


表24-6 メディエータのWSDLがリクエスト・レスポンス・コールバックの場合のレスポンス

ルーティング・ルール・ターゲットのタイプ レスポンス

リクエスト

レスポンスを返す順次ルーティング・ルールが少なくとも1つ必要です。コールバックが定義されたルーティング・ルールがない場合、コールバックはコール元に送信されません。

リクエスト・レスポンス

レスポンスを返す順次ルーティング・ルールが少なくとも1つ必要です。コールバックが定義されたルーティング・ルールがない場合、コールバックは送信されません。

リクエスト・レスポンス・フォルト

レスポンスを返す順次ルーティング・ルールが少なくとも1つ必要です。コールバックが定義されたルーティング・ルールがない場合、コールバックはコール元に送信されません。フォルトは、別のターゲットまたはイベントに転送されます。

リクエスト・コールバック

レスポンスを返す順次ルーティング・ルールが少なくとも1つ必要です。送信するレスポンスがない場合、メディエータはnullを返します。

リクエスト・レスポンス・コールバック

レスポンスおよびコールバックがコール元に返信されます。

リクエスト・レスポンス・フォルト・コールバック

レスポンスおよびコールバックがコール元に返信されます。フォルトは、別のターゲットまたはイベントに転送されます。


図24-5は、リクエスト・リプライ・コールバック・メッセージ交換パターンを示しています。

図24-5 リクエスト・リプライ・コールバック・メッセージ交換パターン

図24-5の説明が続きます
「図24-5 リクエスト・リプライ・コールバック・メッセージ交換パターン」の説明

24.6 リクエスト・リプライ・フォルト・コールバック・メッセージ交換パターン

リクエスト・リプライ・フォルト・コールバック相互作用では、メディエータが起動され、最初のコール元にレスポンス、非同期リプライおよび1つ以上のフォルト・タイプを返信します。表24-7に示すように、ルーティング・ルール・ターゲットのタイプに基づいて、レスポンス、フォルトおよびコールバックが処理されます。


表24-7 リクエスト・レスポンス・フォルト・コールバックのメディエータへのレスポンス

ルーティング・ルール・ターゲットのWSDL レスポンス

リクエスト

リクエスト・コールバック・サービスが含まれる順次ルーティング・ルールと、レスポンスを返す順次ルーティング・ルールが、それぞれ少なくとも1つずつ必要です。必要なルーティング・ルールが定義されていない場合、コールバックおよびレスポンスは送信されません。

リクエスト・レスポンス

リクエスト・コールバック・サービスが含まれる順次ルーティング・ルールと、レスポンスを返す順次ルーティング・ルールが、それぞれ少なくとも1つずつ必要です。必要なルーティング・ルールが定義されていない場合、コールバックおよびレスポンスは送信されません。

リクエスト・レスポンス・フォルト

リクエスト・コールバック・サービスが含まれる順次ルーティング・ルールと、レスポンスを返す順次ルーティング・ルールが、それぞれ少なくとも1つずつ必要です。必要なルーティング・ルールが定義されていない場合、コールバックおよびレスポンスは送信されません。

リクエスト・コールバック

レスポンスを返す順次ルーティング・ルールが少なくとも1つ必要です。送信するレスポンスがない場合、メディエータはnullを返します。

リクエスト・レスポンス・コールバック

レスポンスおよびコールバックがコール元に返信されます。メディエータによるメッセージ処理での例外によってフォルトが発生する場合があります。

リクエスト・レスポンス・フォルト・コールバック

レスポンス、フォルトおよびコールバックがコール元に返信されます。


図24-6は、リクエスト・リプライ・フォルト・コールバック・メッセージ交換パターンを示しています。

図24-6 リクエスト・リプライ・フォルト・コールバック・メッセージ交換パターン

図24-6の説明が続きます
「図24-6 リクエスト・リプライ・フォルト・コールバック・メッセージ交換パターン」の説明