Oracle Service Bus Tuxedoトランスポートを使用すると、Tuxedoサービスをサービス・バス環境にもたらすことができます。
この章では、以下のトピックについて説明します。
Oracle Service BusとOracle Tuxedoを相互運用して、各製品に用意されているサービスを使用できます。Tuxedoトランスポートを使用すると、Oracle Service BusからTuxedoドメインへの、安全で保証された、高パフォーマンスの双方向アクセスが可能になります。Tuxedoトランスポートでは、Tuxedoドメインからサービスを呼び出すことも、Tuxedoドメインにあるサービスを呼び出すこともできます。
Oracle Service Busが、Tuxedoに用意されているサービスを使用する場合、TuxedoトランスポートによりそれらのTuxedoサービスへのアクセスが容易になります。アウトバウンドという用語はこのビジネス・サービス・シナリオを表します。
TuxedoでOracle Service Busに用意されているサービスを使用する場合、TuxedoサービスはOracle Service Busサービスを、もう1つのTuxedoアプリケーションのように呼び出すことができます。インバウンドという用語はこのプロキシ・サービス・シナリオを表します。
Tuxedoトランスポートは、Oracle Service Busコンソールで構成します。特定のパラメータによって、プロキシ・サービスとビジネス・サービスの両方を定義します。Tuxedoトランスポートの構成を有効にするには、1つのローカル・アクセス・ポイントおよび1つのリモート・アクセス・ポイントを含む、基本的なOracle Tuxedo Connector (WTC)構成が必要です。トランザクション・コンテキストとセキュリティ・コンテキストもサポートされます。
次の図に、このメッセージ処理プロセスをまとめます。
Oracle Service BusのネイティブなTuxedoトランスポートでは、以下の機能が使用できます。
高水準の階層トランスポート
ネイティブなTuxedoトランスポートは、Oracle Service Busの構成、管理、およびモニター・コンソールに完全に統合されています。Tuxedoビジネス・サービスとTuxedoプロキシ・サービスの両方を構成、管理、およびモニターできます。
双方向アクセス
Oracle Service Busは、SOAP、JMS、または他のサービスとTuxedo間の仲介として機能します。Tuxedoトランスポートにより、Oracle Service Busのビジネス・サービスとしてTuxedo ATMIサービスへのアクセスが可能になります。また、Tuxedoで、Oracle Service Busのプロキシ・サービスを別のATMIサービスとして表示できるようになります。
バッファ変換
XMLメッセージをTuxedoバッファ・タイプに、またTuxedoバッファ・タイプをXMLに変換できます。すべての標準のTuxedoバッファ・タイプがサポートされており、変換は自動的および透過的に行われます。詳細は、35.5項「Tuxedoトランスポートのバッファ変換」を参照してください。
トランザクションの整合性
Tuxedoトランスポートにより、インバウンド・メッセージとアウトバウンド・メッセージのトランザクションの整合性を実現します。Tuxedoサービスを、「必ず1回」のサービス品質(QoS)が可能なグローバル・トランザクションのコンテキスト内で呼び出すことができます。Tuxedoアプリケーションは、トランザクションを開始し、Oracle Service Busベースのサービスを呼び出すことができ、XAトランザクション・コンテキストはOracle Service Bus、パイプラインに送信され、最終的に目的のトランスポートに送信されます。詳細は、35.6項「Tuxedoトランスポートのトランザクション処理」を参照してください。
セキュリティの伝播
メッセージ・フローの最初で確立されたセキュリティ・コンテキストは、TuxedoクライアントまたはOracle Service Busクライアントのいずれかから、もう一方のシステムに伝播します。つまり、受信した、認証が必要なOracle Service BusへのSOAP over HTTPリクエストは、Oracle Service Busによって認証されます。トランザクションと同様に、このサポートも完全に双方向であるため、Tuxedoに対し認証されたクライアントは、Oracle Service Busサービスにも、再度認証を必要とせずにリクエストを行うことができます。
暗号化されたネットワーク接続
WTC構成によってOracle Service BusとTuxedo間の接続を暗号化し、2つのシステム間の通信のセキュリティとプライバシを確保できます。
ロード・バランシング
Oracle Service BusとTuxedoドメインの接続の要件は、単一のネットワーク接続のみです。ただし、マシンまたはネットワーク障害の場合は複数の接続が必要になる場合があります。ロード・バランシングのために、単一のドメインまたは複数のドメインに、複数の接続を確立できます。
以下のシナリオの構成の詳細は、次の項を参照してください。
『Oracle Fusion Middleware Oracle WebLogic Server Tuxedo Connector管理ガイド』のOracle TuxedoとOracle WebLogic Server間のセキュリティを設定するためのOracle WebLogic Tuxedo Connectorの構成方法に関する項
Oracle Service BusのTuxedoトランスポートにより、Oracle Tuxedo Connector (WTC)を使用してTuxedoサービスにアクセスできます。Tuxedoトランスポートを使用するには、1つのローカル・アクセス・ポイントおよび1つのリモート・アクセス・ポイントを含む基本のWTCサーバーを構成する必要があります。
以下の項では、WTCを構成する方法を説明します。
Oracle Service Busで使用するTuxedoアプリケーションに関する以下の情報を収集します。
Tuxedoローカル・アクセス・ポイントのID
Tuxedoローカル・アクセス・ポイントのネットワーク・アドレス
エクスポートされたTuxedoサービスの名前
サービスで、XMLからFMLおよびFMLからXMLへの変換、あるいはViewからXMLまたはXMLからViewへの変換が必要かどうか
以下の項で説明する例では、FML/FML32バッファ・タイプの使用を前提とします。
Tuxedoドメイン・ゲートウェイがこのOracle Tuxedo Connectorインスタンスを表すために使用するアクセス・ポイントのID。これはリモート・アクセス・ポイントIDとも呼ばれます。
Tuxedoドメイン・ゲートウェイがこのOracle Tuxedo Connectorローカル・アクセス・ポイントのために定義したネットワーク・アドレス。これはリモート・ネットワーク・アドレスとも呼ばれます。
Oracle Service BusにTuxedoビジネスおよびプロキシ・サービスを作成またはインポートする場合、サービス構成にはOracle WebLogic ServerコンソールのWebLogic Tuxedo Connectorリソースとして表示されるWebLogic Tuxedo Connector構成が含まれています。Oracle Service Busは同時に使用するWebLogic Tuxedo Connectorリソースを保つ必要があります。Oracle WebLogic ServerコンソールにあるそれらのWebLogic Tuxedo Connectorリソースを変更すると、このリソースとOracle Service Busは同期しなくなります。また、Oracle Service Busにサービスを再インポートすると、サービス・アクティブ化エラーが発生します。
Oracle Service BusでWebLogic Tuxedo Connectorリソースを使用および構成するには、次のガイドラインに従ってください。
Oracle Service Busプロキシおよびビジネス・サービスに使用されるOracle WebLogic Server ConsoleにあるWebLogic Tuxedo Connectorリソースは変更しないでください。Oracle Service Busサービス構成のWebLogic Tuxedo Connector構成を変更します。
Oracle Service BusおよびOracle WebLogic Server ConsoleでのTuxedoサービス間にWebLogic Tuxedo Connector構成は同期していない場合、Oracle WebLogic Server ConsoleにあるWebLogic Tuxedo Connectorリソースを削除し、Oracle Service BusのTuxedoサービスを再構成するか、または再インポートする簡単な方法で、構成を同期できます。
TuxedoサービスをOracle Service Busから使用するには、35.3.1項「新しいビジネス・サービスの構成」にある手順に従います。Oracle Service BusサービスをTuxedoから使用するには、35.4.1項「プロキシ・サービスの追加と構成」にある手順に従います。
以下の項では、Oracle Service BusからTuxedoサービスを使用する方法を説明します。
TuxedoサービスをOracle Service Busから利用するには、Oracle Service Busコンソールで新しいビジネス・サービスを構成する必要があります。ビジネス・サービスの詳細は、2.2項「ビジネス・サービスの操作」を参照してください。
Oracle Service Busコンソールへのログイン以下の項の指示に従って、構成手順を順番に実行します。
次の手順を実行します。
チェンジ・センターで、「作成」をクリックして新しいセッションを作成するか、または「編集」をクリックして既存のセッションに入ります。
リソースの編集はセッション内で行う必要があります。
「プロジェクト・エクスプローラ」を選択します。
新しいプロジェクトの名前を入力し、「プロジェクトの追加」をクリックします。
ページ上部に、プロジェクトの追加に成功したことを示すメッセージが表示されます。
次の手順を実行します。
新しく作成したプロジェクトの名前をクリックします。
「リソースの作成」フィールドで「ビジネス・サービス」を選択します。
「ビジネス・サービスの作成」 – 「全般的な構成」ページで、次の値を入力します。
「サービス名」 - サービスの名前です。
「サービス・タイプ」 - 「任意のXMLサービス」(デフォルト)を選択します。
注意: Tuxedoトランスポートは、サービスのタイプとして、任意のXMLサービスとメッセージング・サービスのみをサポートします。 |
「次へ」をクリックします。
「ビジネス・サービスの作成」 – 「トランスポート構成」ページで、次の値を入力します。
「プロトコル」 – tuxedoを選択します。
「ロード・バランシング・アルゴリズム」 - デフォルトのままにするか、別のアルゴリズムを選択します。
「エンドポイントURI」 –次の形式のいずれかを使用して1つまたは複数のエンドポイントURIを指定し、「追加」をクリックします。
Tuxedoサービスへのアウトバウンド呼出しのURI形式はtuxedo:resourcename[/remotename]
となります。
ここでresourcename
は、WTCインポート・サービス名に対応します。resourcenameは必須です。
remotename
は、リモートTuxedoドメインよりエクスポートされたサービス名に対応します。remotenameは省略可能です。
複数のURIが指定されている場合、エンドポイントにはユニークなリソース名を付ける必要があります。リモート名が指定されていない場合は、その値がリソース名の値になります。リモート名が入力されていない、またはリモート名およびリソース名が同じである場合は、1つのURIのみを使用できます。これにより、既に定義されたWTCインポート・サービスでWTCロード・バランシングおよびフェイルオーバーを使用できるようになります。
注意: 同一のURIを2つ構成すると、そのサービス名がすでに存在していることを通知するエラーが表示されます。 |
Tuxedoトランスポートでは、URIからリソース名とリモート名を使用して、WTCインポート・サービスを動的に作成します。
/QタイプのTuxedoリソースのアウトバウンド呼出しのURI形式は、tuxedo-queue:sendQspace/sendQname[/[rcvQspace:]/rcvQname][/failureQname]
となります。各項目の意味は次のとおりです。
tuxedo-queue は、/Q呼出しが行われることを示します。
sendQspace は、Tuxedoドメインのキュー・スペースのユニークな名前に対応します。 sendQspace は必須です。
sendQname は、リクエストが格納されるキュー・スペースのキュー名に対応します。 sendQname は必須です。
次の2つの値は省略可能です。どちらも指定しないと、ランタイムは直ちに戻り、レスポンスは想定されません。また、「レスポンスが必要」オプション(Tuxedoトランスポート構成ページにある)が使用できなくなります。
どちらかの値を指定した場合に、「レスポンスが必要」オプションを選択していないと、指定した値は無視されます。
rcvQspace は、返信が受信されるTuxedoドメインのキュー・スペースのユニークな名前に対応します。 rcvQspace は省略可能です。指定されていない場合は、 sendQspace の値が使用されます。
rcvQname は、返信が受信されるTuxedoドメインのキューの名前に対応します。 rcvQname は省略可能です。
最後の値も省略可能です。rcvQspace
とrcvQname
のどちらも指定されていないのに、failureQname
が指定されている場合、URI形式はtuxedo-queue:sendQspace/sendQname//failureQname
になります。
failureQname は、Tuxedoドメイン内でエラー・メッセージが格納されるキューの名前に対応します。 failureQname は省略可能です。
注意: レスポンスが想定されている場合は、リクエストを送信したのと同じスレッドでレスポンスが発生します。 |
「次へ」をクリックします。
Tuxedoトランスポート構成ページで、次の値を入力します。
「」フィールド表クラス」 - 省略可能です。受信されるFMLまたはFML32バッファを表すクラス名を入力します。これらは、フィールド名を要素名にマップするために、FMLまたはFML32からXMLへの変換ルーチンで使用されます。完全修飾クラス名をスペースで区切ってリストします。
「Viewクラス」 - 省略可能です。送受信されるVIEWまたはVIEW32バッファを表すクラス名を入力します。これらは、フィールド名を要素名にマップするために、VIEW/VIEW32からXMLへの変換ルーチンで使用されます。完全修飾クラス名をスペースで区切ってリストします。
「クラスJar」 - このエンドポイント・オペレーションに必要なFML/FML32またはVIEW/VIEW32クラスを持つJARファイルを含んだJARリソースを選択します。
「リモート・アクセス・ポイント」 - リストから、WTCインポート・サービスに関連付けられたリモート・アクセス・ポイントを選択します。このリストには、WTCで構成されたリモート・アクセス・ポイントが含まれます。関連付けられたリモート・アクセス・ポイントがない場合、ビジネス・サービスは作成できません。
リモート・アクセス・ポイントがない場合、または新規ポイントを作成する場合は「新規」を選択します。対応する「アクセス・ポイント名」と「ネットワーク・アドレス」を隣のフィールドに入力します。エンドポイントの検証時に、各WTCサーバーのWTC構成にアクセス・ポイントが追加されます。WTCサーバーがない場合は、新しいサーバーが作成されます。
「新規」オプションを選択した後では、既存のアクセス・ポイント名を入力できます。この場合、既存の情報が新しいパラメータで更新されます。変更できるのは、ホスト名とポート番号に限られます。
複数のURIを指定した場合、URIごとに1つのリモート・アクセス・ポイントが存在し、そのURIが参照用に表示されます。複数のURIが存在している場合、各URIに異なるリモート・アクセス・ポイントが必要です。既存のWTCリソースに対応するURIがすでに指定されている場合、対応するリモート・アクセス・ポイントが表示されますが、編集することはできません。
「リモート・アクセス・ポイント」 –このフィールドは、「リモート・アクセス・ポイント」フィールドで「新規」を選択した場合にのみ表示されます。リストから、新しく作成したリモート・アクセス・ポイントに関連付けるローカル・アクセス・ポイントを選択します。ローカル・アクセス・ポイントがない場合、またはローカル・アクセス・ポイントを新しく作成する場合は、「新規」を選択します。横にあるフィールドに、対応する「ローカル・アクセス・ポイント名」と「ローカル・ネットワーク・アドレス」を入力します。
注意: アクセス・ポイントは複数のエンドポイントから使用されることがあるため、エンドポイントが削除されても、トランスポートによってアクセス・ポイントが削除されることはありません。アクセス・ポイントを削除するには、Oracle WebLogic Server管理コンソールを使用します。 |
「リクエスト・バッファ・タイプ」 - リストから、リモートTuxedoサービスが受信するバッファのタイプを選択します。
「リクエスト・バッファ・サブタイプ」 - 「リクエスト・バッファ・タイプ」の値がVIEWまたはVIEW32である場合、このフィールドが有効になります。リクエスト・バッファに関連付けるバッファのサブタイプを入力します。
「レスポンスが必要」 –このチェック・ボックスを選択すると、双方向の呼出しが指定されます。選択しない場合、基礎になるtpcall
がTPNOREPLY
フラグで呼び出され、nullレスポンスが非同期的に返されます。
「トランザクションを中断」 –トランザクションがある場合、このチェック・ボックスを選択してトランザクションを停止します。この機能は、リモート・サービスがトランザクションに対応していない場合に役立ちます。
/QタイプのTuxedoリソースを呼び出す場合は、レスポンスの想定の有無に関わらず、「トランザクションを中断」オプションを使用します。一方向の呼出しから正常に戻ってきたことは、メッセージがキューに正しく置かれたことを意味します。
注意: 「トランザクションを中断」オプションが選択されていない場合、/Qモード・エンドポイントへのTuxedoトランスポートは、非同期のトランザクションを伴うトランスポートだと見なされます。これによりフレームワークがデッドロック状態に陥る事態が防止されます。/Qモードでは、エンドポイントが返信を想定している場合、複数の管理対象サーバーにある複数のスレッドが同じ宛先に返信を行うことがあります。このため、実行時に返信が想定される場合は、ユニークな相関IDがリクエストと共に送信されます。 デキュー操作では、この相関IDを持つメッセージを待機します。相関IDはJMSトランスポートの同様の状況で使用される場合と同等の方法で構成されます。 |
「ディスパッチ・ポリシー」 - リストから使用可能な場合は、Oracle WebLogic Serverワーク・マネージャを選択します。デフォルトのワーク・マネージャは、他のワーク・マネージャがない場合に使用されます。ワーク・マネージャは、一方向の呼出しの場合に非同期にnullレスポンスをポストします。
「リクエストのエンコーディング」 - Tuxedoトランスポートのリクエストにおける文字セットのエンコーディング指定します。
「レスポンスのエンコーディング」 - Tuxedoトランスポートのレスポンスにおける文字セットのエンコーディング指定します。
「変換スタイル」 - FMLまたはFML32バッファがXMLに変換される際の要素の順序またはグループ化を示します。次のいずれかを選択します。
「なし」
: (デフォルト)フィールドの順序を無視します。
「順序付け」
: すべてのフィールドを正しい順序で表示します。
順序付けとグループ別
: フィールドが論理的にレコード構造になっている場合、発生順に並べ替えられ、レコードごとにグループ化されます。
「タイムアウト」 – トランスポートのランタイムが返信を待機する最大時間を秒単位で0以上の整数値で指定します。指定されていない場合、またはゼロ(デフォルト)に指定されている場合は、ローカルのTuxedoアクセス・ポイントがブロック呼出しを許可する最大秒数であるBLOCKTIMEの時点で返信はタイムアウトします。
実行時、タイムアウト値を超えている返信は無視され、TPETIME例外でエラー・メッセージが返されます。
タイムアウト値は、リクエスト/レスポンスサービスでのみ指定します。/Qまたは一方向エンドポイントでは、「タイムアウト」フィールドは使用できません。アウトバウンド呼出しの一部がトランザクションである場合、タイムアウト値は無視されます。
注意: WTC BLOCKTIME値がタイムアウト値よりも短い場合、WTC BLOCKTIME値が優先されます。たとえばエンドポイントのタイムアウト値が30秒で、WTC BLOCKTIMEが20秒の場合、呼出しは20秒でタイムアウトします。 |
「終了」をクリックします。
「サマリー」ページで「保存」をクリックします。
ビジネス・サービスを指定し、エンドポイントURIを定義する場合に、リソース名とは異なるリモート名を入力すると、Oracle Service Busのロード・バランシングおよびフェイルオーバー機能が使用できます。この場合、複数のサービス名を定義し、それらを、複数のリモート・ドメインにレプリケートされたサービスに関連付けることができます。リソース名はユニークである必要がありますが、リモート名はユニークである必要はありません。
Tuxedoトランスポートのビジネス・サービスでアプリケーションと通信のエラーを処理するには、次のように構成します。
アプリケーション・エラー – アプリケーション・エラーが発生したときにビジネス・サービスのエンドポイントURIを再試行するかどうかを指定できます。4.2.4項「ビジネス・サービスの「トランスポート構成」ページ」の「アプリケーション・エラーの再試行」オプションを参照してください。
通信エラー–通信エラーが発生した場合に、ビジネス・サービスのURIがオフラインになるように構成できます。『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の「ビジネス・サービスの操作設定の構成」のビジネス・サービス・エンドポイントURIのオフラインの有効化に関する項およびビジネス・サービスのエンドポイントURIのメトリックの表示に関する項を参照してください。
表35-1はTuxedo例外と例外によって示されるOracle Service Busエラーについて説明しています。
Oracle Service BusでTuxedoが動作するための構成が終了したら、Oracle Service Busコンソールにあるテスト・コンソールを使用して構成をテストできます。
次のタスク・リストは、Oracle Service BusによるTuxedoのアウトバウンドでの使用をテストするプロセスをまとめたものです。
Tuxedoサーバーを構築して起動します。
Oracle Service Busプロキシ・サービスを呼び出すようにTuxedoサービスを設定します。
Oracle Service Busコンソールで、チェンジ・センターの下にある「アクティブ化」をクリックして、テスト・コンソールを有効にします。
「プロジェクト・エクスプローラ」で、テストするビジネス・サービスに関連付けられた「テスト・コンソールの起動」アイコンをクリックします。
テスト・コンソールにペイロードを入力します。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のビジネス・サービスのテストに関する項を参照してください。
「実行」をクリックします。
レスポンス・ページに、サービス・リクエストの結果が表示されます。
以下の項では、TuxedoからOracle Service Busサービスを使用する方法について説明します。
TuxedoサービスをOracle Service Busから利用するには、Oracle Service Busコンソールで新しいプロキシ・サービスを構成する必要があります。プロキシ・サービスの詳細は、2.3項「プロキシ・サービスの操作」を参照してください。
Oracle Service Busコンソールにログインし、以下の手順を順番に実行します。
この構成を完了するには、以下の項で説明するタスクを実行します。
次の手順を実行します。
チェンジ・センターで、「作成」をクリックして新しいセッションを作成するか、または「編集」をクリックして既存のセッションに入ります。
リソースの編集はセッション内で行う必要があります。
「プロジェクト・エクスプローラ」を選択します。
新しいプロジェクトの名前を入力し、「プロジェクトの追加」をクリックします。
ページ上部に、プロジェクトの追加に成功したことを示すメッセージが表示されます。
次の手順を実行します。
新しく作成したプロジェクトの名前をクリックします。
「リソースの作成」フィールドで「プロキシ・サービス」を選択します。
「プロキシ・サービスの作成」 – 「全般的な構成」ページで、次の値を入力します。
「サービス名」 - サービスの名前です。
「サービス・タイプ」 - 「任意のXMLサービス」(デフォルト)を選択します。
注意: Tuxedoトランスポートは、サービスのタイプとして、任意のXMLサービスとメッセージング・サービスのみをサポートします。 |
「次へ」をクリックします。
「プロキシ・サービスの作成」 – 「トランスポート構成」ページで、次の値を入力します。
「プロトコル」 – tuxedoを選択します。
「エンドポイントURI」 - サービスがデプロイされたTuxedoサーバー上のエンドポイントURIに対応するサービス名を入力します。
「次へ」をクリックします。
Tuxedoトランスポート構成ページで、次の値を入力します。
「」フィールド表クラス」 - 省略可能です。受信されるFMLまたはFML32バッファを表すクラス名を入力します。これらは、フィールド名を要素名にマップするために、FMLまたはFML32からXMLへの変換ルーチンで使用されます。完全修飾クラス名をスペースで区切ってリストします。
「Viewクラス」 - 省略可能です。送受信されるVIEWまたはVIEW32バッファを表すクラス名を入力します。これらは、フィールド名を要素名にマップするために、VIEW/VIEW32からXMLへの変換ルーチンで使用されます。完全修飾クラス名をスペースで区切ってリストします。
注意: Tuxedoのバッファ・タイプX_C_TYPEとX_COMMONは、VIEW/VIEW32バッファと同様に処理されます。着信リクエストにVIEWバッファが含まれる場合は、該当するVIEWクラスをOracle Service BusのCLASSPATHで指定します。 |
「クラスJar」 - このエンドポイント・オペレーションに必要なFML/FML32またはVIEW/VIEW32クラスを持つJARファイルを含んだJARリソースを選択します。
「ローカル・アクセス・ポイント」 –リストから、WTCエクスポート・サービスに関連付けられたローカル・アクセス・ポイントを選択します。このリストには、WTCで構成されたローカル・アクセス・ポイントが含まれます。関連付けられたローカル・アクセス・ポイントがない場合、プロキシ・サービスは作成できません。
ローカル・アクセス・ポイントが存在しない場合、または、新しいローカル・アクセス・ポイントを作成する場合は、「新規」を選択します。対応する「ローカル・アクセス・ポイント名」と「ローカル・ネットワーク・アドレス」を隣のフィールドに入力します。エンドポイントの検証時に、各WTCサーバーのWTC構成にアクセス・ポイントが追加されます。WTCサーバーがない場合は新しいサーバーが作成されます。
「新規」オプションを選択した後では、既存のアクセス・ポイント名を入力できます。この場合、既存の情報が新しいパラメータで更新されます。変更できるのは、ホスト名とポート番号に限られます。
「リモート・アクセス・ポイント」 – このフィールドは、「ローカル・アクセス・ポイント」フィールドで「新規」を選択した場合にのみ表示されます。リストから、新しく作成したローカル・アクセス・ポイントに関連付けるリモート・アクセス・ポイントを選択します。リモート・アクセス・ポイントがない場合、またはリモート・アクセス・ポイントを新しく作成する場合は、「新規」を選択します。横にあるフィールドに、対応する「アクセス・ポイント名」と「ネットワーク・アドレス」を入力します。
リモート・アクセス・ポイントは、インバウンド・リクエストに対するWTC接続の認証プリンシパルでもあります。あるいは、インバウンド呼出しを許可するために、デフォルトのセキュリティ・レルムで同じアクセス・ポイントIDを持つユーザーを作成することもできます。
これを行うには、「ユーザーを作成しますか。」フィールドで「はい」を選択します。セキュリティの問題を回避するために、パスワードは一時変数を使用してランダムに生成されます。
注意: アクセス・ポイントとユーザーは複数のエンドポイントから使用されることがあるため、エンドポイントが削除されても、トランスポートによってアクセス・ポイントとユーザーが削除されることはありません。アクセス・ポイントを削除するには、Oracle WebLogic Server管理コンソールを使用します。 |
「レスポンス・バッファ・タイプ」 – リストから、リモートTuxedoクライアントが受信するバッファのタイプを選択します。このフィールドは、「レスポンスが必要」フィールドが選択されている場合に有効になります。
「応答バッファ・サブタイプ」 - 「リクエスト・バッファ・タイプ」の値がVIEWまたはVIEW32である場合、このフィールドが有効になります。応答バッファに関連付けるバッファのサブタイプを入力します。
「レスポンスが必要」 –このサービスにレスポンスの送信が想定されている場合は、チェック・ボックスを選択します。このチェック・ボックスは、デフォルトの状態で選択されています。ただし、サービス・タイプが「メッセージ・サービス」であり、レスポンス・タイプが「なし」の場合は、このチェック・ボックスは選択されておらず、フィールドは無効になっています。
「リクエストのエンコーディング」 - Tuxedoトランスポートのリクエストにおける文字セットのエンコーディング指定します。
「レスポンスのエンコーディング」 - Tuxedoトランスポートのレスポンスにおける文字セットのエンコーディング指定します。
「変換スタイル」 - FMLまたはFML32バッファがXMLに変換される際の要素の順序またはグループ化を示します。次のいずれかを選択します。
「なし」
: (デフォルト)フィールドの順序を無視します。
「順序付け」
: すべてのフィールドを正しい順序で表示します。
順序付けとグループ別
: フィールドが論理的にレコード構造になっている場合、発生順に並べ替えられ、レコードごとにグループ化されます。
「終了」をクリックします。
「サマリー」ページで「保存」をクリックします。
Oracle Service Busのメッセージ・フローは、プロキシ・サービスの実装を定義します。メッセージ・フローには、パイプライン・ペア(プロキシ・サービス、またはサービスの処理用のリクエスト・パイプラインとレスポンス・パイプライン)と、ステージ、パイプライン、およびプロキシ・サービスに対して定義できるエラー・ハンドラをゼロ個以上入れることができます。パイプラインは、1つまたは複数のステージを持つことができ、ステージはアクションを持ちます。
メッセージ・フローの作成、編集および表示の詳細は、2.4項「プロキシ・サービス・メッセージ・フローの操作」および『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Busでのメッセージ・フローのモデル化に関する項を参照してください。
以下の項では、次の作業を行って、プロキシ・サービスのルーティング動作を変更し、このメッセージ・フローを編集する方法の例について説明します。
ルート・ノードの追加
プロキシ・サービスからビジネス・サービスへルーティングを行うアクションの構成
次の手順を実行します。
Oracle Service Busコンソールで、「リソース・ブラウザ」→「プロキシ・サービス」の順に選択します。
35.4.1.2項「プロキシ・サービスの追加」で作成したプロキシ・サービスの行にある「メッセージ・フローの編集」アイコンをクリックします。
「メッセージ・フローの編集」ページにデフォルトのメッセージ・フローの構成が表示されます。これにはサービスの開始ノードであることを表す「プロキシ・サービス」アイコンが1つ含まれています。これはメッセージ・フローの最小構成です。メッセージ・フローの動作は順番に行われます。
「プロキシ・サービス」アイコンをクリックし、「ルートの追加」を選択します。
「ルート・ノード」アイコンをクリックし、名前と説明の編集をクリックします。必要に応じて名前と説明を変更し、「保存」をクリックします。
メッセージ・フローで、ノードの名前が変更され、ルート・ノード名が表示されます。
名前を付けた「ルート・ノード」アイコンをクリックし、「ルートの編集」を選択します。
「ステージ構成の編集」ページに表示されるオブジェクトは「アクションの追加」アイコンのみです。
ステージはパイプラインの要素であり、パイプラインに定義されたアクションのコンテナです。アクションとは、プロキシ・サービスを通過するメッセージの処理を定義するパイプライン・ステージの要素です。
「アクションの追加」アイコンをクリックし、「アクションの追加」→「通信」→「ルーティング」の順に選択します。
「ステージ構成の編集」ページが変更され、アクションの内容が表示されます。アクションの内容は、作成したノードのタイプ(ルート・ノード)によって定義されます。
「サービス」をクリックします。
サービス・ブラウザに作成したプロキシ・サービスとビジネス・サービスが表示されます。
Tuxedoに公開するビジネス・サービスを選択します。
「発行」をクリックします。
画面が更新され、ビジネス・サービスへのルーティングが表示されます。
構成が完了し、テストの準備が整いました。
TuxedoをOracle Service Busと共に使用するように構成したら、正しく動作することを確認するためのテストを実行できます。XMLからFML32およびFML32からXMLへの変換を使用している場合は、Tuxedoに含まれているud32
Tuxedoクライアント・プログラムを使用してこの構成をテストできます(FML変換を使用している場合は、ud
クライアントを使用できます)。ud32
は、FMLバッファのテキスト表現で構成される入力を読み込みます。
XMLからFMLおよびFMLからXMLへの変換を使用しない場合は、テスト・クライアント・プログラムをTuxedoで開発してこの構成をテストする必要があります。
Oracle Service BusとTuxedoを相互運用して、各製品に用意されているバッファ変換を含めたサービスを使用できます。Oracle Service BusのサービスのタイプとTuxedoのバッファ・タイプによって変換の方法が決まります。
TuxedoトランスポートがOracle Service Busでサポートするサービスのタイプは、任意のXMLサービスおよびメッセージング・サービスです。
任意のXMLサービス(SOAP以外) - XMLベースのサービスへのメッセージはXMLですが、サービスの構成で許可された任意のTuxedoのバッファ・タイプを使用できます。
メッセージング・サービス - メッセージング・サービスは、あるデータ型のメッセージを受信し、レスポンスとして別のデータ型のメッセージを返すことができます。サポートされるデータ型は、XML、MFL、テキスト、および型なしバイナリです。
以下の項では、Tuxedoトランスポートでのバッファ変換の処理方法について説明します。
表35-2に、サービスのタイプが任意のXMLサービスの場合の、Tuxedoのバッファ・タイプに応じたTuxedoトランスポートの動作を示します。
注意: 任意のXMLサービスの場合、ペイロードは整形式のXMLドキュメントであることが必要です。 |
表35-2 任意のXMLサービスの場合のバッファ変換
Tuxedoのバッファ・タイプ | Tuxedoトランスポートの動作 |
---|---|
STRING |
バッファをそのまま渡します。 |
CARRAY X_OCTET |
バッファをそのまま渡します。 |
FML/FML32 |
構成されたフィールド・クラスを使用して、バッファをXMLに(またはXMLからバッファに)変換します。 |
XML |
バッファをそのまま渡します。 注意: TuxedoのバッファがXMLの場合、TuxedoアプリケーションはNULLバイトを送信しません。 |
VIEW/VIEW32 X_C_TYPE X_COMMON |
構成されたViewクラスを使用して、バッファをXMLに(またはXMLからバッファに)変換します。 |
MBSTRING |
バッファをそのまま渡します。 注意: エンコーディングは、送受信されたメッセージのMetaDataの |
表35-3に、サービスのタイプがメッセージング・サービスの場合の、Tuxedoのバッファ・タイプに応じたTuxedoトランスポートの動作を示します。
注意: サブタイプになしが指定されている場合、Tuxedoトランスポートはバッファを受信しません。 |
表35-3 メッセージング・サービスの場合のバッファ変換
Tuxedoのバッファ・タイプ | バイナリ・メッセージング・タイプ | テキスト・メッセージング・タイプ | MFLメッセージング・タイプ | XMLメッセージング・タイプ |
---|---|---|---|---|
STRING |
そのまま渡されます。 |
そのまま渡されます。 |
バッファが適切な形式であると仮定し、そのまま渡されます。そうでない場合、トランスポートによってエラーが返されます。 |
XML |
CARRAY |
そのまま渡されます。 |
サポートされません |
バッファが適切な形式であると仮定し、そのまま渡されます。そうでない場合、トランスポートによってエラーが返されます。 |
XML |
FML/FML32 |
そのまま渡されます。 |
サポートされません |
サポートされません |
XML |
XML |
そのまま渡されます。 |
そのまま渡されます。 |
サポートされません |
XML |
VIEW/VIEW32 |
そのまま渡されます。 |
サポートされません |
サポートされません |
XML |
MBSTRING |
そのまま渡されます。 |
そのまま渡されます。 |
バッファが適切な形式であると仮定し、そのまま渡されます。そうでない場合、トランスポートによってエラーが返されます。 |
XML |
Tuxedoトランスポートはバッファ処理を、任意のXMLサービス・タイプのサービスと同様に行います。
Oracle Service BusとTuxedoを相互運用して、各製品に用意されているサービスを使用できます。多くの場合、サービスにはトランザクション処理が含まれます。Tuxedoトランスポートは、Oracle Service Busでのトランザクションを活用、または開始します。
注意: このトランザクション・サポートの例外は、インバウンド・トランスポートがトランザクション対応のメッセージのあるTuxedoで、アウトバウンドがリクエストおよびレスポンスXA/JMSの場合です。この場合、Oracle Service Busは例外を検出し、結果はTPESYSTEMエラーになります。 |
Tuxedoトランスポートのトランザクション動作は、メッセージ・コンテキスト・レベルで使用できるサービスの品質(QoS)設定に基づきます。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービスの品質に関する項を参照してください。
以下の項では、Tuxedoトランスポートでのトランザクションの処理方法について説明します。
トランザクション・コンテキストを受信すると、パイプラインに送信されるメッセージによって、QoSが「必ず1回」に設定されるか、そうでない場合は、QoSは「ベスト・エフォート」に設定されます。
応答がクライアントに返される前にTransportExceptionが捕捉された場合、TPESYSTEM
例外を送出してリクエストが中断され、トランザクションは結果をロールバックします。
ビジネス・サービスを呼び出すスレッドにトランザクション・コンテキストがある場合、Tuxedoトランスポートは以下のように動作します。
QoSが「必ず1回」に設定されている場合、エンドポイントがトランザクションを一時停止するように構成されている場合を除いて、Tuxedoトランスポートは、自動的にトランザクション・コンテキストをリモート・ドメインに転送します。
QoSが「ベスト・エフォート」に設定されている場合、Tuxedoトランスポートは、呼出しを行う前にトランザクションを一時停止し、呼出しが行われてから再開します。これは、TPNOTRAN
フラグを設定してATMI呼出しを行う場合と同じです。
ビジネス・サービスを呼び出すスレッドに、関連付けられているトランザクションがない場合、QoS設定に関係なく、Tuxedo呼出しは非トランザクションとして行われます。この場合、TPNOTRAN
フラグが設定されたtpcall()
またはtpacall()
に相当します。