キューがフルである理由の調査
キューがフルになった場合、そのキューに対してメッセージを生成しようとすると、例外が戻されます。 キューがフル状態になるのは、通信リンクの切断やコンシューマー・アプリケーションでのエラーなどが原因であることもありますが、最も可能性の高い理由は、プロデューサー・アプリケーションが、コンシューマー・アプリケーションのコンシューム可能速度を上回る速度でメッセージを生成しているということです。
このタスクについて
手順
- サービス統合 ->「バス」 -> 「bus_name」 -> [宛先リソース (Destination resources)]「宛先 (Destinations)」をクリックして、フルになっているキューの名前をクリックします。
- 「[関連項目] アプリケーション・リソース・トポロジー ([Related Items] Application resources topology)」をクリックし、「この宛先のアプリケーション・リソース」パネルを使用して、その宛先を使用しているアプリケーションおよび JMS リソースの構成を調べます。
このパネルを使用すると多くの関連リソースを概観できるようになるため、問題の原因を見つけやすくなります。
- サービス統合 ->「バス」 -> 「bus_name」 -> [宛先リソース (Destination resources)]「宛先 (Destinations)」 -> 「queue_name」 -> [メッセージ・ポイント (Message points)]「キュー・ポイント (Queue points)」 ->「queue_point_name」をクリックして、「ランタイム」タブ上の「現行メッセージの深さ」の値を確認します。この値が絶え間なく増加する場合は、プロデューサー・アプリケーションのペースがコンシューマーを上回っています。 注: 宛先に複数のキュー・ポイントがある場合、またはそれが仲介されている場合は、メッセージの送信先または利用元であるそれぞれのメッセージ・ポイントごとに、以下の確認を実行します。
- どのメッセージング・エンジンにプロデューサー・アプリケーションおよびコンシューマー・アプリケーションが接続されているかを判別します。
- プロデューサー・アプリケーションおよびコンシューマー・アプリケーションが別々のメッセージング・エンジンに接続されている場合、メッセージはリモート・キュー・ポイントを介してルーティングされています。
プロデューサーのメッセージング・エンジンで「リモート・キュー・ポイント」をクリックし、次にコンシューマーのキュー・ポイントを表すキュー・ポイントをクリックします。
現在のアウトバウンド・メッセージの数を確認します。
現在のメッセージ数が少ない場合、リモート・キュー・ポイントに問題はありません。
コンシューマー・アプリケーションが開始され、エラーなしでメッセージが利用されているか確認します。
現在のメッセージ数がメッセージの高しきい値に近づいている場合は、以下の確認を実行します。
- 2 つのメッセージング・エンジンが相互に通信可能であるか確認します。
サービス統合のトラブルシューティング: バス内の 2 つのメッセージング・エンジン間通信の検査を参照してください。メッセージング・エンジンが通信できる場合は、メッセージを生成する速度を落とします。
メッセージング・エンジンが通信できない場合は、障害を解決します。
通信が回復した後にメッセージのバックログの処理で問題が発生した場合、そのバックログに重要なメッセージが含まれていないのであれば、そのリモート・メッセージ・ポイント上のすべてのメッセージを削除することを考慮してみてください。
メッセージを削除するには、関連するリモート・メッセージ・ポイントを選択して、「Delete all messages」をクリックします。
注: メッセージは削除されると、リカバリーできません。
- メッセージが「コミット中」状態でトラップされていないことを確認します。 その状態でトラップされた場合は、データベースなどのリソース・マネージャーがハングしています。 リソース・マネージャーにおける問題を解決してください。 問題が解決しない場合は、メッセージの「トランザクション ID」をメモし、「サーバー」 ->「サーバー・タイプ(Server Types)」 ->「WebSphere Application Server (WebSphere application servers)」 -> 「server_name」 ->「ランタイム」 > [追加プロパティー]「トランザクション・サービス」をクリックして、トランザクションの数を含む、トランザクション・サービスの一般プロパティーを表示します。「検討」リンクを使用して、「グローバル ID」がメッセージのトランザクション ID と一致するトランザクションを解決します。
- 2 つのメッセージング・エンジンが相互に通信可能であるか確認します。
サービス統合のトラブルシューティング: バス内の 2 つのメッセージング・エンジン間通信の検査を参照してください。メッセージング・エンジンが通信できる場合は、メッセージを生成する速度を落とします。
メッセージング・エンジンが通信できない場合は、障害を解決します。
通信が回復した後にメッセージのバックログの処理で問題が発生した場合、そのバックログに重要なメッセージが含まれていないのであれば、そのリモート・メッセージ・ポイント上のすべてのメッセージを削除することを考慮してみてください。
メッセージを削除するには、関連するリモート・メッセージ・ポイントを選択して、「Delete all messages」をクリックします。
サブトピック
アプリケーションが接続されているメッセージング・エンジンの判別
アプリケーションがメッセージの受信または生成に失敗する場合、問題のトラブルシューティングの一部として、その接続先のメッセージング・エンジンを知る必要がある場合があります。サービス統合のトラブルシューティング: バス内の 2 つのメッセージング・エンジン間通信の検査
サービス統合システムにおける問題をトラブルシューティングしている場合、2 つのメッセージング・エンジンが相互に通信可能か、確認が必要な場合があります。
関連情報:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tju_queue_full
ファイル名:tju_queue_full.html