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

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

ユーザー定義ノードの追加および接続

メッセージ・フロー・アプリケーション開発時に Message Broker Java™ API を使ってユーザー定義ノードを追加し、他のノードにユーザー定義ノードを接続します。

ユーザー定義ノードを追加および接続するために必要なコードは、組み込みノードやサブフロー・ノードで必要なコードと異なります。

ユーザー定義ノード用の Java コードを記述する場合、以下の情報に注意を払ってください。
  • ユーザー定義ノードは、GenericNode クラスのインスタンスによってサポートされます。 ユーザー定義ノードをメッセージ・フローに追加するには、GenericNode のインスタンスを作成し、メッセージ・フロー・インスタンスに追加します。
  • ユーザー定義ノードの既存のインスタンスを検索するには、getNodeByName() を呼び出して、返されたオブジェクトを GenericNode オブジェクトにキャストします。
  • ユーザー定義ノードで定義されたターミナルが、この API で自動的に使用可能になることはありません。 GenericNode クラスのインスタンスを作成する場合、入出力ターミナルがリストされることはありません。 メソッド getInputTerminals()getOutputTerminals() は空のリストを返します。
  • GenericNode の入力ターミナルを取得するには、getInputTerminal() を呼び出し、汎用ノード上の既存のターミナル名を渡します。 このメソッドにより、入力ターミナルが返され、汎用ノードを含んでいるメッセージ・フロー・オブジェクトでそれが使用可能になります。 把握しているターミナル名を指定して getInputTerminal() を使用した後、getInputTerminals() を使用すると、この入力ターミナルが返されます。
  • GenericNode の出力ターミナルを取得するには、getOutputTerminal() を呼び出し、汎用ノード上の既存のターミナル名を渡します。 このメソッドにより、出力ターミナルが返され、汎用ノードを含んでいるメッセージ・フロー・オブジェクトでそれが使用可能になります。 把握しているターミナル名を指定して getOutputTerminal() を使用した後、getOutputTerminals() を使用すると、この出力ターミナルが返されます。
以下の例は、ユーザー定義ノードをメッセージ・フローに追加し、それを組み込みノードに接続する方法を示しています。
  1. MQInput ノードが作成され、メッセージ・フローに追加されます。
  2. GenericNode クラスを使ってユーザー定義ノードが作成され、メッセージ・フロー・オブジェクトに追加されます。
  3. MQInput の静的出力ターミナルが変数 outputTerminal に割り当てられます。
  4. ユーザー定義ノードの入力ターミナルは、把握しているターミナル名 In を指定した getInputTerminal() メソッドにより、変数 inputTerminal に割り当てられます。
  5. connect() メソッドを使用してノードが接続されます。
  6. コードの最後のセクションでは、ユーザー定義ノード・インスタンスの getInputTerminals() メソッドを使用することにより、入力ノードがメッセージ・フローで使用できるようになったことを示します。
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);

MQInputNode mqinNode = new MQInputNode();
mqinNode.setNodeName("My Input Node");
mqinNode.setQueueName("IN");
mf1.addNode(mqinNode);

GenericNode myNode = new GenericNode("MyUserDefinedNode");
myNode.setNodeName("MyNode");
mf1.addNode(myNode);

OutputTerminal outputTerminal = mqinNode.OUTPUT_TERMINAL_OUT;
InputTerminal inputTerminal = myNode.getInputTerminal("In");
mf1.connect(outputTerminal, inputTerminal);

InputTerminal[] inputTerminals = myNode.getInputTerminals();
System.out.println("Input terminals on my node:");
for (int i = 0; i < inputTerminals.length; i++) {
   InputTerminal inputTerminal = inputTerminals[i];
   System.out.println(inputTerminal.getName());
} 
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

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


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