パフォーマンス・モニター統計のトラブルシューティング
このタスクを使用して、メッセージ駆動型 Bean をクラスター環境にデプロイする際の、 エンタープライズ Bean カウンター MethodLevelCallCount と MessageCount とのパフォーマンス・モニター統計の不整合を解決します。
このタスクについて
このタスクでは、クラスター環境でのメッセージ駆動型 Bean のパフォーマンス・モニター統計における不整合に対処します。 トレース内のいくつかのメッセージが、 Performance Monitoring Infrastructure(PMI)/Tivoli Performance Viewer (TPV) の出力統計には一致しているが、 メッセージ駆動型 Bean からのログ・メッセージに一致していないことがあります。 これは、エンタープライズ Bean カウンター MethodLevelCallCount が、メッセージ駆動型 Bean の場合に、 その他の Bean の場合とは異なる意味を持つことによって発生します。
- EJB コンテナーの呼び出し前の処理。 これにより、メッセージ配信の実行環境が整います。
- キューからのメッセージの除去、およびそのメッセージを処理するためのメッセージ駆動型 Bean メソッドの呼び出し。
- EJB コンテナーの呼び出し後の処理。 これにより、実行環境がクリーンアップされます (例えば、 呼び出し前の処理中に開始したトランザクションのコミットまたはロールバックなど)。
複数のサーバーまたはスレッドが、メッセージをキューから除去し、それをメッセージ駆動型 Bean に送達しようとしている場合、別のサーバーまたはスレッドが既にそのメッセージを処理しているために、そのキューが空で、送達するものがないことが、ステップ 2 で、メッセージング・サービスにより検出される場合があります。このような場合、メッセージ駆動型 Bean メソッドは、ステップ 2 では呼び出されません。 したがって、MethodLevelCallCount は、メッセージが処理のためにメッセージ駆動型 Bean に送達された回数に一致しません。 この場合、MethodLevelCallCount は、メッセージ配信の試行回数を示しています。 また、エンタープライズ Bean カウンター MessageCount は、メッセージがメッセージ駆動型 Bean に正常に送達された回数を示しています。
手順
- 単一サーバー環境では、MethodLevelCallCount と MessageCount は同じになるはずです。
- マルチサーバー環境 (または複数のコンシューマーが存在する環境) では、MethodLevelCallCount および MessageCount が異なることがあります。この差が大きい場合は、メッセージング・システムを再調整する必要があります。