MQInput ノードを構成して、WebSphere® MQ メッセージ・グループ内にあるメッセージを受信できます。
ご使用のメッセージ・フローが、送信アプリケーションによって割り当てられた順序でグループ・メッセージを受信するようにするには、「論理順序」を選択します。 このオプションを選択しない場合、グループの一部として送信されるメッセージは、事前に決定された順序では受信されません。 このプロパティーは、MQI の MQGMO の MQGMO_LOGICAL_ORDER オプションにマップされます。 このプロパティーをマップするオプションの詳細は、WebSphere MQ バージョン 7 インフォメーション・センター・オンラインの「アプリケーション・プログラミング・リファレンス」セクションに記載されています。
「順序モード」プロパティーの「キュー順序」の値を指定すると、メッセージ・フローは、キュー属性で定義された順序でグループ内のメッセージを処理します。この順序は、メッセージが処理されるときに必ず維持されます。 この動作は、「追加インスタンス」プロパティーがゼロに設定されているときに行われる動作と同じです。 メッセージ・フローは実行の単一スレッド上でメッセージを処理し、メッセージは、次のメッセージをキューから検索する前に処理が完了します。 この値を指定しないと、単一のメッセージ・フロー内の複数のスレッドで複数のメッセージを処理することが可能であり、コミットまたはロールバックのアクションを促すグループ内の最終メッセージが、そのグループの他のすべてのメッセージの後に処理が完了するという保証はありません。
メッセージ・フローの単一インスタンスだけが、送信アプリケーションによって割り当てられた順序でグループ・メッセージを処理するようにするには、「論理順序」を選択し、なおかつ「順序モード」プロパティーの値「キュー順序」を指定してください。
「すべてのメッセージが使用可能」を選択する場合、メッセージ検索および処理は、単一グループ内のすべてのメッセージが使用可能な場合にのみ行われます。 つまり、グループ内のメッセージは、そのグループ内のメッセージすべてが入力キュー上に揃わないと受信されません。 メッセージ・フローでグループ・メッセージを処理する必要がある場合には、このチェック・ボックスを選択することをお勧めします。 このチェック・ボックスを選択しない場合、メッセージ・フローはメッセージが入力キューに到着すると受信します。グループ内のあるメッセージが入力キューに到着しないと、メッセージ・フローはその到着を待機して、到着するまでは別のメッセージの処理ができません。 このプロパティーは MQI の MQGMO の MQGMO_ALL_MESSAGES_AVAILABLE オプションにマップされます。 このプロパティーをマップするオプションの詳細は、WebSphere MQ バージョン 7 インフォメーション・センター・オンラインの「アプリケーション・プログラミング・リファレンス」セクションに記載されています。
「メッセージ・グループによるコミット」を選択すると、グループの最後のメッセージが受信および処理された後にのみ、メッセージ処理がコミットされます。 このチェック・ボックスのチェックを外したままにしておく場合、それぞれのメッセージがメッセージ・フローを介して完全に伝搬されるごとに コミットが実行されます。 このプロパティーは「論理順序」を選択した場合のみ関係します。 このチェック・ボックスは「すべてのメッセージが使用可能」チェック・ボックスと一緒に選択するのが良いと言えます。そのようにすると、メッセージ・フローがグループ内のメッセージが入力キューに到着するのを無期限に待機するというリスクを避けて、同一作業単位でメッセージ・グループ全体が受信および処理されるからです。
待機間隔中に到達しないグループ・メッセージをメッセージ・フローが待っている場合は、BIP2675 警告メッセージが発行されます。 この時点以降、メッセージ・フローは常に次のグループ・メッセージの取り出しを試行し、次のグループ・メッセージが取り出されるまで他の入力メッセージを処理しません。
したがって、予期されているグループ・メッセージが到達していなかったり有効期限が切れている場合は、メッセージ・フローを手動で停止し、不完全なメッセージ・グループを入力キューから消去しなければなりません。
メッセージ・フローは、グループ内のすべてのメッセージを一度の操作では受信できません。
「トランザクション・モード」プロパティーに「はい」または「いいえ」の値を指定すると、1 つのメッセージ内のすべてのセグメントが、単一のメッセージとしてメッセージ・フローで受信されます。 結果として、メッセージ・フローはとても大きなメッセージを受信する可能があり、それによりブローカーでストレージ問題が生じる場合があります。 「トランザクション・モード」プロパティーで値 「自動」を指定すると、メッセージ・セグメントは個々のメッセージとして受信されます。