変更の始まり

WebSphere MQ メッセージ・グループ内のメッセージの受信

MQInput ノードを構成して、WebSphere® MQ メッセージ・グループ内にあるメッセージを受信できます。

MQInput ノード上の以下のプロパティーによって、WebSphere MQ メッセージ・グループ内のメッセージ処理を制御します。

ご使用のメッセージ・フローが、送信アプリケーションによって割り当てられた順序でグループ・メッセージを受信するようにするには、「論理順序」を選択します。このオプションを選択しない場合、グループの一部として送信されるメッセージは、事前に決定された順序では受信されません。 このプロパティーは、MQI の MQGMO の MQGMO_LOGICAL_ORDER オプションにマップされます。 このプロパティーのマップ先のオプションの詳細については、WebSphere MQ バージョン 6 インフォメーション・センター・オンライン の「Application Programming Reference」のセクション、または WebSphere MQ ライブラリー Web ページ のバージョン 5.3 ブックを参照してください。

「順序モード」プロパティーの「キュー順序」の値を指定すると、メッセージ・フローは、キュー属性で定義された順序でグループ内のメッセージを処理します。この順序は、メッセージが処理されるときに必ず維持されます。この動作は、「追加インスタンス」プロパティーがゼロに設定されているときに行われる動作と同じです。 メッセージ・フローは実行の単一スレッド上でメッセージを処理し、メッセージは、次のメッセージをキューから検索する前に処理が完了します。 この値を指定しないと、単一のメッセージ・フロー内の複数のスレッドで複数のメッセージを処理することが可能であり、コミットまたはロールバックのアクションを促すグループ内の最終メッセージが、そのグループの他のすべてのメッセージの後に処理が完了するという保証はありません。

メッセージ・フローの単一インスタンスだけが、送信アプリケーションによって割り当てられた順序でグループ・メッセージを処理するようにするには、「論理順序」を選択し、なおかつ「順序モード」プロパティーの値「キュー順序」を指定してください。

「すべてのメッセージが使用可能」を選択する場合、メッセージ検索および処理は、単一グループ内のすべてのメッセージが使用可能な場合にのみ行われます。つまり、グループ内のメッセージは、そのグループ内のメッセージすべてが入力キュー上に揃わないと受信されません。メッセージ・フローでグループ・メッセージを処理する必要がある場合には、このチェック・ボックスを選択することをお勧めします。このチェック・ボックスを選択しない場合、メッセージ・フローはメッセージが入力キューに到着すると受信します。グループ内のあるメッセージが入力キューに到着しないと、メッセージ・フローはその到着を待機して、到着するまでは別のメッセージの処理ができません。このプロパティーは MQI の MQGMO の MQGMO_ALL_MESSAGES_AVAILABLE オプションにマップされます。 このプロパティーのマップ先のオプションの詳細については、WebSphere MQ バージョン 6 インフォメーション・センター・オンライン の「Application Programming Reference」のセクション、または WebSphere MQ ライブラリー Web ページ のバージョン 5.3 ブックを参照してください。

「メッセージ・グループによるコミット」を選択すると、グループの最後のメッセージが受信および処理された後にのみ、メッセージ処理がコミットされます。このチェック・ボックスのチェックを外したままにしておく場合、それぞれのメッセージがメッセージ・フローを介して完全に伝搬されるごとに コミットが実行されます。 このプロパティーは「論理順序」を選択した場合のみ関係します。 このチェック・ボックスは「すべてのメッセージが使用可能」チェック・ボックスと一緒に選択するのが良いと言えます。そのようにすると、メッセージ・フローがグループ内のメッセージが入力キューに到着するのを無期限に待機するというリスクを避けて、同一作業単位でメッセージ・グループ全体が受信および処理されるからです。

グループ・メッセージを処理するメッセージ・フローが、使用できないメッセージを待機することがないようにするには、以下を実行してください。
  • グループ・メッセージの取得中には、複数のメッセージ・フローが同じ入力キューを読み取らないようにします。
  • グループ・メッセージを取得するフローの追加インスタンスをデプロイしないようにします。
  • メッセージ・グループ内で有効期限切れのメッセージの使用を避けます。
  • 有効期限が切れたメッセージを使用する場合には、すべてのメッセージの有効期限時刻を同じにするか、グループ内の最初のメッセージの有効期限をグループ内の他のメッセージより前に設定してください。グループ内の最初のメッセージが取得できないと、そのグループは論理順序では開始できません。

変更の始まり待機間隔中に到達しないグループ・メッセージをメッセージ・フローが待っている場合は、BIP2675 警告メッセージが発行されます。この時点以降、メッセージ・フローは常に次のグループ・メッセージの取り出しを試行し、次のグループ・メッセージが取り出されるまで他の入力メッセージを処理しません。変更の終わり

変更の始まりしたがって、予期されているグループ・メッセージが到達していなかったり有効期限が切れている場合は、メッセージ・フローを手動で停止し、不完全なメッセージ・グループを入力キューから消去しなければなりません。変更の終わり

メッセージ・フローは、グループ内のすべてのメッセージを一度の操作では受信できません。

「トランザクション・モード」プロパティーに「はい」または「いいえ」の値を指定すると、1 つのメッセージ内のすべてのセグメントが、単一のメッセージとしてメッセージ・フローで受信されます。結果として、メッセージ・フローはとても大きなメッセージを受信する可能があり、それによりブローカーでストレージ問題が生じる場合があります。 「トランザクション・モード」プロパティーで値 「自動」を指定すると、メッセージ・セグメントは個々のメッセージとして受信されます。

関連資料
MQInput ノード
関連情報
WebSphere MQ バージョン 6 インフォメーション・センター・オンライン
WebSphere MQ ライブラリー Web ページ
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009. All Rights Reserved.
最終更新 : 2009-02-13 10:23:01

ac25700_

変更の終わり