point-to-point メッセージがリモート・メッセージ・ポイントを経由してルーティングされている場合、そのメッセージがサービス統合バスの宛先に到着しない理由を調査するために実行できる一連の検査があります。
このタスクについて
このタスクは、point-to-point メッセージが到着しない理由の調査の一部として実行する必要があります。
このタスクでは、メッセージがリモート・メッセージ・ポイントを経由してルーティングされている point-to-point メッセージング・シナリオにおいて、メッセージのフローを調査する方法について説明します。
以下の図では、バスには、3 つのメッセージング・エンジン、ME1、ME2 および ME3 が含まれています。
プロデューサー・アプリケーションは ME1 に接続され、コンシューマー・アプリケーションは ME3 に接続されています。
メッセージは ME1 で生成され、ME2 を経由して ME1 から ME3 にルーティングされます。
このシナリオで関係するのは ME1 と ME2 だけです。ME1 は、ME2 によりホストされるメッセージ・ポイントを表すリモート・メッセージ・ポイントをホストします。ME1 は、プロデューサー・アプリケーションが接続されたメッセージング・エンジンで、ME2 は、キュー・ポイントをホストしているメッセージング・エンジンです。
これらのメッセージング・エンジンは、以下のステップで参照されます。
図 1. リモート・メッセージ・ポイントを使用した point-to-point メッセージ生成
手順
- をクリックして、ME1 のプロパティーを表示します。
- ME1 の「ランタイム」タブで、「[リモート・メッセージ・ポイント] リモート・キュー・ポイント」をクリックし、ME2 のキュー・ポイントを表すリモート・キュー・ポイントをクリックします。「現在のアウトバウンド・メッセージ数」フィールドの値を確認します。
- 現行アウトバウンド・メッセージの数がゼロより大きい場合、メッセージは生成されていますが、ME2 で受信されていない可能性があります。
- 2 つのメッセージング・エンジンが相互に通信可能であるか確認します。
サービス統合のトラブルシューティング: バス内の 2 つのメッセージング・エンジン間通信の検査を参照してください。
- キュー上で以前のメッセージを探します。
以前のメッセージがあり、その一部またはすべてが ME2 に対するものである場合は、少し待ってからビューを最新表示します。
- 以下のように、テスト・メッセージの状態を検査します。
- テスト・メッセージの状況が「送信の保留」である場合、
メッセージは送信されるのを待っています。ME2 がメッセージを受信していない可能性があります。
以下の確認を行ってください。
- テスト・メッセージの状況が「確認応答の保留」である場合、
メッセージの送信は完了していますが、ME2 がメッセージを受信していないか、
メッセージを処理していません。送信キューにおいてテスト・メッセージの前にコミット中状態のメッセージがないことを確認し、次に少し待ってからキュー・ポイントを再度検査して、テスト・メッセージが到着しているか確認します。コミット中状態でトラップされたメッセージがある場合は、以下のポイントを参照することによりこの問題を解決します。
- テスト・メッセージ (または他のメッセージ) が「コミット中」状態にある場合、
そのメッセージは未解決のトランザクションに含まれています。データベースなどのリソース・マネージャーがハングした可能性があります。
リソース・マネージャーにおける問題を解決してください。
問題が解決しない場合は、メッセージの「トランザクション ID」をメモに記録し、をクリックして、トランザクション・サービスの一般プロパティーを表示します。「検討」リンクを使用して、「グローバル ID」がメッセージのトランザクション ID と一致するトランザクションを解決します。
- 完了したアウトバウンド・メッセージの数がゼロより大きい場合、メッセージは生成され ME2 により処理されていますが、テスト・メッセージは現れていません。
プロデューサー・アプリケーションを再実行して、ME1 上の完了したアウトバウンド・メッセージの数が増加することを確認します (完了したアウトバウンド・メッセージ数が増加する前に、活動中のアウトバウンド・メッセージ数が増加することを確認できます)。
- その数が増加しない場合は、メッセージが ME1 で生成されていません。
プロデューサー・アプリケーションが、このメッセージング・エンジンに接続されていることを確認します
(アプリケーションが接続されているメッセージング・エンジンの判別を参照してください)。
- その数が増加する場合は、メッセージは ME2 に到着していますが、コンシューム済みであるか、例外の宛先に送信されたか、または期限切れになっています。
コンシューマーが存在するか確認して、事前確認を再度実行します。
- 現行および完了メッセージの数が両方ともゼロである場合は、関連する事前確認を再度実行することにより、プロデューサー・アプリケーションがこの宛先へのメッセージを生成しているか確認します。
次のタスク
問題が解決されない場合は、IBM 技術員に連絡してください。