ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Infrastructure Webサービス開発者ガイド
11g リリース1(11.1.1)
B61390-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

6 Webサービス原子性トランザクションの使用

この章では、Webサービス原子性トランザクションを使用して、他の外部トランザクション処理システムとの相互運用を可能にする方法について説明します。この項はSOA Webサービスに適用されるもので、参考情報です。

この章の内容は次のとおりです。

Webサービス原子性トランザクションの概要

WebLogic Webサービスは、次の仕様のサポートを通じて、Websphere、Microsoft .NETなどの他の外部トランザクション処理システムとの相互運用を可能にします。

これらの仕様は、一連の参加者の間で分散アクティビティを調整するための拡張可能なフレームワークを定義します。次の図に示されているコーディネータは中央のコンポーネントで、トランザクションの状態(調整コンテキスト)を管理し、Webサービスおよびクライアントを参加者として登録することを可能にします。

図6-1 Webサービス原子性トランザクション・フレームワーク

図6-1の説明が続きます
「図6-1 Webサービス原子性トランザクション・フレームワーク」の説明

次の表で、この図に示されているWebサービス原子性トランザクションのコンポーネントについて説明します。

表6-1 Webサービス原子性トランザクションのコンポーネント

コンポーネント 説明

コーディネータ

トランザクションの状態(調整コンテキスト)を管理し、Webサービスおよびクライアントを参加者として登録することを可能にします。

アクティブ化サービス

アプリケーションによるトランザクションのアクティブ化およびアクティビティの調整コンテキストの作成を可能にします。作成された調整コンテキストは、トランザクション・フローとともに渡されます。

登録サービス

アプリケーションを参加者として登録することを可能にします。

アプリケーション・プロトコルX、Y

サポートされている調整プロトコル(WS-AtomicTransactionなど)。


次の図は、Webサービス原子性トランザクションのコンテキスト内で相互に作用する2つのWebLogic Serverインスタンスを示しています。わかりやすくするために、2つのWebLogic Webサービス・アプリケーションを示しています。

図6-2 WebLogicサーバー環境内のWebサービス原子性トランザクション

図6-2の説明が続きます
「図6-2 WebLogicサーバー環境内のWebサービス原子性トランザクション」の説明

次のことに注意してください。

JTAの詳細は、Oracle WebLogic ServerのJTAのプログラミングに関する項を参照してください。

次に、図6-2に示されているエンドツーエンドのWebサービス原子性トランザクションの相互作用の例について説明します。

  1. アプリケーションAは、サーバーAでJTAトランザクション・マネージャを使用して、コントロールの現行スレッドに対するトランザクションを開始します。

  2. アプリケーションAは、サーバーBのアプリケーションBでWebサービス・メソッドをコールします。

  3. サーバーAはトランザクション情報を更新し、調整コンテキストを含むSOAPヘッダーを作成して、トランザクションおよびローカル・コーディネータを指定します。

  4. サーバーBは、アプリケーションBのリクエストを受信して、ヘッダーにトランザクション調整コンテキストが含まれていることを検出し、アプリケーションBがこのトランザクションの参加者としてすでに登録されているかどうかを判断します。すでに登録されていれば、そのトランザクションは再開されます。登録されていない場合は、新しいトランザクションが開始されます。

    アプリケーションBは、インポート済トランザクションのコンテキスト内で実行されます。アプリケーションの対話に使用されるすべてのトランザクション・リソースは、このインポート済トランザクションに登録されます。

  5. サーバーBは、トランザクション調整コンテキスト内で指定されている登録サービスを使用して、WS-ATトランザクションの参加者として自身を登録します。

  6. サーバーAはトランザクションを再開します。

  7. アプリケーションAは処理を再開し、トランザクションをコミットします。

Oracle SOA Suite WebサービスでのWebサービス原子性トランザクションの有効化(インバウンド)

Oracle SOA Suite Webサービスに対して、Webサービス原子性トランザクションを有効化および構成します。設計時にはOracle JDeveloperを使用してWebサービスの作成時に、デプロイ時にはOracle Enterprise Managerを使用して行います。詳細は、次の項を参照してください。

構成オプションの詳細は、「Webサービス原子性トランザクションの構成」を参照してください。

Oracle SOA Suite参照でのWebサービス原子性トランザクションの有効化(アウトバウンド)

Oracle SOA Suite参照に対して、デプロイ時にOracle Enterprise Managerを使用してWebサービス原子性トランザクションを有効化および構成します。表6-3に定義されているように、バージョンおよびフロー・タイプを構成します。詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のWebサービス原子性トランザクションの構成に関する項を参照してください。

Webサービス原子性トランザクションを有効化および構成します。設計時にはOracle JDeveloperを使用してWebサービスの作成時に、デプロイ時にはOracle Enterprise Managerを使用して行います。詳細は、次の項を参照してください。

構成オプションの詳細は、「Webサービス原子性トランザクションの構成」を参照してください。

Webサービス原子性トランザクションの構成

