アダプタ・フレームワークでは、.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>