「WebSphere MQ のメッセージ相関関係子: 持続性のない要求/応答」パターンの要求フロー
要求フローはトランザクション・フローとして実行されます。
要求フローで受信されるメッセージは、次のような方法で処理されます。
- メッセージ・フローでメッセージを受け取ったとき、MQMD ヘッダーに応答先キューが含まれているかどうか検査されます。
このフィールドがブランクの場合はエラーが生成されます。
- メッセージ・フローがメッセージを受け取ると、メッセージの MQMD ヘッダーのコピーが作成され、それが変更されて相関 ID がメッセージ ID に設定されます。
元の応答アドレスを保持するために、メッセージ・ヘッダーの内容がキューに保存されます。
保存済みヘッダーの中で相関 ID を設定することにより、ヘッダーが検索されて要求側への応答に追加されるときに、正しい値が確実に設定されるようになり、相関 ID による要求側の検索が可能になります。
- メッセージ・フローには RequestProcessor というサブフローが含まれています。
このサブフローには Passthrough ノードだけが含まれるため、どんな処理も実行されません。
パターン・インスタンスでこのサブフローをカスタマイズして、パターンの構造を変えずに独自の処理を追加することができます。
- 着信メッセージの MQMD ヘッダーが変更されて、要求側の応答先キュー・マネージャーと応答先キューが、応答メッセージ・フローの入力ノードのアドレスに置き換えられます。
- メッセージがプロバイダー・アプリケーションに転送されます。
- ロギング用のログ・サブフローをメッセージ・フローに含めることができます。
ログ・サブフローを含めるように (または除外するように) パターンを構成できます。
- ロギングが必要ではない場合、プロバイダー・キューにメッセージを書き込んだ後にメッセージ・フローが正常に終了し、トランザクションがコミットされます。
- また、メッセージ・フローには、エラー処理用のエラー・サブフローも含まれます。
- 要求側アプリケーション、メッセージ・フロー、またはプロバイダー・アプリケーションでタイムアウトが発生した場合、非永続メッセージはタイムアウトになります。