Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 保守/移行編


9.16.1 概要

finalize()メソッドでOS資源の解放処理を定義しているアプリケーションでは,ファイナライズ処理が滞留して,OS資源の解放遅れが発生することがあります。ファイナライズ滞留解消機能を使用すると,JavaVM内でファイナライズ処理が滞留している状態を検知して,滞留しているファイナライズ処理を解消します。

ファイナライズ滞留解消機能では,ファイナライズ滞留を検知するために,Java起動時にFinalizerThreadを監視するファイナライズ処理監視スレッドを生成します。FinalizerThreadは,Java実行時に常に1つあり,オブジェクトのfinalize()メソッドを1つずつ処理するスレッドです。

ファイナライズ処理監視スレッドでは,FinalizerThreadで処理しているオブジェクトを定期的に監視します。次の条件を満たす場合,ファイナライズ処理が滞留していると見なして,新たにファイナライズスレッドを生成します。

FinalizerThreadとファイナライズスレッドの両方で,ファイナライズ処理を実行して,滞留しているファイナライズ処理の解消を促します。なお,ファイナライズスレッドは,ファイナライズキューが空になると終了します。