BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > B2B トピック > B2B Integration サンプルの使い方 > Messaging API サンプル(非推奨) |
B2B Integration サンプルの使い方
|
Messaging API サンプル(非推奨)
Messaging API サンプルは、WebLogic Integration Messaging API の使用方法を示します。特に、Messaging API で使用できる 2 つのメッセージ配信メカニズムと、WebLogic Integration B2B のロジック プラグイン機能を例示しています。
この章では、以下のトピックを取り上げます。
注意: Messaging API サンプルは WebLogic Integration Messaging API に基づいていますが、この API は、このリリースの WebLogic Integration から非推奨になっています。WebLogic Integration Messaging API に代わる機能については、『WebLogic Integration リリース ノート』を参照してください。
Messaging API サンプルの概要
WebLogic Integration では、ビジネス メッセージを送信する 2 通りの方法をサポートしています。
このサンプルは、2 つ目の方法を使用します。
WebLogic Integration Messaging API では、2 つのメッセージ配信メカニズムをサポートしています。
このサンプルでは、同期および遅延同期の双方のメッセージ配信メカニズムの使い方を例示しています。
Messaging API サンプルには、ビジネス メッセージを送信する 3 社のトレーディング パートナ(Partner1、Partner2、および Partner3)が含まれます。Messaging API サンプルには、4 つの Java ソース コード ファイル(MdmTp1Servlet.java、MdmTp2Servlet.java、MdmTp2Servlet.java、および WaiterPlugin.java)が含まれます。
WaiterPlugIn.java コードの詳細については、実行フローのトレースを参照してください。 Messaging API サンプルを実行する前に Messaging API サンプルを実行する前に、次の手順を実行します。
Messaging API サンプルの実行
Messaging API サンプルを実行するには、次の手順を実行します。
cd WLI_HOME
The WebLogic Integration repository has already been
created and populated, possibly from a previous run
of this RunSamples script. Do you want to destroy all the
current data in the repository and create and populate the
WebLogic Integration repository, again? Y for Yes, N for No
この質問に N と入力すると、リポジトリの作成および格納を行う手順が省略され、WebLogic Server のサンプル インスタンスを起動する手順のみが実行されます。
この質問に Y と入力すると、リポジトリの作成および格納が改めて行われ、その後で WebLogic Server のサンプル インスタンスを起動する手順が実行されます。Y と入力した場合、その時点でリポジトリに格納されている全データが破棄され、リポジトリにサンプル データが再ロードされます。現在のサンプル データが変更または削除され、新規または未変更のサンプル データをリポジトリに格納する場合にのみ、Y を入力してください。
これで、RunSamples スクリプトは WebLogic Server のインスタンスをバックグラウンド プロセスとして開始し、サンプル起動ページが表示されます。
必要に応じて、3 つのオプションをすべて表示できるようにブラウザの画面をサイズ変更してください。
Partner1 process flow:
Starting XOCPAppplication... done.
Creating conversation : verifierConversation:1.0:
requestor_Partner1_1001029696695_341001029696695...done.
send string for Message 1 = FIRST MESSAGE
Sending message 1 using synchronous deferred delivery method to Partner 2
Sending a second message before checking for acknowledgment on the first
send string for Message 2 = SECOND MESSAGE
Sending message 2 using synchronous delivery method to Partner 3
success status for message 2
Waiting for Message 2 response... done.
Processing reply for Message 2:
Received string for Message 2 = partner3 -- second message
Verification for Message 2 SUCCESS
Doing something else... done
Waiting acknowledgment for Message 1... Acknowledgment received
Success status for message 1
Waiting for Message 1 response... done
Processing reply:
Received string for Message 1 = partner2 -- first message
Verification for Message 1 SUCCESS
Terminating conversation:verifierConversation:1.0:
requestor_Partner1_1001029696695_341001029696695
success
Shutting down session... done.
実行フローのトレース
以下は、Messaging API サンプルの実行フローをトレースする手順です。
次の図は、これらのビジネス メッセージの送受信が最も行われやすいタスク順序を示します。正確なタスク順序はタイミングに関係しており、Java 仮想マシンのスレッドのスケジューリングに応じて異なります。
図5-1 トレーディング パートナ間のメッセージの流れを示す会話図
次のタスク順序では、図5-1 内の対応する文字で示される各手順の詳細について説明します。
メッセージの、ブロックを行わないという局面は、Partner1 のオブジェクト ライフラインによって、会話図(図5-1)に示されています。Partner1 が初めてアクティブになったとき、Partner1 のライフラインは、破線(非アクティブ状態を示す)表示から細い長方形(アクティブ状態を示す)の表示に変化します。ライフラインは、Partner1 が最初のメッセージを送信した後も、引き続きアクティブです。アクティブであるため、Partner1 は、次の手順で示すように、別のメッセージの送信など、他のタスクを実行できます。
このサンプルで送信されるメッセージはすべて、ハブ経由でルーティングされます。WaiterPlugIn というロジック プラグインがハブのフィルタ チェーンに追加されています。ハブを経由してメッセージがルーティングされると、WaiterPlugIn クラスの process メソッドが実行されます。process メソッドは、送信されるメッセージの対象となる受信側をチェックします。対象となる受信側が Partner2 の場合、process は 15 秒間スリープします。それ以外の場合は、直ちにメッセージを送信します。図5-1 に示す例では、Partner1 から Partner2 へ送信された 1 つ目のメッセージは、15 秒間遅延されます。
このサンプルの 2 つ目のメッセージと、すべての応答メッセージは、ハブを経由してルーティングされます。このハブで、WaiterPlugIn の process メソッドがメッセージに対して実行されます。宛先が Partner2 ではないため、これらのメッセージは各々、遅延することなくハブを通過します。これらのメッセージの、ハブ フィルタ ロジック プラグインを介してのルーティングは、図5-1 には示されていません。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |