1.6. Request Timing 機能でハングした要求のスレッドダンプコレクションの制御

Request Timing 機能(requestTiming-1.0)は、要求の期間が設定されたしきい値を超えた場合に診断情報を提供します。時間の経過と共に要求を監視する手段を提供します。この機能は、処理が遅いリクエストを自動的に検出して、詳細な診断情報(警告メッセージ、スレッドスタック、およびスレッドダンプの作成)を提供します。

Request Timing 機能でハングリクエストが検出されると、警告メッセージがメッセージログファイルに書き込まれ、リクエスト中に発生したイベントのダンプが書き込まれます。それまでは、3 つのスレッドダンプのセットが開始し、1 分は離れます。3 つのスレッドダンプが完了すると、新しい要求がハングしている場合にのみさらに 3 つのスレッドダンプのセットが作成されます。

一部の運用チームでは、長期に認識される要求のパフォーマンスオーバーヘッドにより、多くのスレッドダンプが生成されたくないものもあります。以前の Open RUN リリースでは、スレッドダンプの生成を無効にするオプションがありませんでした。

21.0.0.4 では、Request Timing 機能はスレッドダンプを収集するかどうかを制御します。新しい enableThreadDumps Request Timing server configuration 属性を false に設定すると、スレッドダンプはハングアップ要求時に作成されません。EnableThreadDumps が true に設定されている、または指定されていない場合は、スレッドダンプは引き続き作成されます。

新しい Request Timing server configuration 属性は、以下のように server.xml で設定できます。

<requestTiming includeContextInfo="true" slowRequestThreshold="120s" hungRequestThreshold="10s" sampleRate="1" enableThreadDumps="false"></requestTiming>`

enableThreadDumps サーバー 設定属性は 以下のように組み込みリクエスト Timing サブ要素 <servletTiming/> または <jdbcTiming/> で使用することもできます。

<requestTiming includeContextInfo="true" slowRequestThreshold="120s" hungRequestThreshold="10s" sampleRate="1">
    <servletTiming appName="MyApp" servletName="MyServletApp" slowRequestThreshold="100s" hungRequestThreshold="5s" enableThreadDumps="false"/>
</requestTiming>`
注記

server.xml ファイルの組み込み <servletTiming/> または <jdbcTiming/> 設定 により、<requestTiming/> で定義された遅延およびハング要求しきい値が上書きされ ます

Request Timing 機能の詳細は、以下のドキュメントを参照してください。