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

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

JavaCompute ノードの Out および Alternate ターミナルへのメッセージの伝搬

JavaCompute ノードには Out および Alternate という 2 つの出力ターミナルがあります。 したがって、ノードはフィルター・ノードおよびメッセージ変換ノードの両方として使用できます。メッセージを処理した後に、propagate() メソッドを使用してメッセージを出力ターミナルに伝搬します。

メッセージ・アセンブリーを Out ターミナルに伝搬するには、以下のメソッドを使用します。
out.propagate(assembly);
メッセージ・アセンブリーを Alternate ターミナルに伝搬するには、以下のメソッドを使用します。
alt.propagate(assembly);
同じ MbMessage オブジェクトを複数回伝搬する場合は、MBMessage オブジェクトの finalizeMessage() メソッドを呼び出して、メッセージの変更内容を JavaCompute ノードの下流で生成されるビット・ストリームに反映するようにします。以下に例を示します。
MbMessage outMessage = new MbMessage(inMessage);
MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly, outMessage);
...
newMsg.finalizeMessage(MbMessage.FINALIZE_NONE);
out.propagate(outAssembly);
...
newMsg.finalizeMessage(MbMessage.FINALIZE_NONE);
out.propagate(outAssembly);
JavaCompute ノードから何度も伝搬し、その都度新規 MbMessage を作成する場合は、次のコードを使用します。
MbOutputTerminal.propagate(MbMessageAssembly, true)
このコードによって、伝搬後にメッセージ・ツリーとパーサー・リソースがリカバリーされるので、次回 MbMessage が伝搬用に構成されるときにそれらのリソースが使用できるようになります。 大規模な入力メッセージを処理して複数の出力メッセージを伝搬するの例を参照してください。

このコードを使用するとき、メッセージ・ツリー・リソースは MbMessageAssembly 内の非読み取り専用 MbMessages 用に再利用されます。 結果として、メソッド MbMessage.clearMessage(true) が変更可能な各 MbMessage に対して呼び出されます。それで、それらの MbMessage は再度使用することはできません。

メッセージ・ツリーのフィールドが各 MbMessage についてローカルであった場合、または MbMessageAssembly 内の 3 つの MbMessage 間でのみ切り離しまたは接続された場合、パーサーも再利用できるようにリカバリーされます。 ただし、伝搬されなかった MbMessage にエレメントが切り離しまたは接続された場合、入力レコードの次回の反復でパーサーを再利用することはできません。

伝搬されなかったこのような MbMessage オブジェクトについては、メソッド MbMessage.clearMessage(true) を明示的に呼び出してから、次の入力レコードを処理してください。 このメソッドによって、パーサーの再利用ができるようになります。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

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


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