Cosminexus 機能解説
ガーベージコレクションとは,プログラムが使用し終わったメモリ領域を自動的に回収して,ほかのプログラムが利用できるようにするための技術です。ガーベージコレクションはJavaVMが実行します。
ガーベージコレクションには処理時間が掛かります。また,ガーベージコレクション実行中は,JavaVM上のすべてのプログラム処理が中断するため,ガーベージコレクションを適切に実行できるかどうかが,システムの処理性能に大きく影響します。
バッチサーバでは,バッチアプリケーションが長時間リソースを排他するのを回避するため,ガーベージコレクション制御機能を提供しています。ガーベージコレクション制御機能とは,リソースが排他されていないときに明示的にフルガーベージコレクションを実行するための機能です。ガーベージコレクション制御機能の利用によって,リソースの排他中にフルガーベージコレクションが発生するのを回避できます。
ガーベージコレクション制御機能について,例を使用して説明します。
ガーベージコレクション制御機能を使用していない場合,バッチ処理と並行してオンライン処理を実行する環境では,次の図に示す問題があります。
図14-8 ガーベージコレクション制御機能を使用していない場合
この図では,バッチアプリケーションでのリソース排他中に,フルガーベージコレクションが発生しています。これによって,バッチアプリケーションはリソースを排他したまま処理が中断します。また,この間にオンライン処理から排他中のレコードが参照されると,オンライン処理もバッチサーバのフルガーベージコレクションが終了するまで中断します。
ガーベージコレクション制御機能を使用すると次の図のようになります。
図14-9 ガーベージコレクション制御機能を使用している場合
図のように,フルガーベージコレクションの実行要求が出たときに,バッチアプリケーションでリソースを排他していると,フルガーベージコレクションの実行は待ち状態になります。
レコードの排他が解除されると,バッチサーバでフルガーベージコレクションが実行されます。また,オンライン処理もリソースへのアクセスができるようになります。これによって,バッチアプリケーションでの長時間のリソース排他を回避できます。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.