本製品は、javax.resource.spi.work.Work(アプリケーションの呼出し、ネットワーク・エンドポイントの監視、入力データの処理など)を同期/非同期に実行するためのWork管理機能をサポートします。Work管理機能の使用により、本製品の提供するスレッド制御機構を利用したアプリケーションの構築が可能となります。リソースアダプタは、IJServerクラスタが提供するjavax.resource.spi.work.WorkManagerクラスの実装に対して、scheduleWork()メソッドなどを使用してWorkの実行要求を行います。
コネクタモジュールの配備後にリソースアダプタ定義情報を作成してスレッドプールIDを指定することで、あらかじめ定義した特定のスレッドプールの設定がリソースアダプタ単位で設定されます。特定のスレッドプールを指定しない場合は、本製品のデフォルトのスレッドプールが使用されます。スレッドプールの設定方法は、「6.5.1 スレッドプーリング」を参照してください。
Work制御用スレッド
1つのWork実行要求に対して、1つのWork制御用スレッドがスレッドプールから取り出され割り当てられます。Workの実行が完了すると、Work制御用スレッドはプールに戻されます。Work制御用スレッドの数は、Workの実行要求に応じてスレッドプールで指定した最大値に達するまで増えていきますが、Work制御用スレッドの数が最大値に到達し全スレッドがWorkを実行中の場合、新たに送られてきたWorkの実行要求はFIFOのキューで管理されます。Workの割り当てを解放されたスレッドがプールへ戻ると、キューで管理されているWorkが順次空いたスレッドに割り当てられます。Work実行要求時に指定したスタートタイムアウト値だけ時間が経過してもWorkへ制御用スレッドが割り当てられなかった場合、javax.resource.spi.work.WorkRejectedExceptionがリソースアダプタへ返却されます。