• 検索結果がありません。

5 Messaging API サンプル ( 非推 奨)

ドキュメント内 b2bsampl.book (ページ 95-133)

5 Messaging API サンプル ( 非推

こ のサンプルは、 2 つ目の方法を使用し ます。

WebLogic Integration Messaging API では、 2 つの メ ッ セージ配信 メ カニズム をサ

ポー ト し ています。

同期-送信側アプ リ ケーシ ョ ンは、 公開 さ れた メ ッ セージが宛先に配信 さ れ る ま で待機し ます。 メ ッ セージング シ ス テムは、 メ ッ セージ公開処理の結果 が判明し た後、 アプ リ ケーシ ョ ンに制御を返し ます。 アプ リ ケーシ ョ ンは、

タ イ ムア ウ ト が発生する か、 処理ス テータ スが判明する かのど ち ら かが起こ る ま で待機し ます。

遅延同期- メ ッ セージ公開後に、 制御がアプ リ ケーシ ョ ンに返 さ れます。 ア プ リ ケーシ ョ ンには XOCPMessageTokenオブジ ェ ク ト が返さ れます。 アプ リ ケーシ ョ ンは後でそのオブジ ェ ク ト にア ク セ ス し て メ ッ セージ配信のス テー タ ス をチェ ッ ク でき ます。

こ のサンプルでは、 同期および遅延同期の双方の メ ッ セージ配信 メ カニズムの使 い方を例示し ています。

Messaging API

サンプルには、 ビ ジネス メ ッ セージ を送信する 3 社の ト レーデ ィ ング パー ト ナ (Partner1、 Partner2、 および Partner3) が含まれます。 Messaging

API

サンプルには、 4 つの Java ソ ース コー ド フ ァ イ ル (MdmTp1Servlet.java、 MdmTp2Servlet.java、MdmTp2Servlet.java、 および WaiterPlugin.java) が含まれます。

WaiterPlugIn.java

コー ド の詳細については、 5-7 ページの 「実行フ ローの ト

レース」 を参照し て く だ さ い。

フ ァ イル 含まれる ソース コー ド

MdmTp1Servlet.java

Partner1

ト レーデ ィ ン グパー ト ナ MdmTp2Servlet.java

Partner2

ト レーデ ィ ン グパー ト ナ MdmTp3Servlet.java

Partner3

ト レーデ ィ ン グパー ト ナ WaiterPlugIn.java ハブ フ ィ ル タ ロ ジ ッ クプ ラ グ イ ン

Messaging API サンプルを実行する前 に

Messaging API サンプルを実行する前に、 次の手順を実行し ます。

1. 1-3

ページの 「サンプルの実行前の作業」 に記載の手順に従います。

2.

サンプル WebLogic Server への接続が妨げ られない よ う にブ ラ ウ ザのプ ロ キ シ設定を確認し ます。 Web ブ ラ ウザ コ ン フ ィ グ レーシ ョ ンの要件の詳細に ついては、 『WebLogic Integration の起動、 停止およびカ ス タ マ イ ズ』 の

「WebLogic Integration 管理ツール と 設計ツール」 の 「Web ブ ラ ウザ コ ン フ ィ グ レーシ ョ ンの要件」 を参照し て く だ さ い。

Messaging API サンプルの実行

Messaging API

サンプルを実行する には、 次の手順を実行し ます。

1.

WLI_HOME (WebLogic Integration を イ ン ス ト ールし たデ ィ レ ク ト リ ) に移動 し ます。

cd WLI_HOME

Windows の例

WebLogic Platform

c:\beaデ ィ レ ク ト リ に イ ン ス ト ール し た場合は、

WLI_HOME

のパスは、

c:\bea\weblogic700\integration と な り ます。

UNIX の例

WebLogic Platform

を /home/me/beaデ ィ レ ク ト リ に イ ン ス ト ールし た場 合は、WLI_HOMEのパスは、/home/me/bea/weblogic700/integration

と な り ます。

2. WebLogic Integration

の上位レベルの環境変数を設定するには、 お使いのプ

ラ ッ ト フ ォームに合った setenvス ク リ プ ト を実行し ます。

Windows

の場合 setEnv

UNIX

の場合 . setenv.sh

3.

プ ラ ッ ト フ ォームに合わせて適切な手順を実行し、RunSamplesス ク リ プ ト を起動し ます。

Windows:

[

ス ター ト |プ ロ グ ラ ム| BEA WebLogic Platform 7.0 | WebLogic

Integration 7.0

| Integration Examples | Start Server and Launch Examples

(with dataloader)]

を選択し ます。

UNIX:

a)

