WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

CORBARequest ノードのためのメッセージの作成

CORBARequest ノード用に XML メッセージを使用すること、または別のメッセージ・フロー・ノードを使用してメッセージを作成することができます。

始める前に:

CORBARequest ノードで、メッセージ・フローを作成および構成したことを確認します。 その手順については、CORBARequest ノードでのメッセージ・フローの開発を参照してください。

CORBARequest ノードでは、入力メッセージが必要です。 そのノードでは、別のノードからの XML メッセージを使用することも、ComputeJavaCompute、または PHPCompute ノードを使用してメッセージを作成することもできます。 着信メッセージにメッセージ・モデルがある場合、Mapping ノードを使用すると、CORBARequest ノードに送信するメッセージを作成できます。 着信メッセージ・ツリーは DataObject ドメインになければならず、ツリー内のエレメントは呼び出している IDL インターフェースと一致する必要があります。 DataObject ドメインのメッセージの物理表現は XML であり、アプリケーションの構成メッセージ本文は以下の例のようになります。

CORBARequest ノードによって送信される要求を形成するためのデータの取得元になる受信メッセージ・ツリー内での場所を指定することができます。 「要求」タブの「データのロケーション」プロパティーを使用して、ロケーションを指定します。 デフォルト値は $Body です。

  1. CORBARequest ノードに送信するメッセージの本体に含める必要のあるデータを判別します。
  2. CORBARequest ノードに送信する必要のあるメッセージの最上位エレメント (interface.operationName) を指定します。
  3. 各 in および inout パラメーターの子を指定します。 out パラメーターには、値を渡す必要はありません。

以下の例は、メッセージ・フローから受け取ることのできる XML および ESQL を示しています。

in、inout、および out パラメーターの混合

以下に示すのは、IDL ファイルの例です。
interface 

ExampleOne {
	enum completion{YES, NO, MAYBE};
 	typedef sequence<string> stringlist;
	struct stringobject {string member;};

	string exampleOneOperation(in string inparamA, inout string inoutparamA, out string outparamA);
	completion exampleOneOperationB(in stringlist inparamB, inout stringobject inoutparamB, out completion outparamB);
}
この IDL ファイルには、in パラメーター、inout パラメーター、および out パラメーターを持つ、2 つの操作に対するインターフェースが含まれます。

最初の操作 exampleOneOperationA では、最上位タイプ ExampleOne.exampleOneOperationA の下で、inparamA パラメーターと inoutparamA パラメーターを渡す必要があります。 outparamA パラメーターは、渡す必要がありません。

以下に示すのは、XML の例です。
<ExampleOne.exampleOneOperationA>
	<inparamA>your value</inparamA>
	<inoutparamA>your value</inoutparamA>
</ExampleOne.exampleOneOperationA>
以下に示すのは、ESQL の例です。
SET  
OutputRoot.DataObject."ExampleOne.exampleOneOperationA".inparamA = 'yourvalue';

SET  
OutputRoot.DataObject."ExampleOne.exampleOneOperationA".inoutparamA = 'yourvalue'; 
2 番目の操作 exampleOneOperationB では、最上位タイプ ExampleOne.exampleOneOperationB の下で、inparamB パラメーターと inoutparamB パラメーターを渡す必要があります。 outparamB パラメーターは、渡す必要がありません。
以下に示すのは、XML の例です。
<ExampleOne.exampleOneOperationB>
	<inparamB><item>your value</item></inparamB>
	<inoutparamB><member>your value</member></inoutparamB>
</ExampleOne.exampleOneOperationB>
以下に示すのは、ESQL の例です。
SET  
OutputRoot.DataObject."ExampleOne.exampleOneOperationB".inparamB.item = 'your value';

SET  
OutputRoot.DataObject."ExampleOne.exampleOneOperationB".inoutparamB.member = 'your value'

in および inout パラメーターのみ

以下に示すのは、IDL ファイルの例です。
interface 

ExampleTwo {
	enum completion{YES, NO, MAYBE};
	typedef sequence<string> stringlist;
	struct stringobject {string member;};

	string exampleTwoOperationA(in string inparamA, inout string inoutparamA);
	completion exampleTwoOperationB(in stringlist inparamB, inout stringobject inoutparamB);

}
この IDL ファイルには、in および inout パラメーターだけを持つ 2 つの操作が含まれます。 out パラメーターが除去されて in および inout パラメーターだけが存在するようになっても、渡す必要のあるパラメーターに変更は生じません。

最初の操作 exampleTwoOperationA を呼び出すには、最上位タイプ ExampleTwo.exampleTwoOperationA の下で、inparamAinoutparamA を渡します。

以下に示すのは、XML の例です。
<ExampleTwo.exampleTwoOperationA> 
	<inparamA>your value</inparamA>
	<inoutparamA>your value</inoutparamA>
</ExampleTwo.exampleTwoOperationA>
以下に示すのは、ESQL の例です。
SET  
OutputRoot.DataObject."ExampleTwo.exampleTwoOperationA".inparamA = 'yourvalue';

SET  
OutputRoot.DataObject."ExampleTwo.exampleTwoOperationA".inoutparamA = 'yourvalue'; 
2 番目の操作 exampleTwoOperationB を呼び出すには、最上位タイプ ExampleTwo.exampleTwoOperationB の下で、inparamBinoutparamB を渡します。
以下に示すのは、XML の例です。
<ExampleTwo.exampleTwoOperationB>
	<inparamB><item>your value</item></inparamB>
	<inoutparamB><member>your value</member></inoutparamB>
</ExampleTwo.exampleTwoOperationB>
以下に示すのは、ESQL の例です。
SET  
OutputRoot.DataObject."ExampleTwo.exampleTwoOperationB".inparamB.item = 'your value';

SET  
OutputRoot.DataObject."ExampleTwo.exampleTwoOperationB".inoutparamB.member = 'your value';

パラメーターがないか、または out パラメーターのみ

操作にパラメーターが含まれないか、または out パラメーターのみの場合は、メッセージの本体に何も入れる必要がありません。 CORBARequest ノードは、着信メッセージを読み取りません。

次にCORBARequest ノードからの応答の処理で説明されているように、CORBARequest からの応答を処理します。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:48:34


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | bc22450_