Hitachi

Cosminexus V11 アプリケーションサーバ & BPM/ESB基盤 概説


4.4.3 リソース排他状態でのFullGC実行を抑止

JavaVMでは,空きメモリが一定のサイズ以下になると,FullGCが実行されます。FullGCが実行されると,そのJavaVM上での処理はすべて中断されます。バッチサーバ上のアプリケーションがリソースを排他状態で使用している時にFullGCが実行されると,排他したままで処理が中断されます。この場合,同じリソースを使用したいオンライン処理の実行も中断されてしまいます。

バッチアプリケーションの実行環境では,バッチサーバ上でFullGCを実行するタイミングを制御できます。この制御では,リソースが排他されていないタイミングを見計らってFullGCを実行して,不要なオブジェクトを解放します。これによって,意図しないタイミングでFullGCが実行されることを抑止できます。

バッチサーバでのFullGC制御の概要を次の図に示します。

図4‒13 バッチサーバでのFullGC制御の概要

[図データ]

1.でFullGC制御によって,メモリ使用量がしきい値を超えたことが検知されます。バッチサーバでは,使用していたリソースを解放したことを2.で確認してから,3.のFullGCを実行します。