PATH環境変数に、 Netscape 実行フ ァ イ ル (netscape) が格納 さ れた デ ィ レ ク ト リ が含まれている こ と を確認し ます。

b)

RunSamplesス ク リ プ ト を実行し ます。

cd $SAMPLES_HOME/integration/samples/bin RunSamples

警告:

UNIX

シ ス テムの場合、netscape実行フ ァ イ ルが入っ たデ ィ レ ク ト リ がPATH環境変数に含まれてい る必要があ り ます。 環 境変数に含まれていない場合は、RunSamples ス ク リ プ ト の実 行時にサンプル起動ページが表示さ れません。 サンプル起動 ページは、 現在RunSamplesス ク リ プ ト が実行 さ れ てい る マシ ンで

Netscape

ブ ラ ウ ザを起動し て、 次の

URL

を入力する と 起 動 さ れ ます。

http://localhost:7001/index.html

4.

RunSamplesス ク リ プ ト のコ ン フ ィ グ レーシ ョ ン セ ク シ ョ ンが実行済みであ る こ と が検知 さ れる と 、 次のプ ロ ンプ ト が表示さ れます。

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 の イ ン ス タ ン ス をバ ッ ク グ ラ ウ ン ド プ ロセ ス と し て開始し 、 サンプル起動ページが表示さ れます。

5.

サンプル起動ページの左ペイ ンで、 [ サンプル アプ リ ケーシ ョ ン ] の下の

[Messaging API]

の リ ン ク を ク リ ッ ク し ます。 Messaging API サンプルのオプ シ ョ ン メ ニ ューは、 右ペイ ンに表示さ れています。

必要に応じ て、 3 つのオプシ ョ ンをすべて表示で き る よ う にブ ラ ウザの画面をサ イ ズ変更し て く だ さ い。

6. 1

つ目のオプシ ョ ン ([Partner3 ス ポーク を参加 させる ]) を ク リ ッ ク し ます。

こ のオプシ ョ ンについての メ ッ セージが表示 さ れる まで待機し 、 次のス テ ッ プに進んで く だ さ い。

7. 2

つ目のオプシ ョ ン ([Partner2 ス ポーク を参加 させる ]) を ク リ ッ ク し ます。

こ のオプシ ョ ンについての メ ッ セージが表示 さ れる まで待機し 、 次のス テ ッ プに進んで く だ さ い。

8. 3

つ目のオプシ ョ ン ([Partner1 ス ポーク を参加 させて リ ク エス ト を送信 ])

を ク リ ッ ク し ます。

Messaging API サンプルが正常に実行 さ れる と 、 右ペイ ンの下部に次の出力

結果が表示さ れます。

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.

9.

こ の と き、 さ ら に多 く の B2B サンプルを実行する場合は、 サンプル起動ペー ジを開いた状態で、 WebLogic Server のサンプル イ ン ス タ ン スの実行を続行 し ます。

こ の時点で、 こ れ以上 B2B サンプルを実行し ない場合は、 各プ ラ ッ ト フ ォームに合わせて適切な手順を実行し、 WebLogic Server の現在の イ ン ス タ ン ス を シ ャ ッ ト ダ ウ ン し ます。

