cosminexus.xmlでは,次の項目を設定できます。
cosminexus.xmlについては,マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「2. アプリケーション属性ファイル(cosminexus.xml)」を参照してください。
同時に実行できるスレッド数や,スレッドの保存期間などの属性は,cosminexus.xmlに定義します。設定するパラメタを次に示します。
リモートインタフェースを使用した非同期メソッド呼び出しの処理結果を取得するためのFuture<V>オブジェクトの保持期間に,タイムアウトを設定します。タイムアウトを設定しないと,アプリケーションが停止するまで処理結果が保持されるため,処理結果が多い場合などにはメモリ使用量が増え,OutOfMemoryエラーが発生するおそれがあります。これを防ぐために,結果を保持する期間の最大値を設定します。設定するパラメタを次に示します。
削除後に,削除された処理結果を示すFuture<V>オブジェクトのメソッドを呼び出した場合,文字列「KDJE43202-I」をメッセージに含むEJBExceptionがスローされます。例外メッセージに「KDJE43202-I」があるかどうかを確認して,タイムアウトによる削除が発生したかどうかを判断できます。
ただし,ローカルクライアントの場合,Future<V>オブジェクトはローカルに保持されているため,例外は発生しないで,メソッドは正常に終了します。
次に,非同期呼び出しを実行する場合のJavaヒープの見積もり,およびJavaヒープのチューニングをするときのポイントについて示します。
リモートインタフェースを使用して非同期処理を呼び出した場合,処理結果を示すFuture<V>オブジェクトは,EJBコンテナが動作するJavaVM上で保持されます。このため,リクエスト数が多い場合,JavaVMでOutOfMemoryエラーが発生しないように留意する必要があります。
非同期呼び出しを実行する場合,非同期メソッドごとに必要なJavaヒープサイズを次の見積もり式によって見積もってください。
一つの非同期メソッドで必要なJavaヒープサイズ(単位:キロバイト)
=(1+A)×(B+C+1)×D
非同期メソッドごとに算出した値を合計して,全体として必要なJavaヒープサイズを割り出してください。
タイムアウト時間のチューニングでは,次のポイントを考慮して検討してください。