アウトバウンドサービスのカスタムアダプタは、J2EE Connection Architecture 1.0のManaged対応のリソースアダプタとして開発します。
J2EE Connection Architecture 1.0の詳細は、Sun Microsystems,Inc.から提供されているドキュメントを参照してください。
ここでは、処理の流れとデータの受け渡しについて説明します。実装が必要なJ2EE Connection Architecture標準インタフェースについては、“実装する必要のあるJ2EE Connection Architecture標準インタフェース”を参照してください。
処理の流れ
アウトバウンド側ISI接続FWがアウトバウンドアダプタを呼び出す手順は、J2EE Connection Architectureで定められた呼び出し手順に従います。
以下にISIサーバ起動とメッセージ処理の各タイミングで行う処理の流れを示します。
コネクションファクトリの取得
サービスエンドポイント定義に定義されているJNDI名を使用してコネクションファクトリを取得します。複数のサービスエンドポイント定義に同じJNDI名が定義されている場合、JNDI名毎に1度だけコネクションファクトリの取得が行われます。
コネクションの取得
ISIサーバ起動時に取得したコネクションファクトリのgetConnectionメソッドを使用してコネクションを取得します。
サービス提供側アプリケーションの呼び出し
Interactionオブジェクトのexecuteメソッドを実行します。
executeメソッドの引数としてRecordが渡されます。Recordで渡される情報については、”入出力Record”を参照してください。
コネクションのクローズ
1で取得したコネクションのcloseメソッドを使用してコネクションをクローズします。
データの受け渡し
ISIサーバからアウトバウンドサービスのカスタムアダプタに受け渡される情報は以下のとおりです。
接続情報(ConnectionSpec)
アウトバウンド側ISI接続FWからアウトバウンドアダプタへのConnectionSpecの受け渡しには、アウトバウンドアダプタが提供する、javax.resource.cci.ConnectionSpecの実装クラスのオブジェクトを使用します。
ConnectionSpecの実装クラスに定義するプロパティは以下のとおりです。
標準プロパティ
J2EE Connection Architectureで規定されるConnectionSpecの標準プロパティは以下のとおりです。
UserName(String型)
サービス提供側アプリケーションへの接続に使用するユーザ名を設定します。
設定する値はサービスエンドポイント定義で指定することができます。サービスエンドポイント定義による指定がない場合、ConnectionSpec実装クラスのデフォルトの値がそのまま使用されます。
Password(String型)
サービス提供側アプリケーションへの接続に使用するパスワードを設定します。
設定する値はサービスエンドポイント定義で指定することができます。サービスエンドポイント定義による指定がない場合、ConnectionSpec実装クラスのデフォルトの値がそのまま使用されます。
拡張プロパティ
アウトバウンドアダプタは任意の名前で拡張プロパティを定義できます。
拡張プロパティで利用できる型は以下のとおりです。
boolean
short
int
long
float
double
String
相互作用情報(InteractionSpec)
アウトバウンド側ISI接続FWからアウトバウンドアダプタへのInteractionSpecの受け渡しには、アウトバウンドアダプタが提供する、javax.resource.cci.InteractionSpecの実装クラスのオブジェクトを使用します。InteractionSpecの実装クラスに定義するプロパティは以下のとおりです。
標準プロパティ
J2EE Connection Architectureで規定されるInteractionSpecの標準プロパティは以下のとおりです。
FunctionName
EIS機能名を指定します。
設定する値はサービスエンドポイント定義で指定することが可能です。サービスエンドポイント定義による指定がない場合、ConnectionSpec実装クラスのデフォルトの値がそのまま使用されます。
InteractionVerb
javax.resource.cci.InteractionSpecに定義されている相互作用モードを設定します。
設定する値はサービスエンドポイント定義で指定できます。
値 | 意味 |
---|---|
0(SYNC_SEND) | メッセージの送信のみ |
1(SYNC_SEND_RECEIVE) | メッセージの送受信 |
2(SYNC_RECEIVE) | メッセージの受信 |
定義による指定がない場合、提供側サービスの呼び出しに使用するメディエータファンクションに応じた値が設定されます。
呼び出し | 設定される値 |
---|---|
同期サービス呼び出し | 0(SYNC_SEND) |
非同期サービス呼び出し | 1(SYNC_SEND_RECEIVE) |
ExecutionTimeout
処理のタイムアウト時間をミリ秒で設定します。
設定する値はサービスエンドポイント定義で指定することが可能です。サービスエンドポイント定義による指定がない場合、ConnectionSpec実装クラスのデフォルトの値がそのまま使用されます。
拡張プロパティ
アウトバウンドアダプタは任意の名前で拡張プロパティを定義することができます。
拡張プロパティで利用可能な型は以下のとおりです。
boolean
short
int
long
float
double
String
データ(Record)
アウトバウンド側ISI接続FWとアウトバウンドアダプタとの間でのRecordの受け渡しには、アウトバウンドアダプタが提供する以下のどちらかのインタフェースを実装したクラスのオブジェクトを使用します。
javax.resource.cci.IndexedRecord
javax.resource.cci.MappedRecord
受け渡されるRecordに格納される情報は、マッパーメディエータファンクションで定義します。
Recordで受け渡しされる情報の設定については、“ISI Studio ヘルプ”を参照してください。
実装する必要のあるJ2EE Connection Architecture標準インタフェース
アウトバウンドサービスのリソースアダプタで実装する必要のあるJ2EE Connection Architecture標準インタフェースは以下のとおりです。
ここでは、アウトバウンドサービスのリソースアダプタで利用するCCIインタフェースについてのみ記載しています。
J2EE Connection Architecture規定のインタフェース | アウトバウンドアダプタでの実装 ○:必須 ×:不要(V9.2では使用しません) | 概要 |
---|---|---|
1. | ○ | EISインスタンスへの物理接続にアクセスするためのアプリケーションレベルのハンドルです。 |
2. | ○ | Connectionを取得するためのインタフェースを提供します。 |
3. | × | Connectionを通じて接続されるEIS インスタンスに関するメタ情報を提供します。 |
4. | △ | EISインスタンスへアクセスするためのConnectionSpecを保持します。 |
5. | △ | java.util.Listインタフェースに基づいて順序付けられたレコード要素の集合を表します。 |
6. | ○ | EISインスタンスとの相互作用を実行するためのインタフェースです。 |
7. | ○ | EISインスタンスとの相互作用を実行するためのプロパティを保持します。 |
8. | × | アプリケーションレベルのローカルトランザクションの制御に使用します。 |
9. | △ | キーと値のマップをベースにした、レコード要素の表現に使用します。 |
10. | × | 要求/応答形式のMDBを実装するためのインタフェースです。 |
11. | ○ Recordを継承するIndexedRecordまたはMappedRecordを実装してください。 | Interaction内で定義される実行メソッドへの入力または出力表現の基本インタフェースです。 |
12. | ○ | MappedRecord および IndexedRecord インスタンスを作成するために使用します。 |
13. | × | リソースアダプタに関するメタ情報を表します。 |
14. | × | EISインスタンスとの相互作用の実行により取得される表形式のRecordを表します。 |
15. | × | ResultSetの機能サポートに関する情報を提供します。 |
16. | × | Recordからバイトストリームとして値を取得したり、出力Recordにバイトストリームで値を設定したりするために使用します。 |