Windows:

cd %SAMPLES_HOME%\config\integration\samples stopWebLogic

UNIX:

cd $SAMPLES_HOME/config/integration/samples stopWebLogic

実行フ ローの ト レース

以下は、 Messaging API サンプルの実行フ ローを ト レースする手順です。

1.

RunSamplesス ク リ プ ト が起動 さ れ、 次の結果が得 られます。

a. WebLogic Server

のサンプル イ ン ス タ ン スが開始さ れます。

b.

ブ ラ ウザが開き、 サンプル起動ページが表示さ れます。

c.

サンプル起動ページで [Messaging API] リ ン ク を ク リ ッ クする と 、

[Messaging API]

サンプル ページが表示 さ れます。 こ のページには、

[Partner3

スポー ク を参加さ せる ]、 [Partner2 スポー ク を参加さ せる ]、 お よび [Partner1 ス ポーク を参加 させて リ ク エス ト を送信 ] の 3 つのオプ シ ョ ンが表示 さ れます。

2. [Partner3

スポー ク を参加さ せる ] オプシ ョ ン を選択する と 、 次の結果が得ら れます。

a. HTTP

要求が MdmTp3サーブレ ッ ト にポ ス ト さ れます。

b.

MdmTp3は、MdmTp3Servlet.javaか ら doPost メ ソ ッ ド を呼び出し ます。

c.

doPostメ ソ ッ ド は、 ト レーデ ィ ン グ パー ト ナ Partner3 の

XOCPApplication

を起動し ます。

3. [Partner2

スポー ク を参加さ せる ] オプシ ョ ンが選択 さ れる と 、 次の結果が得 られます。

a. HTTP

要求が MdmTp2サーブレ ッ ト にポ ス ト さ れます。

b.

MdmTp2は、MdmTp2Servlet.javaか ら doPostメ ソ ッ ド を呼び出し ます。

c.

doPostメ ソ ッ ド は、 ト レーデ ィ ン グ パー ト ナ Partner2 の

XOCPApplication を起動し ます。

4. [Partner1

スポー ク を参加さ せて リ ク エス ト を送信 ] オプシ ョ ン を選択する と 、 次の結果が得 られます。

a. HTTP

要求が MdmTp1サーブレ ッ ト にポ ス ト さ れます。

b.

MdmTp1は、MdmTp1Servlet.javaか ら doPost メ ソ ッ ド を呼び出し ます。

c.

doPostメ ソ ッ ド は、 ト レーデ ィ ン グ パー ト ナ Partner1 の

XOCPApplication

を起動し ます。

d.

doPostは 1 つ目の メ ッ セージ を送信し、 3 つの ト レーデ ィ ング パー ト ナ

(Partner1、 Partner2、 および Partner3) 間の一連の メ ッ セージ を ト リ ガ し ます。 こ のサンプルの 3 つの ト レーデ ィ ン グ パー ト ナはすべて、

VerifierHubChannel 配信チャ ネルの使用 と verifierConversation 会話への参

加のために、 WebLogic Integration リ ポジ ト リ に登録し ます。 Partner1 は、

要求側の ロールで リ ポジ ト リ に登録 さ れます。 Partner2 および Partner3 は 応答側の ロールで登録さ れます。

次の図は、 こ れ らのビ ジネス メ ッ セージの送受信が最も行われやすい タ ス ク 順序を示し ます。 正確な タ ス ク 順序はタ イ ミ ングに関係し てお り 、 Java 仮想 マシ ンのス レ ッ ド の ス ケジ ュー リ ングに応じ て異な り ます。

5-1 ト レーデ ィ ングパー ト ナ間のメ ッ セージの流れを示す会話図

次の タ ス ク順序では、 図 5-1 内の対応する文字で示 さ れる各手順の詳細につ いて説明し ます。

a. Partner1

