Oracle® Fusion Middleware Oracle Infrastructure Webサービス開発者ガイド 11g リリース1 (11.1.1.6) B61390-04 |
|
前 |
次 |
この章では、Webサービス原子性トランザクションを使用して、他の外部トランザクション処理システムとの相互運用を可能にする方法について説明します。この項はSOA Webサービスに適用されるもので、参考情報です。
この章の内容は次のとおりです。
WebLogic Webサービスは、次の仕様のサポートを通じて、Websphere、JBoss、Microsoft .NETなどの他の外部トランザクション処理システムとの相互運用を可能にします。
WS-AtomicTransaction(WS-AT)バージョン1.0、1.1および1.2: http://docs.oasis-open.org/ws-tx/wstx-wsat-1.2-spec-cs-01/wstx-wsat-1.2-spec-cs-01.html
WS-Coordinationバージョン1.0、1.1および1.2: http://docs.oasis-open.org/ws-tx/wstx-wscoor-1.2-spec-cs-01/wstx-wscoor-1.2-spec-cs-01.html
これらの仕様は、一連の参加者の間で分散アクティビティを調整するための拡張可能なフレームワークを定義します。次の図に示されているコーディネータは中央のコンポーネントで、トランザクションの状態(調整コンテキスト)を管理し、Webサービスおよびクライアントを参加者として登録することを可能にします。
次の表で、この図に示されているWebサービス原子性トランザクションのコンポーネントについて説明します。
表6-1 Webサービス原子性トランザクションのコンポーネント
コンポーネント | 説明 |
---|---|
コーディネータ |
トランザクションの状態(調整コンテキスト)を管理し、Webサービスおよびクライアントを参加者として登録することを可能にします。 |
アクティブ化サービス |
アプリケーションによるトランザクションのアクティブ化およびアクティビティの調整コンテキストの作成を可能にします。作成された調整コンテキストは、トランザクション・フローとともに渡されます。 |
登録サービス |
アプリケーションを参加者として登録することを可能にします。 |
アプリケーション・プロトコルX、Y |
サポートされている調整プロトコル(WS-AtomicTransactionなど)。 |
次の図は、Webサービス原子性トランザクションのコンテキスト内で相互に作用する2つのWebLogic Serverインスタンスを示しています。わかりやすくするために、2つのWebLogic Webサービス・アプリケーションを示しています。
次のことに注意してください。
ローカルJTAトランザクション・マネージャを使用すると、すべてWebサービス・リクエストのコンテキスト内で、トランザクションを下位トランザクションとしてローカルなJTA環境との間でインポートおよびエクスポートできます。
調整コンテキストの作成と管理は、ローカルJTAトランザクション・マネージャによって行われます。
トランザクションの整合性管理とリカバリ処理はすべて、ローカルJTAトランザクション・マネージャによって行われます。
JTAの詳細は、Oracle WebLogic ServerのJTAのプログラミングに関する項を参照してください。
次に、図6-2に示されているエンドツーエンドのWebサービス原子性トランザクションの相互作用の例について説明します。
アプリケーションAは、サーバーAでJTAトランザクション・マネージャを使用して、コントロールの現行スレッドに対するトランザクションを開始します。
アプリケーションAは、サーバーBのアプリケーションBでWebサービス・メソッドをコールします。
サーバーAはトランザクション情報を更新し、調整コンテキストを含むSOAPヘッダーを作成して、トランザクションおよびローカル・コーディネータを指定します。
サーバーBは、アプリケーションBのリクエストを受信して、ヘッダーにトランザクション調整コンテキストが含まれていることを検出し、アプリケーションBがこのトランザクションの参加者としてすでに登録されているかどうかを判断します。すでに登録されていれば、そのトランザクションは再開されます。登録されていない場合は、新しいトランザクションが開始されます。
アプリケーションBは、インポート済トランザクションのコンテキスト内で実行されます。アプリケーションの対話に使用されるすべてのトランザクション・リソースは、このインポート済トランザクションに登録されます。
サーバーBは、トランザクション調整コンテキスト内で指定されている登録サービスを使用して、WS-ATトランザクションの参加者として自身を登録します。
サーバーAはトランザクションを再開します。
アプリケーションAは処理を再開し、トランザクションをコミットします。
Oracle SOA Suite Webサービスに対して、Webサービス原子性トランザクションを有効化および構成します。設計時にはOracle JDeveloperを使用してWebサービスの作成時に、デプロイ時にはOracle Enterprise Managerを使用して行います。詳細は、次の項を参照してください。
設計時: 『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のWS-Atomicトランザクション・サポートに関する項。
デプロイ時: Web Servicesのセキュリティおよび管理者ガイドのWebサービス原子性トランザクションの構成に関する項。
構成オプションの詳細は、「Webサービス原子性トランザクションの構成」を参照してください。
Oracle SOA Suite参照に対して、デプロイ時にOracle Enterprise Managerを使用してWebサービス原子性トランザクションを有効化および構成します。表6-3に定義されているように、バージョンおよびフロー・タイプを構成します。詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のWebサービス原子性トランザクションの構成に関する項を参照してください。
Webサービス原子性トランザクションを有効化および構成します。設計時にはOracle JDeveloperを使用してWebサービスの作成時に、デプロイ時にはOracle Enterprise Managerを使用して行います。詳細は、次の項を参照してください。
設計時: 『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のWS-Atomicトランザクション・サポートに関する項。
デプロイ時: Web Servicesのセキュリティおよび管理者ガイドのWebサービス・クライアントの構成に関する項。
構成オプションの詳細は、「Webサービス原子性トランザクションの構成」を参照してください。
次の表は、SOA Webサービスに対してWebサービス原子性トランザクションを有効化する際に設定できる構成オプションをまとめたものです。Webサービス原子性トランザクションの有効化の詳細は、Oracle SOA Suite WebサービスでのWebサービス原子性トランザクションの有効化(インバウンド)に関する項およびOracle SOA Suite参照でのWebサービス原子性トランザクションの有効化(アウトバウンド)に関する項を参照してください。
表6-2 Webサービス原子性トランザクションの構成オプション
属性 | 説明 |
---|---|
バージョン |
SOAサービスまたはSOA参照に対してサポートされているWebサービス原子性トランザクション調整コンテキストのバージョン。SOA参照の場合、アウトバウンド・メッセージに使用されるバージョンのみを指定します。指定した値は、トランザクション全体で整合している必要があります。 有効な値は、 SOAサービスの SOA参照の
|
フロー・タイプ |
Webサービス原子性トランザクション調整コンテキストがトランザクション・フローとともに渡されるかどうかを指定します。有効な値は、表6-3を参照してください。 |
次の表は、フロー・タイプの有効な値およびWebサービスおよびクライアントでのそれらの意味をまとめたものです。また、@TransacationAttribute
注釈を使用するEJB型のWebサービスに対してWebサービス原子性トランザクションを構成する際の有効な値の組合せも示しています。
表6-3 フロー・トランザクションの調整コンテキスト・タイプの値
値 | Webサービス・クライアント | Webサービス | EJB @TransactionAttribute の有効な値 |
---|---|---|---|
|
JTAトランザクションがある場合: トランザクションの調整コンテキストをエクスポートしません。 JTAトランザクションがない場合: トランザクションの調整コンテキストをエクスポートしません。 |
トランザクション・フローが存在する場合: トランザクションの調整コンテキストをインポートしません。CoordinationContextヘッダーに トランザクション・フローがない場合: トランザクションの調整コンテキストをインポートしません。 |
|
|
JTAトランザクションがある場合: トランザクションの調整コンテキストをエクスポートします。 JTAトランザクションがない場合: トランザクションの調整コンテキストをエクスポートしません。 |
トランザクション・フローが存在する場合: トランザクション・コンテキストをインポートします。 トランザクション・フローがない場合: トランザクションの調整コンテキストをインポートしません。 |
|
|
JTAトランザクションがある場合: トランザクションの調整コンテキストをエクスポートします。 JTAトランザクションがない場合: 例外がスローされます。 |
トランザクション・フローが存在する場合: トランザクション・コンテキストをインポートします。 トランザクション・フローがない場合: サービス側の例外がスローされます。 |
|
|
WebサービスWSDLで通知された値に基づく動作をします。 |
なし |
通知された値によって異なります。 |
コーディネータと参加者の間で交換されるメッセージを保護するには、WebLogic Server管理コンソールを使用して、次の表に定義されているプロパティを構成します。これらのプロパティは、ドメイン・レベルで構成します。詳細な手順は、Oracle WebLogic Server管理コンソールのヘルプのWebサービス原子性トランザクションの構成に関する項を参照してください。
表6-4 Webサービス原子性トランザクションの保護
プロパティ | 説明 |
---|---|
Webサービス・トランザクションのトランスポート・セキュリティ・モード |
コーディネータと参加者の間のメッセージ交換に双方向SSLを使用するかどうかを指定します。このプロパティは、次のいずれかの値に設定できます。
詳細は、Oracle WebLogic Server管理コンソールのヘルプの双方向SSLの構成に関する項を参照してください。 |
Webサービス・トランザクションの発行済みトークンを有効化 |
|