アダプタ・フレームワークでは、.jcaプロパティ・ファイルの<connection-factory>要素に定義されているとおりに、MessageEndpointFactoryを使用して、ConnectionFactoryのインスタンスが指定されます。このインスタンスをリソース・アダプタで使用して接続を作成できます。
javax.resource.cci.ConnectionFactory connectionFactory =
((ConnectionFactoryAssociation)activationSpec).getConnectionFactory();
javax.resource.cci.Connection connection = connectionFactory.getConnection();
この呼出し時に、リソース・アダプタでは、MessageEndpointFactoryを使用して、インバウンド・エンドポイントを作成し、インバウンドEISエンドポイントを監視するインバウンド・スレッドを構成する作業リクエストを発行する必要があります。
ResourceAdapterInboundWorkerThread workRequest =
new ResourceAdapterInboundWorkerThread(endpoint, activationSpec, connection);
workManager.startWork(workRequest);
ここで、ResourceAdapterInboundWorkerThreadは、リソース・アダプタでのjavax.resource.spi.work.Workの実装です。
startWork()から値が返されたらすぐに、アダプタ・フレームワークは、run()メソッドを呼び出すことによって、発行したworkRequestにスレッドを割り当てます。
次のメソッドendpointDeactivationは、メッセージ・エンドポイントが非アクティブ化された際、つまり、そのエンドポイントをアクティブ化したコンポジットの停止時またはアプリケーション・サーバーの停止時に、アダプタ・フレームワークによって呼び出されます。
public void endpointDeactivation(MessageEndpointFactory endpointFactory, ActivationSpec spec)
注意:
カスタム・アダプタがOracle Weblogic環境で動作するためには、カスタム・アダプタのコネクション・ファクトリがoracle.tip.adapter.api.OracleConnectionFactoryを実装する必要があります。カスタム・アダプタのコネクション・ファクトリがoracle.tip.adapter.api.OracleConnectionFactoryを実装する必要がある場合、JDeveloperによって生成される.jcaの<connection-factory>に<resource-adapter>要素を追加します。次に例を示します。 <connection-factory location="eis/Custom/CustomAdapter"/> <resource-adapter className="com.custom.oracle.fusion.adapter.CustomAdapter"/> </connection-factory>