は Partner2 へテキ ス ト FIRST MESSAGEを伴 う メ ッ セージ を送信 し ます。 こ の メ ッ セージは、 遅延同期送信 さ れます。 し たがっ て、

Partner1

は Partner2 か ら の返信を待機も ブ ロ ッ ク もせず、 引き続き タ ス ク の実行を行います。

メ ッ セージの、 ブ ロ ッ ク を行わない と い う 局面は、 Partner1 のオブジ ェ ク ト ラ イ フ ラ イ ンに よ っ て、 会話図 (図 5-1) に示さ れています。 Partner1 が初めてア ク テ ィ ブになっ た と き、 Partner1 の ラ イ フ ラ イ ンは、 破線 (非 ア ク テ ィ ブ状態を示す) 表示か ら細い長方形 (ア ク テ ィ ブ状態を示す)

の表示に変化し ます。 ラ イ フ ラ イ ンは、 Partner1 が最初の メ ッ セージを送 信し た後も、 引き続き ア ク テ ィ ブです。 ア ク テ ィ ブであ る ため、 Partner1 は、 次の手順で示すよ う に、 別の メ ッ セージの送信な ど、 他のタ ス ク を 実行で き ます。

こ のサンプルで送信 さ れる メ ッ セージはすべて、 ハブ経由でルーテ ィ ン グ さ れます。WaiterPlugIn と い う ロ ジ ッ ク プ ラ グ イ ンがハブのフ ィ ル タ チェーンに追加 さ れています。 ハブを経由し て メ ッ セージがルーテ ィ ング さ れる と 、WaiterPlugInク ラ スの process メ ソ ッ ド が実行 さ れま す。process メ ソ ッ ド は、 送信さ れ る メ ッ セージの対象 と な る受信側を チェ ッ ク し ます。 対象 と な る受信側が Partner2 の場合、processは 15 秒 間ス リ ープ し ます。 それ以外の場合は、 直ちに メ ッ セージ を送信し ます。

図 5-1 に示す例では、 Partner1 か ら Partner2 へ送信 さ れた 1 つ目の メ ッ セージは、 15 秒間遅延 さ れます。

b. 1

つ目の メ ッ セージがまだ処理さ れてい る間に、 Partner1 はテキ ス ト SECOND MESSAGE と 共に 2 つ目の メ ッ セージを Partner3 へ送信し ます。 こ の メ ッ セージは、 同期送信 さ れます。 し たがっ て、 Partner1 は Partner3 が 返る ま でブ ロ ッ ク ま たは待機し てか ら でなければ、 他の タ ス ク を処理で

き ません。

c.

図 5-1 で、 こ の Partner1 のブロ ッ ク がどの よ う に表現さ れてい る かに注意 し て く だ さ い。 2 つ目の メ ッ セージが同期し ている ため、 Partner1 の ラ イ フ ラ イ ンは、 Partner1 が 2 つ目の メ ッ セージ を送信後に、 細い長方形 (ア ク テ ィ ブ状態を示す) の表示か ら破線 (非ア ク テ ィ ブ状態を示す) 表示 に変化し ます。 非ア ク テ ィ ブ状態への変化は、 メ ッ セージが送信 さ れ、

Partner3

に よ っ て確認応答があ る まで Partner1 は、 再びア ク テ ィ ブにな っ て他の タ ス ク を実行で き る よ う にな ら ない と い う こ と です。

こ のサンプルの 2 つ目の メ ッ セージ と 、 すべての応答 メ ッ セージは、 ハ ブを経由し てルーテ ィ ン グ さ れます。 こ のハブで、WaiterPlugIn

process メ ソ ッ ド が メ ッ セージに対し て実行 さ れます。 宛先が Partner2 ではないため、 こ れ ら の メ ッ セージは各々、 遅延する こ と な く ハブを通

ドキュメント内 b2bsampl.book (ページ 95-133)

関連したドキュメント