ヘッダーをスキップ
Oracle® Fusion Middleware Oracle B2Bユーザーズ・ガイド
11gリリース1 (11.1.1.9)
B61381-07
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

C 同期リクエスト/リプライのサポート

この付録では、Oracle JDeveloperとOracle B2Bを構成してOracle B2Bで同期リクエスト/リプライのサポートを有効化する方法について説明します。

この付録には次のトピックがあります。

C.1 概要

Oracle B2Bでは、ファブリックからOracle B2Bへの同期リクエスト/リプライがサポートされています。ただし、初回リリースでサポートされているのは、HTTPトランスポートのみです。図C-1に、エンドツーエンドのシナリオを示します。

図C-1 同期リクエスト/リプライ

図C-1の説明が続きます
「図C-1 同期リクエスト/リプライ」の説明

C.2 送信者の構成

送信者を構成するには、次のタスクを実行する必要があります。

C.2.1 Oracle JDeveloperの構成

Oracle JDeveloperでB2B構成ウィザードを使用して、同期リクエスト/リプライをサポートするための送信者を構成する必要があります。

  • 図C-2に示すように、B2B構成ウィザードの「操作」ページで、「同期リクエスト/リプライ」オプションを選択し、「アウトバウンド」を選択します。

    図C-2 B2B構成ウィザード: 「操作」ページ

    図C-2の説明が続きます
    「図C-2 B2B構成ウィザード: 「操作」ページ」の説明

  • B2B構成ウィザードの「ドキュメント定義」ページで、「リクエスト」と「リプライ」の両方の定義を指定します。

    ルーティングIDの選択は、リクエスト・ドキュメントにのみ表示されます。図C-3に示すように、レスポンスは同じリクエスト・コールでファブリックに返されるので、レスポンスのルーティングにルーティングIDは必要ありません。

    図C-3 B2B構成ウィザード: 「ドキュメント定義」ページ

    図C-3の説明が続きます
    「図C-3 B2B構成ウィザード: 「ドキュメント定義」ページ」の説明

C.2.2 Oracle B2Bの構成

Oracle B2Bコンソールで、次を実行する必要があります。

  • Oracle B2Bアグリーメントの設定: アグリーメントを2つ定義する必要があります。図C-4に示すように、一方のアグリーメントはリクエスト送信用、もう一方のアグリーメントはレスポンス受信用にそれぞれ必要です。ここで設定する必要があるOracle B2Bのプロパティはありません。ファブリックからOracle B2Bへのコールに基づいて、メッセージ・タイプは「同期リクエスト」に決定します。

    図C-4 Oracle B2Bのアグリーメントの設定

    図C-4の説明が続きます
    「図C-4 Oracle B2Bのアグリーメントの設定」の説明

  • 取引パートナ・チャネルの作成: 図C-5に示すように、リモート取引パートナ・チャネルを作成し、http://server:port/b2b/syncreceiverを指すように設定する必要があります。これは、2つのOracle B2B製品間で通信が行われる場合に必要です。通信が2つの異なるB2B製品間で行われる場合、URLが変わることに注意してください。

    図C-5 取引パートナ・チャネルの作成

    図C-5の説明が続きます
    「図C-5 取引パートナ・チャネルの作成」の説明

C.3 受信者の構成

受信者を構成するには、次のタスクを実行する必要があります。

C.3.1 Oracle JDeveloperの構成

Oracle JDeveloperでB2B構成ウィザードを使用して、同期リクエスト/リプライをサポートするための受信者を構成する必要があります。

  • 図C-6に示すように、B2B構成ウィザードの「操作」ページで、「同期リクエスト/リプライ」オプションを選択し、「インバウンド」を選択します。

    図C-6 B2B構成ウィザード: 「操作」ページ

    図C-6の説明が続きます
    「図C-6 B2B構成ウィザード: 「操作」ページ」の説明

  • B2B構成ウィザードの「ドキュメント定義」ページで、「リクエスト」と「リプライ」の両方の定義を指定します。

    ルーティングIDの選択は、リクエスト・ドキュメントにのみ表示されます。図C-7に示すように、レスポンスは同じリクエスト・コールでファブリックに返されるので、レスポンスのルーティングにルーティングIDは必要ありません。

    図C-7 B2B構成ウィザード: 「ドキュメント定義」ページ

    図C-7の説明が続きます
    「図C-7 B2B構成ウィザード: 「ドキュメント定義」ページ」の説明

C.3.2 Oracle B2Bの構成

Oracle B2Bコンソールで、次を実行する必要があります。

  • Oracle B2Bアグリーメントの設定: アグリーメントを2つ定義する必要があります。図C-8に示すように、一方のアグリーメントはリクエスト受信用、もう一方のアグリーメントはレスポンス送信用にそれぞれ必要です。ここで設定する必要があるOracle B2Bのプロパティはありません。同期HTTP受信者によって、メッセージ・タイプは「同期リクエスト」に決定します。

    図C-8 Oracle B2Bのアグリーメントの設定

    図C-8の説明が続きます
    「図C-8 Oracle B2Bのアグリーメントの設定」の説明

  • ダミー取引パートナ・チャネルの作成: ダミー・リモート取引パートナ・チャネルを作成する必要がありますが、このチャネルは実行時は使用されません。任意のURL値を指定できますが、図C-9に示すように、http://host:port/xyzの書式で指定する必要があります。

    図C-9 ダミー取引パートナ・チャネルの作成

    図C-9の説明が続きます
    「図C-9 ダミー取引パートナ・チャネルの作成」の説明

