パブリッシュ/サブスクライブ・メッセージがサブスクリプションに到着しない理由の調査
パブリッシュ/サブスクライブ・メッセージがサービス統合バス上のサブスクリプションに到着しない理由を調査するために実行できる一連の検査があります。
始める前に
調査を開始する前に、以下の事前確認を実行します。
- 以下のようにして、プロデューサー・アプリケーションがメッセージを正しく生成しているか確認します。
- アプリケーションに障害またはランタイム・エラーがないことを確認します。
- 宛先の名前が正しいことを確認します。
- メッセージが生成されていることを確認します。
- メッセージの生成に使用されたトランザクションが、例外なくコミット済みであることを確認します。
- 以下のように、コンシューマー・アプリケーションがメッセージを正しくコンシュームしていることを確認します。
- アプリケーションが始動済みであることを確認します。
- サブスクリプションのトピックおよびセレクターが正しいことを確認します。 をクリックして、「トピック」および「セレクター」の各フィールドが、アプリケーションで指定されているトピックおよびセレクターと一致していることを確認します。
- セキュリティーが使用可能に設定されている場合は、送信されたメッセージを受信する権限がサブスクリプションに付与されているか確認します。 詳しくは、トピックのセキュリティーおよびメッセージング・セキュリティーを参照してください。
- プロデューサー・アプリケーションが、メッセージに短い有効期限を設定しているかどうか確認します。 設定している場合、メッセージが到着前に、または受信側のメッセージング・エンジンにより処理される前に消失している可能性があります。
- をクリックして、該当のバスの宛先を表示します。トピック・スペースをクリックし、「送信許可」および「受信許可」の各チェック・ボックスが選択されているか確認します。
- 関連する例外宛先を検査し、そこにメッセージが現れるかどうか確認します。 現れた場合は、メッセージに含まれている情報を使用して、それが例外宛先に到着した理由を解釈し、そのメッセージを処理するアプリケーション (またはメディエーション) を作成します。
- メッセージの信頼性を確認します。 信頼性がベスト・エフォートに設定されている場合は、通常の運用時でもシステムによりメッセージが廃棄される場合があります。 考えられる原因のリストについては、ベスト・エフォート非パーシスタント・メッセージが廃棄される理由の理解を参照してください。
- 例外があるか、エラー・ログを確認します。
このタスクについて
手順
- をクリックして、該当のバスの宛先を表示します。関連するトピック・スペースをクリックし、「メッセージ・ポイント」の下の「公開ポイント」をクリックします。 リストされている公開ポイントごとに、公開ポイントをクリックして 「ランタイム」>「サブスクリプション」をクリックし、ご使用のサブスクリプションを探します。ご使用のサブスクリプションがいずれの公開ポイントにもリストされていない場合は、コンシューマー・アプリケーションにエラーがあります。
- どのメッセージング・エンジンにプロデューサー・アプリケーションおよびコンシューマー・アプリケーションが接続されているかを判別します。アプリケーションが接続されているメッセージング・エンジンの判別を参照してください。
- プロデューサー・アプリケーションがコンシューマー・アプリケーションと同じメッセージング・エンジンに接続されている場合、メッセージはコンシューマーに対してローカルに生成されています。 プロデューサー・アプリケーションおよびコンシューマー・アプリケーションを再確認し、システム・ログにエラーがないか確認します。
- プロデューサー・アプリケーションが コンシューマー・アプリケーションとは異なるメッセージング・エンジンに接続されている場合、 メッセージはリモート公開ポイントを経由してルーティングされています。このシナリオを調査するには、パブリッシュ/サブスクライブ・メッセージがリモート・メッセージ・ポイントを経由してサブスクリプションにより受信されていない理由の調査を参照してください。