JMS ノードのサンプルはメッセージ・フローのサンプル・アプリケーションであり、 外部 JMS プロバイダーに対して JMSInput ノードを JMS コンシューマーとして使用し、JMSOutput ノードを JMS プロデューサーとして使用する方法が例示されます。 このサンプルでは WebSphere MQ を JMS プロバイダーとして使用します。
サンプルには 2 つのメッセージ・フローがあります。1 つは外部 JMS プロバイダーへのトランスポート・ゲートウェイを提供し、もう 1 つは JMS コンシューマーとしてブローカー・フローを使用する方法を示します。このメッセージ・フローは、さらに、JMS から WebSphere MQ のメッセージへの変換のために提供されているブローカー・ノードの使用法も示します。各メッセージ・フローの Compute ノードには詳細な ESQL コメントが付いていて、必要な動作を実現するために何が実行されたかを明確に説明しています。
このフローは、WebSphere MQ から外部 JMS プロバイダーへのトランスポート・ゲートウェイを提供することを表しています。ブローカー・ツールキット・テスト・クライアントは、WebSphere MQ メッセージをフローに送信するために使用されます。
このフローでは XML メッセージを使用します。メッセージは、フローを移動する際に Compute ノードで変更を加えられ、<Timestamp> エレメントに現在日付が追加されます。
<Parent>
<First>1</First>
<SaleList>
<Invoice>
<Timestamp>2005-01-01 10:10:59</Timestamp>
.
.
.
</Invoice>
</SaleList>
<Last>Test</Last>
</Parent>
そしてメッセージは JMS プロデューサーのメッセージになって、後続の JMSInput_Publication フローが取得できるように JMS 宛先に入れられます。
このフローでは、JMSInput ノードは外部 JMS プロバイダーに対する JMS コンシューマーです。受信したメッセージは、パブリケーションへ変換され、ブローカーの Publication ノードによって発信されます。
JMSInput ノードは JMS 宛先から XML メッセージを受け取り、それを Compute ノードに渡します。Compute ノードは 更新/在庫 というトピックの新しいパブリケーション・メッセージを作成し、メッセージ全体を新しい送り状として発行します。それから、JMS サブスクライバー Java アプリケーションがパブリケーション・メッセージの受信と表示を行うために提供されます。
サンプルの実行に使用するテスト・メッセージは、顧客の送り状明細が入った次のような XML メッセージです。 前述のように、最初は空のタイム・スタンプ・フィールドは、メッセージ・フローの中で現在時刻に更新されます。
<Parent>
<First>1</First>
<SaleList>
<Invoice>
<Timestamp></Timestamp>
<Initial>T</Initial>
<Initial>D</Initial>
<Surname>Montana</Surname>
<Item><Code>00</Code>
<Code>01</Code><Code>02</Code>
<Description>Twister</Description>
<Category>Games</Category>
<Price>00.30</Price>
<Quantity>01</Quantity>
</Item>
<Item>
<Code>02</Code><Code>03</Code><Code>01</Code>
<Description>The Times Newspaper</Description>
<Category>Books and Media</Category>
<Price>00.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>00.50</Balance>
<Currency>Sterling</Currency>
</Invoice>
</SaleList>
<Last>Test</Last>
</Parent>