Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

14.6.1 ガーベージコレクション制御機能とは

ガーベージコレクションとは,プログラムが使用し終わったメモリ領域を自動的に回収して,ほかのプログラムが利用できるようにするための技術です。ガーベージコレクションはJavaVMが実行します。

ガーベージコレクションには処理時間が掛かります。また,ガーベージコレクション実行中は,JavaVM上のすべてのプログラム処理が中断するため,ガーベージコレクションを適切に実行できるかどうかが,システムの処理性能に大きく影響します。

バッチサーバでは,バッチアプリケーションが長時間リソースを排他するのを回避するため,ガーベージコレクション制御機能を提供しています。ガーベージコレクション制御機能とは,リソースが排他されていないときに明示的にフルガーベージコレクションを実行するための機能です。ガーベージコレクション制御機能の利用によって,リソースの排他中にフルガーベージコレクションが発生するのを回避できます。

ガーベージコレクション制御機能について,例を使用して説明します。

ガーベージコレクション制御機能を使用していない場合,バッチ処理と並行してオンライン処理を実行する環境では,次の図に示す問題があります。

図14-8 ガーベージコレクション制御機能を使用していない場合

[図データ]

この図では,バッチアプリケーションでのリソース排他中に,フルガーベージコレクションが発生しています。これによって,バッチアプリケーションはリソースを排他したまま処理が中断します。また,この間にオンライン処理から排他中のレコードが参照されると,オンライン処理もバッチサーバのフルガーベージコレクションが終了するまで中断します。

ガーベージコレクション制御機能を使用すると次の図のようになります。

図14-9 ガーベージコレクション制御機能を使用している場合

[図データ]

図のように,フルガーベージコレクションの実行要求が出たときに,バッチアプリケーションでリソースを排他していると,フルガーベージコレクションの実行は待ち状態になります。

レコードの排他が解除されると,バッチサーバでフルガーベージコレクションが実行されます。また,オンライン処理もリソースへのアクセスができるようになります。これによって,バッチアプリケーションでの長時間のリソース排他を回避できます。