ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Fusion Middlewareカスタム・テクノロジ・アダプタの開発
12c (12.2.1)
E69919-02
  目次へ移動
目次

前
次
 

4.3.3 Interfacejavax.resource.spi.work.Work

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()メソッドが終了されない場合、アダプタ・フレームワークでは、スレッドの強制的な停止が試行されます。