C.4 メッセージの再発行

同期リクエストまたは同期レスポンスの再発行は、アプリケーション側から実行する必要があります。Oracle B2Bコンソールで、Oracle B2Bからアプリケーション・メッセージまたはワイヤ・メッセージを再発行することはできますが、メッセージは非同期モードで再発行されます。メッセージ処理ロジックが非決定性である場合があります。たとえば、送信者側であるOracle B2Bからアプリケーション・メッセージまたはワイヤ・メッセージが再発行された場合、このメッセージはhttp://server:port/b2b/syncreceiverにポストされます。受信者側のOracle B2Bはこのメッセージを非同期リクエストまたは非同期レスポンスとして処理します。送信者側ではレスポンス・メッセージは無視されます。

C.5 SOAコンポジットへの事前定義済カスタム・レスポンス

非同期リクエスト/レスポンス・メッセージ・パターンでは、SOAコンポジットは、メッセージをB2Bに送信し、それに対してB2Bはメッセージを取引パートナ(TP)に送信します。ただし、B2Bが同期HTTP接続でTPからいかなるペイロードも受信しない場合、SOAコンポジットはB2BがTPへのメッセージの送信に成功したかどうか、コンポジットがB2Bから確認を受信しないため確認できません。

一般的に、コンポジットがコール・スレッドでエラーを受信しない場合、同期コールは正常に終了したとみなされます。ただし、B2Bがペイロードの送信に成功したことを確認するには、SOAコンポジットが肯定レスポンス・メッセージをB2Bから受信する必要があります。この時、TPはペイロードの受信を確認済で、HTTPステータスがOKで、リクエスト/リプライ・メカニズムが関連付けられたペイロードではありません。

C.5.1 b2b.defaultsyncHTTPResponse

b2b.defaultsyncHTTPResponseという名前の新しいB2Bプロパティを使用すると、SOAコンポジットは、B2Bから肯定メッセージを受信できます。これは、グローバル・フラグです。

たとえば、新しいパラメータ、b2b.defaultsyncHTTPResponse=<Status>OK</Status> or b2b.defaultsyncHTTPResponse=OKを追加できます。

TPが、これをトランスポート・レベルのHTTPステータスがOK (200)と確認し、ペイロードがない場合、B2BはEMプロパティのコンテンツをペイロードにインバウンドとして構築し、SOAコンポジットに渡します。

C.5.2 前提条件

b2b.defaultsyncHTTPResponse B2Bプロパティを使用するには、次の事前条件を満たしている必要があります。

  • HTTPトランスポートを同期モードに設定します。これにより、b2b.defaultsyncHTTPResponseで構成された値が、コンポジットに返ります。

  • 対応するドキュメント定義およびアグリーメントを設定します。これにより、レスポンス値がコンポジットに帰る途中で処理されます。また、B2B同期呼出しに対するコンポジットは、同期リクエスト/リプライです。

C.5.3 ペイロードのないSOAコンポジットに対するHTTPレスポンスの定義

次の手順を実行して、ペイロードのないSOAコンポジットに対するHTTPレスポンスを定義します。

  1. 「管理」ページで、「カスタム」・プロトコルにドキュメントを作成します。「カスタム」・プロトコルにドキュメントを作成する方法の詳細は、このガイドの第8章の「カスタム・ドキュメント・プロトコルの使用」の項を参照してください。

  2. 次の詳細を使用します。

    1. カスタム・バージョンを作成します: 例: "1.0"

    2. バージョン1.0の下に「ドキュメント」を作成します: 例: 'SyncResp'

    3. 「ドキュメント」下に、「ドキュメント定義」を作成します: "SyncRespDef"に次のように定義します。

      識別タイプ: 「XML」または「フラット」のいずれか

      「XML」の場合、次のようになります。

      「識別式(XPath)」: //Status

      識別値: OK

      「フラット」の場合、次のようになります。

      識別開始位置: 1

      識別終了位置: 2

      識別値: OK

    4. ドキュメントのdefタイプが、XMLと識別された場合は、次のようにします。

      b2b.defaultsyncHTTPResponseを" <Status>OK</Status>"に設定します。

    5. ドキュメントのdefタイプが、「フラット」と識別された場合は、次のようにします。

      b2b.defaultsyncHTTPResponseを"OK"に設定します。

  3. カスタム・ドキュメント・プロトコルの取引パートナに関連付けられたアグリーメントを作成します。

    汎用識別子を、ホストおよびリモートの取引パートナに追加します。