問題
状況によっては、Javaアプリのスタックトレースが含まれていない、APM UIの エラートレース が表示されることがあります。
解決策
状況に応じて、以下のトラブルシューティングの手順に従ってください。
原因
500
エラーを返すということは、アプリケーションサーバ自身がエラーを検出し、HTTPS 500
ステータスコードを設定したことを意味します。
- エラー状態がアプリケーション・ロジックで検出され処理された場合、例外オブジェクトは存在せず、したがってスタックもありません。
- ある時点で例外オブジェクトがあったとしても、レスポンスに
500
のステータスを設定したアプリケーションコードによって内部的に処理されていた場合、その例外は Java エージェントからは見えません。Java エージェントが報告するために利用できるスタックはありません。
スタック・トレースが報告される場合、アプリケーション・サーバ・ロジック内で捕捉および処理されなかった例外に起因するエラーです。Javaエージェントは、監視対象のトランザクション中に処理されなかった例外を発見したため、スタックトレースを報告します。
しかし、 500
のエラーについては、アプリケーションサーバがエラーを処理してからステータスコードを設定しているため、スタックトレースは表示されません。アプリケーションコード自体はスタックトレースを保持しません。