Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 拡張編


7.6.4 Explicitメモリブロックの拡張

ここでは,Explicitメモリブロックの拡張処理について説明します。拡張処理が実行されると,Explicitメモリブロック内の空き領域が増加します。

〈この項の構成〉

(1) 実行契機

拡張は,JavaVMによって次の契機で実行されます。

明示管理ヒープ機能APIを使用したアプリケーションからExplicitメモリブロックにオブジェクトを配置しようとした場合に,オブジェクトのサイズが配置対象のExplicitメモリブロックの空き領域を超えるとき,拡張処理が実行されます。

Explicitメモリブロックの初期化後,初めてExplicitメモリブロックにオブジェクトを配置するときには,必ず拡張処理が実行されます。

なお,J2EEサーバがオブジェクトを配置するExplicitメモリブロックでは,Webコンテナによって初期化と最初のオブジェクトの配置が実行されます。実行契機については,「7.4 J2EEサーバ利用時にExplicitヒープに配置されるオブジェクト」を参照してください。

(2) 実行される内容

JavaVMによって,OSからメモリ領域が確保され,該当のExplicitメモリブロックが拡張されます。メモリ領域の確保には,OSのメモリ確保APIが使用されます。

ただし,次の場合,拡張処理が実行されません。

Explicitメモリブロックの拡張が失敗した場合のサブ状態の変化について,要因ごとに次の表に示します。

表7‒6 Explicitメモリブロックの拡張が失敗した場合のサブ状態の変化

拡張が失敗した要因

サブ状態の変化

OSからのメモリ領域の確保に失敗した

「Enable」→「Disable」

Explicitヒープの最大値の制限を超えて拡張しようとした

「Enable」→「Disable」

サブ状態が「Disable」になっているExplicitメモリブロックを拡張しようとした

変化しません。