Enterprise JavaBeans 非同期メソッドをサポートするために使用される作業マネージャーの設定を変更するには、このページを使用します。
この管理コンソール・ページを表示するには、とクリックします。
「内部作業マネージャー・インスタンスを使用」オプションおよび「カスタム作業マネージャー・インスタンスを使用」オプションは互いに排他的です。
デフォルトの作業マネージャー・インスタンスを指定します。
この製品では、EJB 非同期メソッドをサポートする目的で内部作業マネージャー・インスタンスが提供されています。内部作業マネージャー・インスタンスは、基本的な EJB 非同期メソッド機能のために事前構成されていて、限定された構成設定を提供します。
非同期メソッド呼び出しの管理に内部作業マネージャー・インスタンスを使用する場合は、このボタンをクリックしてください。 これを選択すると、「カスタム作業マネージャー・インスタンスを使用」オプションは排除されます。
「内部作業マネージャー・インスタンスを使用」オプションはデフォルトです。代わりに、カスタム定義の作業マネージャー・インスタンスを使用できます。
カスタム定義の作業マネージャー・インスタンスを指定します。
カスタム作業マネージャー・インスタンスを定義すると、EJB 非同期メソッドのより高度な構成を設定できます。
あらかじめご使用の環境に最適になるように定義され、ご使用の環境に最適な方法で構成された作業マネージャー・インスタンスを使用できるようになります。
これを選択すると、「内部作業マネージャー・インスタンスを使用」オプションは排除されます。
非同期 EJB メソッドの実行に使用できるスレッドの最大数を指定します。デフォルトは 5 です。
作業要求キューのサイズを指定します。作業要求キューは、要求された非同期メソッドを、これらを実行するスレッドが使用可能になるまで保持するバッファーです。 デフォルトは 0 で、初期サイズがスレッドの最大数と最小数の中間にあたることを示しています。
スレッドの最大数と作業要求キュー・サイズ属性の合計は、使用できる進行中のメソッド要求の合計数です。
例えば、スレッド最大数が 5 に、作業要求キュー・サイズが 50 にそれぞれ設定されている場合、使用できる進行中のメソッド要求は 55 になります。
デフォルト値は 0 で、キュー・サイズはランタイム環境によって管理されることを示しています。ランタイムでは現在、maxThreads と 20 のうち、 より大きい値をキュー・サイズとして使用しています。
スレッド・プールが使い尽くされて、作業要求キューがフルになった場合にとるアクションを指定します。 デフォルトは BLOCK です。
FAIL に設定されていると、スレッドやキューの空きが使用可能になるまで待つ代わりに例外が発生します。
このオプションを使用して、開発時に長時間の非同期メソッドの実行が原因で発生するエラーを特定できる場合があります。 また、これを使用して、構成する必要のあるスレッド数とキュー・サイズを決定できる場合もあります。
BLOCK に設定されていると、非同期メソッドの実行を要求しているスレッドは、スレッドかキューが空くまで待ちます。
名前空間でカスタム定義された作業マネージャーを調べるのに使用される Java Naming and Directory Interface (JNDI) 名を指定します。
サーバーが、応答結果必要送信の非同期メソッドの各呼び出しのフューチャー・オブジェクトを保持する時間を指定します。 アプリケーションが指定された時間内に結果を取り出さない場合、サーバーは、メモリー・リークと OutOfMemory 例外の可能性を回避するために、そのメソッド呼び出しの結果を消去します。 オブジェクトをまったく消去しない場合は 0 を指定することができます。ただし、ゼロ値を指定することは、フューチャー・オブジェクトが決してタイムアウトにならず、参照される OutOfMemory 例外を引き起こす可能性のあるコードが不正確なプログラムからの保護ができなくなることを意味します。 デフォルト値は 86400 秒 (24 時間) です。
トラブルの回避: フューチャー・オブジェクトに get() メソッドあるいは get(time) メソッドを呼び出すと、作業が完了するかあるいは指定された時間が経過するまでブロッキングが起きるためパフォーマンスが低下する可能性があります。
したがって、get(..) メソッドでのブロッキングを回避するためには、即時に戻る isDone() メソッドを呼び出してください。
その後、isDone() メソッドが true を返したら、get() メソッドを呼び出します。gotcha
サポートされる構成: この値が適用できるのは、リモート・ビジネス・インターフェースを使用してエンタープライズ Bean を呼び出すクライアントのみです。この値はローカル・ビジネス・インターフェースまたは非インターフェース・ビューには使用されません。
非同期作業が完了すると、サーバーは、サーバー・サイドのフューチャー・オブジェクトに指定された存続時間に対してアラームを設定します。アラームがアクティブ化されると、サーバーはフューチャー・オブジェクトに関連付けられるすべてのリソースを解放するため、クライアントがこのオブジェクトを使用できなくなります。クライアントが存続時間の終了前にフューチャー・オブジェクトで get() メソッドを呼び出した場合、アラームはキャンセルされ、そのフューチャー・オブジェクトに関連付けられるすべてのリソースが解放されます。sptcfg