Browsing WebSphere MQ Queues サンプルは、メッセージ・フローがキュー上のメッセージをブラウズする方法、およびそれらのメッセージをキューから除去することなくデータを取り出す方法を例示しています。サンプルでは、そのメッセージをキューから取得すべきかどうかを判断するために、ブラウズを用いてメッセージの内容を調べます。メッセージを取得すると、そのメッセージはキューから除去されますが、ブラウズの場合にはメッセージがキューに残されます。
サンプルには、BrowseGet と呼ばれる単一のメッセージ・フローが含まれています。メッセージ・フローは入力キューにあるメッセージをブラウズし、次いで StaffNumber フィールドの値に基づいてそのメッセージを経路指定します。次いで、メッセージ・フローはキューからそのメッセージを除去し、第 2 のキューにそのメッセージを置きます。
BrowseGet メッセージ・フローは、以下のタスクを行います。
下の図は BrowseGet メッセージ・フローを示しています。
MQBROWSE_IN という MQInput ノードが、MQBROWSE_IN キューから XML メッセージを読み取ります。このノードには「ブラウズのみ」オプションが指定されているので、メッセージは入力キューから除去されません。
StaffNumber=2 と呼ばれる Route ノードが、XPath 式を次のように実行します。
$Body/Staff/StaffNumber="2"|Match
メッセージの StaffNumber に 2 という値が含まれていない場合は、メッセージ・フローの処理は停止し、そのメッセージは入力キューに残ります。メッセージの StaffNumber に 2 という値が含まれている場合、メッセージ・フローの処理は次のノードに進んで行きます。
MQBROWSE_IN と呼ばれる MQGet ノードが入力キューからメッセージを取得します。入力キューから除去されるのが現行メッセージであることを確認するために、ノードの「メッセージ ID で取得」プロパティーが検査されます。
MQBROWSE_OUT と呼ばれる MQOutput ノードが、そのメッセージを MQBROWSE_OUT キューに置きます。
Browsing WebSphere MQ Queues サンプルで使用されるテスト・メッセージは、企業の従業員詳細情報を含んでいる単純な XML メッセージです。
staffmsg1:
<Staff> <StaffNumber>1</StaffNumber> <NameInfo> <LastName>Smith</LastName> <FirstName>Jack</FirstName> </NameInfo> </Staff>
staffmsg2:
<Staff> <StaffNumber>2</StaffNumber> <NameInfo> <LastName>Doe</LastName> <FirstName>Jane</FirstName> </NameInfo> </Staff>