メッセージ・フローの作成
Video Rental サンプルのメッセージ・フローが提供されていますが、
メッセージ・フローを独自に作成したい場合は、次のようにします。
-
Video Message Flows という名前の新しいメッセージ・ブローカー・プロジェクトを作成します。
その方法については、メッセージ・ブローカー・プロジェクトの作成を参照してください。
- Video_Test という名前の新規メッセージ・フローを作成します。
その方法については、メッセージ・フローの作成を参照してください。
- メッセージ・フロー・エディターで、次の表にリストされているノードを追加して名前変更します。 手順については、WebSphere Message Broker 資料の
メッセージ・フロー・ノードの追加を参照してください。
パレット・ドロワー |
ノード・タイプ |
ノード名 |
WebSphere MQ |
MQInput |
VIDEO_XML_IN |
WebSphere MQ |
MQInput |
VIDEO_TDS_IN |
WebSphere MQ |
MQInput |
VIDEO_CWF_IN |
WebSphere MQ |
MQOutput |
VIDEO_OUT |
WebSphere MQ |
MQOutput |
VIDEO_FAIL |
Transformation |
Compute |
Extract Fields |
- 次の表に示されているように、ノードを接続します。
手順については、WebSphere Message Broker 資料の
メッセージ・フロー・ノードの接続を参照してください。
ノードが正しく接続されたかどうかを確認するには、Video メッセージ・フローについての図を
参照してください。
ノード名 |
ターミナル |
接続先のノード |
VIDEO_XML_IN |
Failure |
VIDEO_FAIL |
Out |
Extract Fields |
Catch |
VIDEO_FAIL |
VIDEO_TDS_IN |
Failure |
VIDEO_FAIL |
Out |
Extract Fields |
Catch |
VIDEO_FAIL |
VIDEO_CWF_IN |
Failure |
VIDEO_FAIL |
Out |
Extract Fields |
Catch |
VIDEO_FAIL |
Extract Fields |
Out |
VIDEO_OUT |
- 次の表に示されているように、ノードのプロパティーを構成します。
この表に代替値が示されていなければ、すべてのプロパティーに関してデフォルト値を受け入れます。
手順については、WebSphere Message Broker 資料の
メッセージ・フロー・ノードの構成を参照してください。
VIDEO_XML_IN ノード、VIDEO_TDS_IN ノード、および VIDEO_CWF_IN ノードの場合、メッセージ・セットの ID プロパティーを設定する必要があります。すべてのメッセージ・セットに固有の ID があります。作成したメッセージ・セットの ID を検索するには、次のようにします。
- 「ブローカー開発」ビューで、ナビゲーション・ツリーを「Video Message Flows」>「Video Message Set」>「messageSet.mset」の順に展開します。
- 「messagetSet.mset」をダブルクリックして、開きます。
- 固有なメッセージ・セット ID が、「メッセージ・セット ID」フィールドに表示されます。
ノード名 |
ページ |
プロパティー |
値 |
VIDEO_XML_IN |
基本 |
キュー名 |
VIDEO_XML_IN |
入力メッセージ構文解析 |
メッセージ・ドメイン |
MRM |
入力メッセージ構文解析 |
メッセージ・セット |
(固有なメッセージ・セット ID を選択) |
入力メッセージ構文解析 |
メッセージ・タイプ |
Customer |
入力メッセージ構文解析 |
メッセージ・フォーマット |
XML1 |
VIDEO_TDS_IN |
基本 |
キュー名 |
VIDEO_TDS_IN |
入力メッセージ構文解析 |
メッセージ・ドメイン |
MRM |
入力メッセージ構文解析 |
メッセージ・セット |
(固有なメッセージ・セット ID を選択) |
入力メッセージ構文解析 |
メッセージ・タイプ |
Customer |
入力メッセージ構文解析 |
メッセージ・フォーマット |
TDS1 |
VIDEO_CWF_IN |
基本 |
キュー名 |
VIDEO_CWF_IN |
入力メッセージ構文解析 |
メッセージ・ドメイン |
MRM |
入力メッセージ構文解析 |
メッセージ・セット |
(固有なメッセージ・セット ID を選択) |
入力メッセージ構文解析 |
メッセージ・タイプ |
Customer |
入力メッセージ構文解析 |
メッセージ・フォーマット |
CWF1 |
VIDEO_FAIL |
基本 |
キュー名 |
VIDEO_FAIL |
Extract Fields |
基本 |
ESQL モジュール |
Video_Test_Compute |
VIDEO_OUT |
基本 |
キュー名 |
VIDEO_OUT |
- 「Video Message Flows」プロジェクトで、Video_Test.esql ファイルをダブルクリックして、ESQL エディターで開きます。以下の ESQL コード・モジュールを ESQL ファイルにコピー、および貼り付けし、ファイルを保存します。詳しくは、WebSphere Message Broker 資料の ESQL の開発を参照してください。
CREATE COMPUTE MODULE Video_Test_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
-- This ESQL extracts some of the fields from the input message
-- just to demonstrate the references used for fields in different
-- namespaces
SET OutputRoot = InputRoot;
DECLARE addr NAMESPACE 'http://www.ibm.com/AddressDetails';
DECLARE brw NAMESPACE 'http://www.ibm.com/BorrowedDetails';
DECLARE I INTEGER;
SET OutputRoot.MRM.Name = InputRoot.MRM.Name;
SET OutputRoot.MRM.addr:Address = InputBody.addr:Address;
IF InputRoot.MRM.ID ='P' THEN
SET OutputRoot.MRM.PassportNo = InputBody.PassportNo;
ELSEIF InputRoot.MRM.ID ='D' THEN
SET OutputRoot.MRM.DrivingLicenseNo=InputBody.DrivingLicenseNo;
ELSEIF InputRoot.MRM.ID ='C' THEN
SET OutputRoot.MRM.CreditCardNo=InputBody.CreditCardNo;
END IF;
SET I=1;
WHILE I<= CARDINALITY(InputBody.brw:Borrowed.*[]) DO
SET OutputRoot.MRM.brw:Borrowed[I].VideoTitle = InputBody.brw:Borrowed[I].VideoTitle;
SET OutputRoot.MRM.brw:Borrowed[I].DueDate=InputBody.brw:Borrowed[I].DueDate + INTERVAL '1' DAY;
SET OutputRoot.MRM.brw:Borrowed[I].Cost=InputBody.brw:Borrowed[I].Cost*2;
SET I=I+1;
END WHILE;
SET OutputRoot.MRM.Magazine = InputBody.Magazine;
RETURN TRUE;
END;
END MODULE
- メッセージ・フローを保存します。
これで Video メッセージ・フローが作成されました。
サンプルのホームに戻る