SBトランスポートによって、Oracle製品からRMIを使用して、Oracle Service Busプロキシ・サービスを同期的に呼び出すことができます。インバウンド・トランスポートでは、クライアントがRMIを使用してSBプロキシ・サービスにアクセスできます。アウトバウンド・トランスポートでは、RMIを使用してSBプロキシ・サービスを呼び出すことができます。デフォルトでは、T3プロトコル、IIOP、HTTP、T3、IIOPS、またはHTTPSを使用したすべてのサービスへのアクセスが、ターゲット・サーバーの構成に依存します。詳細は、Oracle Fusion Middleware Oracle WebLogic Server管理コンソールのオンライン・ヘルプのデフォルト・ネットワーク接続の構成に関する項を参照してください。
SBトランスポートでは、以下の機能がサポートされます。
トランザクション・コンテキストを伝播します。クライアントOracle Service Busサーバーで発生したトランザクションを必要に応じてSBプロキシ・サービスに伝播することができます。
セキュリティ・コンテキストを伝播します。デフォルトでは、SBクライアント・スレッドに関連付けられたセキュリティ・コンテキストを使用してSBプロキシ・サービスを呼び出します。これには、ドメイン間の信頼を有効化しなければならない場合があります。『Oracle Fusion Middleware Oracle WebLogic Serverの保護』のドメイン間セキュリティ・サポートの重要事項に関する項を参照してください。
サービス・アカウントを使用したアウトバウンド・エンドポイントから、カスタムIDでSBプロキシ・サービスを呼び出します。
非トランザクションの呼出しに対してタイムアウト値を指定します。Oracle Service Busが指定間隔以内にリクエストに応答しない場合、クライアント・リクエストは返されます。
リクエスト接続とレスポンス接続両方でのディスパッチ・ポリシーの関連付け。詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverサーバー環境の構成』のワーク・マネージャを使用したスケジューリング済作業の最適化に関する項を参照してください。
JNDIプロバイダを指定せずにSBビジネス・サービスにルーティングする場合、RMI呼出しおよびcall-by-referenceを最適化します。
以下のサービス・タイプに対応します。
WSDLサービス
任意のSOAPサービス
任意のXMLサービス
以下のメッセージング・パターンに対応します。
インバウンド・トランスポートに対するリクエスト(一方向)およびリクエスト/レスポンス。
Oracle Service Busクライアントの場合、メッセージング・パターンはデフォルトでSBアウトバウンド・トランスポートのパイプラインから継承されます。
Oracle Service Bus以外のクライアントの場合、メッセージング・パターンはデフォルトでリクエスト/レスポンスになります。
アウトバウンド・トランスポートの環境値に対するリクエストおよびリクエスト/レスポンス。SBでサポートされる環境値の詳細は、27.1項「環境値」を参照してください。
サービスの品質(QoS)のデフォルト値は以下のとおりです。
Oracle Service Bus以外のクライアントの場合、Exactly-Onceです。
Oracle Service Busクライアントの場合、Best-Effortです。
メッセージ・フローのルーティング・オプションを使用してサービスのQoSを設定することもできます。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。
このドキュメントでは、以下の内容について説明します。
SBトランスポートでサポートされる環境値を表27-1に示します。
クライアントOracle Service Busサーバーは、JNDIコンテキストおよびプロキシ・サービスURIを使用してOracle Service Busサーバーに接続します。クライアントのセキュリティ・コンテキストは、プロキシ・サービスを呼び出すために使用されます。デフォルトのQoSはExactly-once
です。クライアントは必要に応じて、QoSを変更し、リクエストのタイムアウト値を設定し、適切なメッセージ・パターンを指定することができます。メッセージはインバウンドSBトランスポートで受信し、メッセージ・フローで処理されます。
Oracle Service Busコンソールからプロキシ・サービスを作成するには
「全般的な構成」ページで、サービスの全般的な構成の詳細を入力します。詳細は、4.3.1項「プロキシ・サービスの「全般的な構成」ページ」を参照してください。
「トランスポート構成」ページで転送プロトコルとしてsb
を選択します。エンドポイントURIに<proxy service name>
を指定します。このプロキシ・サービス名は、クライアントによって呼び出されるプロキシ・サービスに関連付けられた一意の識別子です。詳細は、4.3.6項「プロキシ・サービスの「トランスポート構成」ページ」を参照してください。
表27-2の説明に従って、SBの「トランスポート構成」ページで値を指定します。
表27-2 プロキシ・サービスのSBトランスポートを構成するためのフィールド
フィールド | 説明 |
---|---|
ディスパッチ・ポリシー |
デフォルトのディスパッチ・ポリシーを使用するか、またはインバウンド・リクエスト用にワーク・マネージャを構成できます。ディスパッチ・ポリシーは、サービスのエンドポイントに使用するWLSワーク・マネージャのインスタンスを参照します。詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverサーバー環境の構成』のワーク・マネージャを使用したスケジューリング済作業の最適化に関する項を参照してください。 |
SSLを使用 |
セキュアなプロトコルを使用してサービスを公開するには、「SSLを使用」オプションを選択します。これは、クライアントがSSLプロトコルを使用してSBプロキシ・サービスにアクセスする必要があることを意味しますが、クライアントが非セキュアなプロトコルを使用してサービスにアクセスすることを防止するわけではありません。また、次の場合は、サービスに関連付けられたエンドポイントURIがsbではなくsbsになります。
注意: プロキシ・サービスは特定のプロトコルにバインドされません。必要に応じてSSL、IIOPまたはHTTPトンネリングを有効にする作業は、WLS管理者が行う必要があります。 このフラグは、エクスポート時のサービスのURIスキーム、またはUDDIからインポートされるときのビジネス・サービスURIに対するJNDIプロバイダの選択にのみ影響します。クライアントが非セキュアなプロトコルを使用してサービスにアクセスすることを防止するわけではありません。 |
詳細は、2.3項「プロキシ・サービスの操作」を参照してください。
SBビジネス・サービスは、他のSBプロキシ・サービスに対してのみメッセージを送信できます。ビジネス・サービスのエンドポイントURIに指定されたJNDIプロバイダは、リモートOracle Service Busサーバー上でJNDIルックアップを実行します。クライアントのユーザー資格証明またはビジネス・サービスに関連付けられたサービス・アカウントに定義済みのユーザー資格証明を使用して、プロキシ・サービスを呼び出します。必要に応じて、タイムアウト値およびカスタム・ディスパッチ・ポリシーをビジネス・サービスに関連付けることもできます。また、サービスのQoSを、ルーティング・オプションを使用して設定することができます。
Oracle Service Busコンソールからビジネス・サービスを作成するには
「全般的な構成」ページで、サービスの全般的な構成の詳細を入力します。詳細は、4.2.1項「ビジネス・サービスの「全般的な構成」ページ」を参照してください。
「トランスポート構成」ページで転送プロトコルとしてsb
を選択し、エンドポイントURIを次の形式で指定します。
sb://<jndi_provider_name>/<service_name>
各要素の説明は次のとおりです。
<jndi_provider_name>
はJNDIプロバイダの名前で、対応するOracle Service Bus JNDIプロバイダを示します。省略可能です。省略した場合は、デフォルトのコンテキストが使用されます。これは、サービスとOracle Service Busサーバーが同じマシンに存在することを意味します。呼出しが同じ場所にある場合、シリアライズはサービス呼出し中にスキップされます。詳細は、27.3.1項「JNDIプロバイダ」を参照してください。
<service name>
は対象サービスで、リモート・プロキシ・サービスURIに対応します。
詳細は、4.2.4項「ビジネス・サービスの「トランスポート構成」ページ」を参照してください。
表27-3の説明に従って、SBの「トランスポート構成」ページで値を指定します。
表27-3 ビジネス・サービスのSBトランスポートを構成するためのフィールド
フィールド | 説明 |
---|---|
ディスパッチ・ポリシー |
このサービス・エンドポイントのディスパッチ・ポリシーとして使用するOracle WebLogic Serverワーク・マネージャのインスタンスを選択します。他にワーク・マネージャが存在しない場合はデフォルトのワーク・マネージャが使用されます。詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverサーバー環境の構成』のスケジュール済作業を最適化するワーク・マネージャの使用に関する項を参照してください。 |
タイムアウト |
ビジネス・サービスがタイムアウトになるまでの期間を秒単位で指定します。タイムアウトが発生すると、ビジネス・サービスは実行時エラーを返します。 指定したタイムアウト値は、次の場合には適用されません。
|
サービス・アカウント |
リモート・プロキシ・サービスの呼出しに使用する必要があるユーザー資格証明を指定します。サービス・アカウントを指定しない場合、このビジネス・サービスのインバウンド・プロキシ・サービス(インバウンド・クライアント)のユーザー資格証明が、セキュリティ・コンテキストの伝播に使用されます。詳細は、2.1.16項「サービス・アカウント・リソースの作成」を参照してください。 |
詳細は、2.2項「ビジネス・サービスの操作」を参照してください。
JNDIプロバイダは、SBプロキシ・サービスに対応するRMIスタブを取得するためにサービスがデプロイされているOracle Service Busサーバーを示します。JNDIプロバイダには、リモート接続とEJBスタブのための高性能なキャッシング・メカニズムがあります。JNDIプロバイダでは、T3、IIOP、HTTP、T3s、IIOPS、またはHTTPS転送プロトコルを使用できます。Oracle Service BusからWebLogic Serverドメインへの推奨される通信プロトコルは、T3またはT3Sです。メッセージがファイアウォールを通過する必要がある場合は、HTTPトンネリングを使用できます。使用するには、コンテキスト内でHTTPプロバイダのURLを使用し、WLSサーバー上でHTTPトンネリングを有効にします。
注意: JNDIプロバイダでサポートされるプロトコルがリモートOracle Service Busサーバーにあるかどうかの確認は、管理者が行う必要があります。 |
ビジネス・サービスを作成するとき、ビジネス・サービスにJNDIプロバイダを関連付けることができます。詳細は、27.3項「SBトンランスポートを使用するビジネス・サービスの構成」および2.1.6項「JNDIプロバイダ・リソースの作成」を参照してください。
通信エラーを処理するようにSBトランスポート・ビジネス・サービスを構成できます。ビジネス・サービスURIは、通信エラーが発生したときにオフラインにすることができます。ビジネス・サービスの操作設定を構成するときに、指定した再試行間隔の後、ビジネス・サービスのエンドポイントURIがオフラインになるように設定できます。
詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』、「モニター」のビジネス・サービスの操作設定の構成に関する項およびビジネス・サービスのエンドポイントURIメトリックの表示に関する項を参照してください。
SBプロキシ・サービスの呼出し中に接続エラーが発生すると、SBトランスポート・プロバイダによってBEA-380002
エラー・コードが生成されます。
接続エラーは、以下のいずれかの理由で発生する可能性があります。
対象のプロキシ・サービスが存在しません。
JNDIプロバイダ設定が正しくありません。
RMI呼出し中に、リモート例外またはネーミング例外が発生しています。
注意: ネーミング例外のタイプjavax.naming.NamingSecurityException は、通常、呼出しで使用されたIDが対象サーバーで認識されない場合に発生します。この例外が発生すると、リクエストは全般的な実行時エラーを返します。このエラーは、接続エラーとして処理されません。 |
SBプロキシによって返されるSOAPフォルトは、アプリケーション・エラーとして処理されます。
UDDIレジストリに対してサービスのインポートとパブリッシュを行うことができます。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のUDDIに関する項を参照してください。
プロキシ・サービスをUDDIレジストリにパブリッシュする場合、パブリッシュしたサービスに関連付けられたURIの形式は、次のとおりです。
sb://host:port/service_name
ここで、host:portはパブリッシュするプロキシ・サービスをホスティングしているOracle Service Busサーバーのホスト名とリスニング・ポートを示します。
パブリッシュするプロキシ・サービスで「SSLを使用」
オプションが有効になっている場合、パブリッシュされたサービスに関連付けられたURIの形式は、次のとおりです。
sbs://host:port/service_name
ここで、host:portはプロキシ・サービスをホスティングしているOracle Service Busサーバーのホスト名とSSLリスニング・ポートを示します。
パブリッシュするプロキシ・サービスがクラスタ上で実行されている場合、host:port
はconfig.xml
ファイルのClusterセクションにあるCluster Address
設定になります。この値は、クラスタ内の任意のWLSへの接続に使用される1つのホスト名およびポート番号にすることができます。または、Oracle Service Busクラスタ内の管理対象サーバーのホスト名およびリスナー・ポートのカンマ区切りのリストにすることもできます。詳細は、Oracle Fusion Middleware OracleのWebLogic Server JNDIプログラミング・ガイドのWebLogic JNDIに関する項を参照してください。
詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のUDDIレジストリへのプロキシ・サービスのパブリッシュに関する項を参照してください。
UDDIレジストリからサービスをインポートする場合、SBトランスポート・プロバイダは、サービスURIプロパティのsbschemeおよびhost:port情報を、sbschemeに基づく適切なプロトコルを使用してOracle Service Busサーバー上で登録されたJNDIプロバイダと照合します。sbschemeはSBトランスポート・ベースのサービスのURIスキームで、sbまたはsbsのいずれかになります。
sbschemeがsbである場合、トランスポート・プロバイダはT3、T3S、IIOP、IIOPS、HTTP、またはHTTPSプロトコルを(この順序で)使用してJNDIプロバイダを検索します。sbschemeがsbsである場合、トランスポート・プロバイダはT3Sプロトコル、IIOPS、次にHTTPSを(この順序で)使用してJNDIプロバイダを検索します。サービスURIプロパティに一致するJNDIプロバイダは、Oracle Service Busにインポートするビジネス・サービスのエンドポイントURIを生成するために使用されます。
一致するJNDIプロバイダがない場合、インポートは失敗し、デフォルトのコンテキストが使用されます。ただし、インポートされたURIがローカルURIでスキームがsb以外の場合を除きます。サービスにJNDIプロバイダが指定されていないので、サーバーと同じ場所にあるものと見なされることを意味します。
たとえば、サービスURIプロパティ値が次のようになっている場合を考えます。
sbs://remote_oracle_service_bus_host:7002/myservice
Oracle Service Busにインポートされたビジネス・サービスに生成されるURIは、次のようになります。
sb://my_jndi_provider/myservice
ここで、my_jndi_provider
はt3s://remote_oracle_service_bus_host:7002
URLのOracle Service Busサーバー上で登録されたJNDIプロバイダ・リソースです。
詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のUDDIレジストリからのビジネス・サービスのインポートに関する項を参照してください。