次の表は、SOA Webサービスに対してWebサービス原子性トランザクションを有効化する際に設定できる構成オプションをまとめたものです。Webサービス原子性トランザクションの有効化の詳細は、Oracle SOA Suite WebサービスでのWebサービス原子性トランザクションの有効化(インバウンド)に関する項およびOracle SOA Suite参照でのWebサービス原子性トランザクションの有効化(アウトバウンド)に関する項を参照してください。

表6-2 Webサービス原子性トランザクションの構成オプション

属性 説明

バージョン

SOAサービスまたはSOA参照に対してサポートされているWebサービス原子性トランザクション調整コンテキストのバージョン。SOA参照の場合、アウトバウンド・メッセージに使用されるバージョンのみを指定します。指定した値は、トランザクション全体で整合している必要があります。

有効な値は、WSAT10WSAT11WSAT12およびDEFAULTです。

SOAサービスのDEFAULT値は、(インバウンド・リクエストにより起動された)3つのバージョンすべてです。

SOA参照のDEFAULT値は次のとおりです。

  • フロー・オプションがWSDLDRIVENの場合、WSDLで通知されたバージョンが使用されます。

  • フロー・オプションがWSDLDRIVEN以外の設定の場合は、WSAT10が使用されます。

フロー・タイプ

Webサービス原子性トランザクション調整コンテキストがトランザクション・フローとともに渡されるかどうかを指定します。有効な値は、表6-3を参照してください。


次の表は、フロー・タイプの有効な値およびWebサービスおよびクライアントでのそれらの意味をまとめたものです。また、@TransacationAttribute注釈を使用するEJB型のWebサービスに対してWebサービス原子性トランザクションを構成する際の有効な値の組合せも示しています。

表6-3 フロー・トランザクションの調整コンテキスト・タイプの値

Webサービス・クライアント Webサービス EJB @TransactionAttributeの有効な値

NEVER(SOAサービスのデフォルト)

JTAトランザクションがある場合: トランザクションの調整コンテキストをエクスポートしません。

JTAトランザクションがない場合: トランザクションの調整コンテキストをエクスポートしません。

トランザクション・フローが存在する場合: トランザクションの調整コンテキストをインポートしません。CoordinationContextヘッダーにmustunderstand="true"が含まれている場合は、SOAPフォルトがスローされます。

トランザクション・フローがない場合: トランザクションの調整コンテキストをインポートしません。

NEVERNOT_SUPPORTEDREQUIREDREQUIRES_NEWSUPPORTS

SUPPORTS

JTAトランザクションがある場合: トランザクションの調整コンテキストをエクスポートします。

JTAトランザクションがない場合: トランザクションの調整コンテキストをエクスポートしません。

トランザクション・フローが存在する場合: トランザクション・コンテキストをインポートします。

トランザクション・フローがない場合: トランザクションの調整コンテキストをインポートしません。

SUPPORTSREQUIRED

MANDATORY

JTAトランザクションがある場合: トランザクションの調整コンテキストをエクスポートします。

JTAトランザクションがない場合: 例外がスローされます。

トランザクション・フローが存在する場合: トランザクション・コンテキストをインポートします。

トランザクション・フローがない場合: サービス側の例外がスローされます。

MANDATORYREQUIREDSUPPORTS

WSDLDRIVEN(SOA参照のみ。デフォルト。)

WebサービスWSDLで通知された値に基づく動作をします。

なし

通知された値によって異なります。


コーディネータと参加者の間で交換されるメッセージの保護

コーディネータと参加者の間で交換されるメッセージを保護するには、WebLogic Server管理コンソールを使用して、次の表に定義されているプロパティを構成します。これらのプロパティは、ドメイン・レベルで構成します。詳細な手順は、Oracle WebLogic Server管理コンソールのヘルプのWebサービス原子性トランザクションの構成に関する項を参照してください。

表6-4 Webサービス原子性トランザクションの保護

プロパティ 説明

Webサービス・トランザクションのトランスポート・セキュリティ・モード

コーディネータと参加者の間のメッセージ交換に双方向SSLを使用するかどうかを指定します。このプロパティは、次のいずれかの値に設定できます。

  • SSLは不要: Webサービス・トランザクションのプロトコル・メッセージはすべて、HTTPチャネル経由で交換されます。

  • SSLが必要: Webサービス・トランザクションのプロトコル・メッセージはすべて、HTTPSチャネル経由で交換されます。このフラグは、原子性トランザクションが有効になっているMicrosoft .NET Webサービスを起動する際に有効にする必要があります。

  • クライアント証明書が必要: Webサービス・トランザクションのプロトコル・メッセージはすべてHTTPS経由で交換され、クライアント証明書が必要となります。

詳細は、Oracle WebLogic Server管理コンソールのヘルプの双方向SSLの構成に関する項を参照してください。

Webサービス・トランザクションの発行済みトークンを有効化

IssuedTokenを使用してWebサービス原子性トランザクションのコーディネータと参加者の間の認証を有効にするかどうかを指定するフラグ。

IssuedTokenは、コーディネータによって発行され、セキュリティ・コンテキスト・トークン(SCT)と署名用のセッション・キーで構成されます。参加者は、共有セッション・キーを使用して署名した署名を登録メッセージに入れて送信します。コーディネータは、セッション・キーを使用して署名を検証することにより、参加者を認証します。