Workインタフェースは、次のとおりです。
public interface Work extends Runnable
Oracle SOAを使用してデプロイしたJCA 1.5準拠のリソース・アダプタは、管理対象モード(つまり、 J2EEコンテナ内)で実行されるため、独自にスレッドを作成することはできません。このため、アダプタは、かわりにWebLogicアプリケーション・サーバーに依存して、スレッドの作成と開始を行う必要があります。
スレッド(たとえば、インバウンド・エンドポイントのポーリングに使用するスレッド)を取得するには、アダプタは、Workインタフェースを実装するクラスのインスタンスをWorkManager(これを受けてBootstrapContext
を使用して取得される)に発行する必要があります。
アダプタでは、これはrun
メソッドを使用して実行されます。
public void run()
このメソッドは、新規に割り当てられたJ2EE準拠のスレッドを使用して、WorkManagerによって呼び出されます。リソース・アダプタでは、停止を選択するまで(たとえば、リカバリ不能なエラー状態など。ただし、この規則はお薦めしません)、またはより適切な、アダプタが停止のシグナルを受けるまで(release()
メソッドによって)、このスレッドを使用できます。
public void release()
アダプタ自体は、アダプタ・フレームワークによって実行されたendpointDeactivation
の呼出しを処理する際に、release()
を呼び出します。
このアクティビティは、現在Workインスタンスを実行しているスレッド、つまりendpointActivation
を呼び出しているシステム・スレッドとは別のスレッドで呼び出されます。
リソース・アダプタで、release()
の呼出し後に事前設定されている時間が経過した後に、run()
メソッドが終了されない場合、アダプタ・フレームワークでは、スレッドの強制的な停止が試行されます。