7.8.1 自動解放機能が無効な場合のExplicitメモリブロックの明示解放予約
Explicitメモリブロックの解放は,解放予約と実際の解放処理の2段階に分けて実行されます。複数のExplicitメモリブロックの解放をそれぞれ予約しておき,解放処理を一斉に実行することで,効率良く処理できます。
- 〈この項の構成〉
(1) 実行契機
アプリケーションで任意のオブジェクトをExplicitヒープに配置した場合,Explicitメモリブロックの解放予約は,次のどれかの明示管理ヒープ機能APIを呼び出すことで実行できます。
-
ExplicitMemory.reclaim(ExplicitMemory... areas)
-
ExplicitMemory.reclaim(ExplicitMemory area)
-
ExplicitMemory.reclaim(ExplicitMemory area0,ExplicitMemory area1)
-
ExplicitMemory.reclaim(Iterable<ExplicitMemory> areas)
-
BasicExplicitMemory.finalize()
J2EEサーバが配置したオブジェクトについては,Webコンテナによって解放が予約されます。実行契機については,「7.4 J2EEサーバ利用時にExplicitヒープに配置されるオブジェクト」を参照してください。
(2) 実行される内容
(1)で示したAPIが呼び出されると,APIの引数で指定されたExplicitメモリブロック領域が解放予約された状態になります。
なお,APIの利用方法が誤っている場合,APIレベルの例外が発生することがあります。詳細は,マニュアル「アプリケーションサーバ リファレンス API編」の「10.7 例外クラス」を参照してください。