この章では、HTTP(S)トランスポートおよびポーラー・トランスポート(電子メール、ファイル、FTPおよびSFTP)の概要と、サービスでの使用および構成方法について説明します。
HTTPトランスポートの項では、Service BusでのRESTの使用についても説明しますが、「Oracle Service BusでのRESTサービスの作成」の説明に従い、RESTバインディングも使用できます。
このドキュメントは、次の項で構成されています。
様々なタイプのトランスポートを使用して、Service Busのプロキシ・サービスまたはビジネス・サービスを構成できます。選択する転送プロトコルは、サービス・タイプ、必要な認証のタイプ、呼出し元のサービスのサービス・タイプなどによって異なります。ポーリングベースのトランスポートでは、管理対象サーバーにトランスポート・ポーラーが固定されています。このようなトランスポートは、ソース・ディレクトリまたは電子メール・サーバーで新しいメッセージをポーリングします。メッセージが1回以上処理されるように、JMSフレームワークが使用されます。電子メール、ファイル、FTPおよびSFTPは、ポーリングベースのトランスポートです。
デフォルトでは、ポーラー・トランスポートはWebLogic Server JMSを使用しますが、クラスタ化されたドメインは、ドメインの作成または拡張時にOracle Advanced Queueing (AQ) JMSを使用するように構成できます。リポジトリ作成ユーティリティ(RCU)を実行すると、必要なすべてのService Busキューおよびキュー表が作成されます。「到着順にソート」機能は、AQ JMSでのポーリングベースのトランスポートではサポートされていません。
Oracle AQを使用する環境の構成については、『Oracle Service Busの管理』のOracle Advanced Queueing JMSの使用に関する項を参照してください。
HTTPトランスポートは、Service BusでHTTP(S)プロトコルを使用してクライアントとサービス・プロバイダ間でメッセージの送信を行います。また、「RESTサポート」で説明されているように、HTTPトランスポートはRepresentational State Transfer (REST)環境での作業のサポートも提供します。
Service Busでは、ロード・バランシングにおいてビジネス・サービスにHTTPセッションの固定またはセッション・アフィニティがサポートされるため、特定のセッションに対するすべてのリクエストが1つのサーバーによって処理されます。固定は、サービスURI表の特定のエントリにセッションをマップすることで保持されます。スティッキー・セッションでは、最初のリクエストを処理するURIエントリがセッションを持ち、セッションの後続のメッセージがロード・バランサで受信された際は、最初のリクエストを処理したサービスURIエントリと同じエントリでルーティングされます。
標準的なロード・バランシング環境では、Service Busによって複数のサーバー間で負荷を分散できるため、セッション内の複数のメッセージをクラスタ内の同じサーバーで処理する必要がある場合は、セッションを固定するためにビジネス・サービスを構成する必要があります。
注意:
Oracle Service Busコンソールでは、サービスの再起動を必要とせずに、実行時にスティッキー・セッションを構成できます。
Service Busでは、スティッキー・セッションに対する次のシナリオはサポートされていません。
1つのメッセージ・フローにおける、セッションが固定された複数のビジネス・サービス。
同じパイプラインにおける、セッションが固定された複数のビジネス・サービス。
セッションが固定されたビジネス・サービスを示す分割-結合サービス。
セッションが固定された様々なビジネス・サービスへの動的ルーティング。
また、セッションを固定するように構成されたビジネス・サービスに対しては抑制が機能しないことにも注意してください。
Service Busは、セキュリティの脆弱性が生じるため、リクエストからパイプラインにHTTP認可ヘッダーを渡しません。ユーザー名と暗号化されていないパスワードをログ・ファイルに書き込むログ・アクションを誤って作成するおそれがあります。
パイプラインでHTTP認可ヘッダーが必要なパターンを設計する場合は、次の手順を実行してください。
この項では、エンドポイントURIの形式およびプロキシ・サービスとビジネス・サービスにおけるHTTPトランスポートの構成について説明します。
任意のタイプのプロキシ・サービスまたはビジネス・サービスを構成する場合は、HTTP転送プロトコルを選択できます。エンドポイントURIの形式は次のとおりです。
プロキシ・サービス: /service_name
ビジネス・サービス: http://host:port/service_name
説明:
host
は、サービスをホストするシステムの名前です。
port
は、接続を行うポート番号です。
service_name
はターゲット・サービス名です。
注意:
HTTPSに基づくビジネス・サービスを構成するときは、次のエンドポイントURIを指定する必要があります。
https://host:port/someService
次の表に、プロキシ・サービス用のHTTPトランスポートの構成に使用するプロパティを示します。詳細は、「プロキシ・サービスの作成と構成」を参照してください。
表29-1 プロキシ・サービス用のHTTPトランスポート・プロパティ
プロパティ | 説明 |
---|---|
HTTPSが必要 |
インバウンドHTTPSエンドポイントの場合は、このチェック・ボックスを選択します。HTTPSプロトコルは、通信を保護するためにSSLを使用します。SSLを使用して通信を暗号化し、メッセージの整合性を保証するとともに、強力なサーバーおよびクライアントの認証を要求できます。 詳細は、「HTTPSのトランスポート・レベルでのセキュリティの構成」を参照してください。 |
認証 |
認証方式として、次のいずれかを選択します。
|
ディスパッチ・ポリシー |
このエンドポイントのディスパッチ・ポリシーに使用するWebLogic Serverワーク・マネージャのインスタンスを選択します。デフォルトのワーク・マネージャは、他にワーク・マネージャがない場合に使用されます。 ワーク・マネージャの詳細は、次の説明を参照してください。
|
リクエストのエンコーディング |
リクエスト・メッセージに使用する文字セットのエンコーディングを指定します。
|
レスポンスのエンコーディング |
レスポンス・メッセージに使用する文字セットのエンコーディングを指定します。 |
認証ヘッダー |
Service Busがトークンを抽出するHTTPヘッダー( たとえば、 |
認証トークン・タイプ |
認証トークン・タイプを選択します。IDアサーション・プロバイダ用に構成されたアクティブなトークン・タイプのみが使用可能になりますこのフィールドが使用可能になるのは、「カスタム認証」チェック・ボックスが選択されている場合に限られます。 |
次の表に、ビジネス・サービス用のHTTPトランスポートの構成に使用するプロパティを示します。詳細は、「ビジネス・サービスの作成と構成」を参照してください。
表29-2 ビジネス・サービス用のHTTPトランスポート・プロパティ
プロパティ | 説明 |
---|---|
読取りタイムアウト |
読取りタイムアウトまでの間隔を秒単位で入力します。接続において、データが使用可能になる前にタイムアウトになると、接続エラーが生成されます。 値0ではタイムアウトが行われません。 |
接続タイムアウト |
接続タイムアウトまでの間隔を秒単位で入力します。接続が確立する前にタイムアウトになると、Service Busによって接続エラーが生成されます。 値0ではタイムアウトが行われません。 |
HTTPリクエスト・メソッド |
リクエスト内で使用するHTTPメソッドとして、次のいずれかを選択します。
注意: |
認証 |
HTTP認証のタイプとして、次のいずれかを選択します。
|
サービス・アカウント |
サービスにアクセスするための認証に使用するサービス・アカウントを入力します。基本認証を選択した場合、このフィールドは必須です。カスタム認証を選択した場合は省略可能です。 詳細は、「サービス・アカウントの操作」を参照してください。 |
ディスパッチ・ポリシー |
このエンドポイントのディスパッチ・ポリシーに使用するWebLogic Serverワーク・マネージャのインスタンスを選択します。デフォルトのワーク・マネージャは、他にワーク・マネージャがない場合に使用されます。 ワーク・マネージャの詳細は、次の説明を参照してください。
|
リクエストのエンコーディング |
電子メール・トランスポートにおけるリクエストの文字セット・エンコーディングとして、デフォルトの |
レスポンスのエンコーディング |
HTTPトランスポートにおけるレスポンスの文字セット・エンコーディングとして、デフォルトの |
HTTPカスタム認証クラス名 |
カスタム認証に使用するJavaクラスの名前を入力します。このフィールドが使用可能になるのは、認証タイプとして「カスタム認証」を選択した場合のみです。カスタム認証クラスの作成の詳細は、「アウトバウンド用のカスタム認証クラスの作成方法」を参照してください。 |
プロキシ・サーバー |
プロキシ・サーバー・リソースを入力するか、「参照」をクリックして構成されたプロキシ・サーバー・リソースの一覧からエントリを選択します。 |
HTTPリダイレクトの追跡 |
HTTPリダイレクト(レスポンス・コード |
チャンク・ストリーミング・モードの使用 |
HTTPチャンク転送エンコーディングを使用してメッセージを送信する場合は、このオプションを選択します。 注意: 「HTTPリダイレクトの追跡」オプションを使用する場合は、チャンク・ストリーミングを使用しないでください。リダイレクトと認証をチャンク・モードで自動的に処理することはできません。 |
セッション固定性 |
ビジネス・サービス用のHTTPリクエストにセッションの固定(セッション・アフィニティとも呼ばれる)を使用する場合は、このオプションを選択します。詳細は、「HTTPセッションの固定」を参照してください。 |
固定セッションID名 |
「セッション固定性」を有効にした場合、セッションを識別するための一意の名前を入力します。 |
HTTPトランスポートは、非RESTサービス・プロバイダと対話する必要があるRESTクライアント、RESTベースのサービス・プロバイダと対話する必要がある非RESTクライアント、またはService Busを介して公開する必要があるREST-to-RESTサービスのいずれの場合にも、Service Busを介したREST環境での作業をサポートします。
RESTのパターンでは、特定のURLにあるリソースに対してHTTPメソッド(GET、PUT、HEAD、POST、DELETEなど)を呼び出します。たとえば、RESTを使用したWebアプリケーションでユーザーが各自のプロファイル情報を更新した場合、POSTアクションによって、サービスのREST APIを介してデータベースのユーザー情報が更新されます。
「Oracle Service BusでのRESTサービスの作成」で説明しているように、Service BusはRESTバインディングを組み込みつつ、Service Busでは、HTTPトランスポートを使用してインバウンドおよびアウトバウンド通信のRESTベースのリクエストを処理するために、次のプレースホルダ変数も提供します。
$inboundまたは$outbound/transport/request/http:http-method: GET、PUT、HEAD、POST、DELETEのようなHTTPメソッドを処理します。
$inboundまたは$outbound/transport/request/http:parameters: URLの問合せ文字列を処理します。parameters
メタデータには、名前/値のペアを格納する1つ以上のparameter
要素が含まれます。名前/値のペアは、問合せ文字列のURLDecoded値です。たとえば、http://localhost:7021/myproxy/weather?operation=temperature&pincode=94065
というURLで、問合せ文字列は次の問合せパラメータとして格納されます。
<http:query-parameters> <http:parameter name="operation" value="temperature"/> <http:parameter name="pincode" value="94065"/> </http:query-parameters>
$inboundまたは$outbound/transport/request/http:relative-URI: RESTリソースのURLの相対的な部分(プロキシ・サービスのURIに対して相対的)を処理します。たとえば、http://localhost:7021/myproxy/weather
というURLで、/weather
はhttp://localhost:7021/myproxy
に対して相対的なURLです。
プロキシ・サービスには、RESTベースのリクエストを受信するか、RESTベースのアクションを生成するかにかかわらず、RESTパターンを操作できる柔軟性があります。
たとえば、RESTベースのアプリケーションを開発し、非RESTサービス・プロバイダでサービスを呼び出す場合は、プロキシ・サービスでREST操作を送り、その操作をサービス・プロバイダが認識できる形式に変換するか、非RESTリクエストをリソースURLに変換し、RESTベースのサービス・プロバイダで操作を呼び出すことができます。また、REST-to-REST実装の監視、監査およびレポートのために仲介者としてService Busを使用することもできます。
Service BusでRESTを使用する作業例は、Oracle Service Busサンプルのリポジトリ(http://www.oracle.com/technetwork/middleware/service-bus/learnmore/index.html
)を参照してください。
次に、プロキシ・サービスでHTTP変数を使用して行うURI解析のXQueryの例を示します。URI解析では、REST環境と非REST環境間でメッセージを変換できます。
相対URI
プロキシ・サービスのURIがhttp://localhost:7001/weather
であり、リクエストの相対URIの部分をキャプチャするとします。次のXQueryを作成します。
<relative-URI> { for $c in fn:tokenize($inbound/ctx:transport/ctx:request/http:relative-URI, "/") where fn:string-length($c) != 0 return <part> {$c} </part> } </relative-URI>
リクエストのURIがhttp://localhost:7001/weather/temperature/35457
の場合、相対URIは/temperature/35457
になり、XQuery出力は次のようになります。
<relative-URI> <part>temperature</part> <part>35457</part> </relative-URI>
問合せ文字列パラメータ
プロキシ・サービスのURIがhttp://localhost:7001/weather
であり、URL問合せ文字列パラメータをキャプチャするとします。次のXQueryを作成します。
<query-parameters> { return <param name="$inbound/ctx:transport/ctx:request/http:parameters/param/name" value="$inbound/ctx:transport/ctx:request/http:parameters/param/value"></param> } </query-parameters>
リクエストのURIがhttp://server:7001/weather?operation=temperature&pincode=35457
の場合、問合せ文字列はoperation=temperature&pincode=35457
になり、http:parameters
メタデータの個別パラメータとして格納されます。XQuery出力は次のようになります。
<query-parameters> <param name='operation' value='temperature'/> <param name='pincode' value='35457'/> </query-parameters>
ビジネス・サービスでは、RESTベースのサービスを呼び出すことができます。REST操作で、HTTPトランスポートは$outbound/transport/request/http:http-method
変数の値を使用します。この変数にHTTPメソッドが指定されていない場合、HTTPトランスポートではトランスポート構成に含まれるHTTPリクエスト・メソッド(POST、PUT、HEAD、GET、DELETE)のいずれかを選択できます。
注意:
ビジネス・サービスがWSDLサービス・タイプを使用している場合は、POSTメソッドのみが選択可能です。
$outbound/transport/request-http/http-method
変数を使用して、独自のメソッドを指定することもできます。たとえば、WebDAV (Web-based Distributed Authoring and Versioning)環境でCOPY、MOVE、およびLOCKを使用できます。
次のガイドラインを使用して$outbound
変数を設定します。
トランスポートは、カスタム・メソッドに対して、またはこの項で説明する制約に従っていない手動で設定されたサポート対象メソッドに対して、実行時の検証を提供しません。
$outbound
はルーティング・ノードでのみ有効なため、パブリッシュおよびサービス・コールアウト・アクションのメソッド名を実行時に指定することはできません。
$outbound
問合せ文字列パラメータが設定されている場合、ビジネス・サービスは、RAWバイトからの問合せ文字列の構築にアウトバウンド・リクエスト・エンコーディングを、またparameters
メタデータ要素から取得されたパラメータの名前/値のペアにURLエンコーディングを使用します。
$outbound
相対URIが設定されている場合、ビジネス・サービスはその値を使用して、ビジネス・サービスURIに対して相対的なURIを生成します。
たとえば、ビジネス・サービスが次のURIを使用し、
http://service.com/purchaseOrder
使用するHTTP変数は次のとおりです。
$outbound/transport/request-http/relative-URI: "/PO12367" and $outbound/transport/request-http/parameters/parameter: "item=NO1" $outbound/transport/request-http/parameters/parameter: "color=black"
最終的に解決されたURIは次のようになります。
http://service.com/purchaseOrder/PO12367?item=NO1&color=black
Service Busは、200から500までの範囲のすべてのレスポンス・コードを処理するために、HTTP 1.1仕様に準拠しています。表29-3に、Service Busが様々なレスポンス・コード・レベルを処理する方法を示します。
HTTPビジネス・サービスは、300以上のエラーを含むレスポンス・ペイロードを受信するため、次のタイプである必要があります。
WSDL
任意のSOAP
次の条件を満たすメッセージング
レスポンス・メッセージ・タイプは、「MFL」または「XML」である(タイプがXMLまたはSOAPであると判断される)必要があります。Service BusがXMLまたはSOAP以外であると判断したレスポンス・タイプを持つHTTPビジネス・サービスでは、HTTPレスポンス・ペイロードが受信されません。
レスポンス・ペイロードのHTTPヘッダーContent-Typeは、text/xml、application/any_string+xmlまたはmultipart/relatedです。
表29-3 HTTPビジネス・サービスのレスポンス・コード処理
レスポンス・ステータス・コード | 説明 |
---|---|
100s |
100レベルのステータス・コードは、Status-Lineとオプション・ヘッダーのみで構成され、空の行で終わる暫定レスポンスを示します。100レベルのコードのレスポンス動作は、内部のHttpURLConnection Javaクラスで処理済であるため、Service Busでは処理されません。 |
200s |
200レベルのステータス・コードは、操作の成功を示します。Service Busは、ビジネス・サービス・タイプにかかわらず、HTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。 |
300s |
300レベルのステータス・コードは、リクエストに対応するために呼出し元が追加アクションを実行する必要があることを示すエラーです。Service Busは、サポートされるメッセージ・レスポンス・タイプを含むHTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。 レスポンス・パイプラインで、300レベルのコードを処理するために適切なアクションを実行できます。 リダイレクトが必要であることを示す300レベルのレスポンス・コードを処理するには、HTTPビジネス・サービスのトランスポート構成で「HTTPリダイレクトの追跡」オプションを設定します。 |
400s |
400レベルのステータス・コードは、クライアント・エラーを示します。Service Busは、サポートされるメッセージ・レスポンス・タイプを含むHTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。 レスポンス・パイプラインで、400レベルのコードを処理するために適切なアクションを実行できます。 |
500s |
500レベルのステータス・コードは、サーバー・エラーを示します。Service Busは、サポートされるメッセージ・レスポンス・タイプを含むHTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。 レスポンス・パイプラインで、400レベルのコードを処理するために適切なアクションを実行できます。 |
電子メール・トランスポートは、メッセージ・サービス・タイプまたは任意のXMLサービス・タイプのサービスで使用できます。次の項では、電子メール・トランスポートを使用して、プロキシ・サービスとビジネス・サービスを構成する方法について説明します。電子メール・トランスポートでは、メッセージ・サービス・タイプのサービスの一方向のメッセージングをサポートしています。電子メール・トランスポートを使用して、メッセージ・タイプのプロキシ・サービスまたはビジネス・サービスを作成する場合、サービス構成でレスポンス・タイプを「なし」に設定する必要があります。
この項では、エンドポイントURIの形式、およびプロキシ・サービスとビジネス・サービスにおける電子メール・トランスポートの構成について説明します。
電子メール・トランスポートを使用してプロキシ・サービスを構成する場合は、エンドポイントURIを次の形式で指定します。
mailfrom:mailserver-host:port
ここで、mailserver-host
はメール・サービスをホストするサーバーの名前、port
はそのサーバーが使用するポート番号です。
電子メール・トランスポートを使用するビジネス・サービスを構成するとき、次の形式で1つ以上のエンドポイントURIを指定でき、こうすることで、複数のドメインの複数の受信者に電子メール・メッセージを送信できます。
mailto:name@domain_name.com mailto:name@domain_name.com?smtp=smtp_server_resource mailto:name@domain_name.com?mailsession=jndi_mail_session
次に例を示します。
mailto:user1@example1.com mailto:user2@example2.com?smtp=exampleSMTP mailto:user3@example3.com?mailsession=my.mail.Session
次の表に、プロキシ・サービス用の電子メール・トランスポートの構成に使用するプロパティを示します。詳細は、「プロキシ・サービスの作成と構成」を参照してください。
表29-4 プロキシ・サービス用の電子メール・トランスポート・プロパティ
プロパティ | 説明 |
---|---|
SSLが必要 |
Secure Sockets Layerを使用して通信するには、このオプションを選択します。デフォルトのSSLポート番号は、次のとおりです。
注意: SSLが機能するには、Service Busトラストストアに電子メール・サーバーの証明書が存在する必要があります。電子メール・トランスポートでは一方向SSL通信がサポートされます。 |
サービス・アカウント |
電子メール・アカウントにアクセスするための認証に使用するサービス・アカウントを入力します。サービス・アカウントは、電子メール・アカウントにアクセスするために必要なユーザー名とパスワードの組合せで構成されます。 詳細は、「サービス・アカウントの操作」を参照してください。 |
管理対象サーバー |
ポーリング・サーバーとして機能させる管理対象サーバーを選択します。すべての管理対象サーバーがメッセージを処理できますが、メッセージをポーリングできるのは、1台のサーバーのみです。 このフィールドは、クラスタ・ドメインでのみ使用できます。 |
ポーリング間隔 |
処理する新しいメッセージのポーリングを次に試行するまでの間隔を秒単位で入力します。デフォルト値は |
電子メール・プロトコル |
電子メール・サーバーへの接続に使用する電子メール・プロトコルとして、POP3またはIMAPを選択します。 |
読取り制限 |
ポーリング・スイープごとの読取りメッセージの最大数を指定します。無制限にするには「0」と入力します。デフォルト値は |
参照渡し |
このチェック・ボックスを選択すると、ファイルはアーカイブ・ディレクトリにステージングされ、ヘッダーに参照として渡されます。 デフォルトでは、新しいサービスを作成するときに、「参照渡し」オプションが選択されるため、アーカイブ・ディレクトリの場所を指定する必要があります。 |
添付ファイルを参照として渡す |
このチェック・ボックスを選択すると、添付ファイルはアーカイブ・ディレクトリにステージングされ、ヘッダーに参照として渡されます。 デフォルトでは、「参照渡し」オプションが選択されると、「添付ファイルを参照渡し」オプションが暗黙的に適用されるため、アーカイブ・ディレクトリの場所を指定する必要があります。 |
読取り後のアクション |
メッセージの読込み後の動作を選択します。
|
添付ファイル |
添付ファイルの処理方法を選択します。
注意: 添付ファイルをアーカイブする場合、「参照渡し」パラメータの設定に関係なく、添付ファイルは参照としてメッセージ・ヘッダーに渡されます。 |
IMAP移動先フォルダ |
「読取り後のアクション」フィールドが「移動」に設定されている場合は、メッセージの移動先フォルダを入力します。 このフィールドは、「読取り後のアクション」を「移動」に設定した場合に構成する必要があります。 |
ダウンロード・ディレクトリ |
電子メールをダウンロードするための一時的な場所を入力します。 |
アーカイブ・ディレクトリ |
「読取り後のアクション」フィールドが「アーカイブ」に設定されている場合は、アーカイブの場所へのパスを入力します。 「参照渡し」または「添付ファイルを参照渡し」オプションが選択されている場合は、このフィールドは必須です。これは、「読取り後のアクション」プロパティを「アーカイブ」に設定した場合にのみアクティブになります。 |
エラー・ディレクトリ |
問題が生じたときにメッセージと添付ファイルを書き込むファイル・システム・ディレクトリへのパスを入力します。 |
リクエストのエンコーディング |
電子メール・トランスポートにおけるリクエストの文字セット・エンコーディングとして、デフォルトの |
次の表に、ビジネス・サービス用の電子メール・トランスポートの構成に使用するプロパティを示します。詳細は、「ビジネス・サービスの作成と構成」を参照してください。
表29-5 ビジネス・サービス用の電子メール・トランスポート・プロパティ
プロパティ | 説明 |
---|---|
SSLが必要 |
Secure Sockets Layerを使用して通信するには、このオプションを選択します。電子メール・トランスポートでは一方向SSL通信がサポートされます。SSL使用時のデフォルトSMTPポート番号は465です。 注意: SSL/TLSが機能するには、Service Busトラストストアに電子メール・サーバーの証明書が存在する必要があります。 |
SMTPサーバー |
「メール・セッション」オプションを使用する場合はSMTPサーバーを選択しないでください。 最初にSMTPサーバー・リソースを作成する必要があります。詳細は、「SMTPサーバー・リソースの作成方法」を参照してください。 |
メール・セッション |
「SMTPサーバー」オプションを使用する場合は、メール・セッションを入力しないでください。 |
送信元の名前 |
このサービスでの送信元の電子メール・アカウントの表示名を入力します。最初に、Oracle WebLogic Server管理コンソールで電子メール・セッションを構成しておく必要があります。 |
送信元アドレス |
このサービスでの送信元の電子メール・アカウントを入力します。Oracle WebLogic Server管理コンソールでメール・セッションを作成する必要があります。また、「メール・セッション」パラメータまたは「SMTPサーバー」パラメータも設定する必要があります。 |
返信先の名前 |
電子メール・アカウントの返信先の表示名を入力します。これは、返信の送信元の名前です。 |
返信先アドレス |
返信先の電子メール・アドレスを入力します。 |
接続タイムアウト |
接続を切断するまでのタイムアウト間隔をミリ秒単位で入力します。「 |
ソケットI/Oタイムアウト |
ソケットI/Oタイムアウト間隔をミリ秒単位で入力します。この値がゼロ(0)の場合、タイムアウトは発生しません。 |
リクエストのエンコーディング |
電子メール・トランスポートにおけるリクエストの文字セット・エンコーディングとして、デフォルトの |
ファイル・トランスポートは、共有ファイル・システムで、指定したディレクトリ内にあるファイルからメッセージをポーリングする場合に使用します。ファイルを読み取った後、Service Busはトランスポートの構成に応じて、そのファイルを削除またはアーカイブできます。Service Busがリモートの場所にファイルを書き込む際に、プログラムがそのファイルにアクセスしないように、ファイルへの書込みが完了するまでファイル・トランスポート・ビジネス・サービスによって一時的にファイル名に.aが追加されます。
ファイル・トランスポートでは、メッセージング・サービス・タイプおよび任意のXMLサービス・タイプをサポートしています。メッセージング・サービス・タイプのリクエストでサポートされるメッセージ・タイプは、バイナリ、テキスト、MFLおよびXMLです。ファイル・トランスポートでは一方向のメッセージングのみがサポートされるため、レスポンス・メッセージ・タイプを「なし」に設定する必要があります。
この項では、エンドポイントURIの形式、およびプロキシ・サービスとビジネス・サービスにおけるファイル・トランスポートの構成について説明します。
プロキシ・サービスおよびビジネス・サービスでファイル・トランスポートを使用する場合は、エンドポイントURIを次の形式で指定する必要があります。
file:///<root-dir/dir1>
ここで、root-dir/dir1
は、プロキシ・サービスがファイルをポーリングしたり、ビジネス・サービスがファイルを書き込むディレクトリへの絶対パスです。
次の表に、プロキシ・サービス用のファイル・トランスポートの構成に使用するプロパティを示します。詳細は、「プロキシ・サービスの作成と構成」を参照してください。
表29-6 プロキシ・サービス用のファイル・トランスポート・プロパティ
プロパティ | 説明 |
---|---|
ファイル・マスク |
プロキシ・サービスがポーリングするファイルを指定します。URIがディレクトリの場合、 |
管理対象サーバー |
ポーリング・サーバーとして機能させる管理対象サーバーを選択します。すべての管理対象サーバーがメッセージを処理できますが、メッセージをポーリングできるのは、1台のサーバーのみです。 このフィールドは、クラスタ・ドメインでのみ使用できます。 |
ポーリング間隔 |
新しいファイルのポーリングを次に試行するまでの間隔を秒単位で指定します。デフォルト値は60です。 注意:ファイルが処理用に選択されるときに変更されていないことを確認するため、トランスポートはファイルを1回ポーリングしてから5秒後に再度ポーリングして、ファイル・サイズを比較します。これにより、ここに設定したポーリング間隔の間で5秒の遅延が発生する可能性があります。処理を完了してファイルのロックを解除するために十分な時間がシステムで確保されるように、この値を必ず高く設定してください。 |
読取り制限 |
各ポーリングで読み込むファイルの数を指定します。デフォルト値は |
到着順にソート |
発生したイベントの順序をファイルの到着順に指定します。デフォルト値はFalseです。 クラスタ環境で実行されるプロキシ・サービスに対してこのオプションを選択すると、メッセージは常に同じサーバーに送信されます。つまり、このオプションを選択した場合、サーバー全体のロード・バランシングは無視されます。 |
サブディレクトリのスキャン |
ポーリング・ディレクトリ内にあるすべてのサブディレクトリを再帰的にスキャンする場合は、このチェック・ボックスを選択します。 |
参照渡し |
このチェック・ボックスを選択すると、ファイルはアーカイブ・ディレクトリにステージングされ、ヘッダーに参照として渡されます。このオプションを選択した場合、アーカイブ・ディレクトリも指定する必要があります。 |
読取り後のアクション |
メッセージの読込み後の動作を選択します。
|
ステージ・ディレクトリ |
ファイルの処理中に一時的にファイルをステージングする中間ディレクトリを入力します。 前述のオプション選択にかかわらず必須です。ステージ・ディレクトリは、ポーリング・ディレクトリ(ファイル・トランスポート・プロキシ・サービスのURLで識別されるディレクトリ)内に配置しないでください。 |
アーカイブ・ディレクトリ |
「読取り後のアクション」オプションが「アーカイブ」に設定されている場合、アーカイブ場所へのパスを入力します。「アーカイブ・ディレクトリ」フィールドは、「参照渡し」フィールドを選択した場合も必須のフィールドです。 注意: アーカイブ・ディレクトリをポーリング・ディレクトリ内に配置することはできません。 |
エラー・ディレクトリ |
エラーが発生した場合にファイルの内容を格納するディレクトリを入力します。 前述のオプション選択にかかわらず必須です。エラー・ディレクトリは、ポーリング・ディレクトリ内に配置しないでください。 |
リクエストのエンコーディング |
ファイル・トランスポートにおけるリクエストの文字セット・エンコーディングとして、デフォルトの |
ファイル・トランスポートでファイルをポーリングする場合、最初にディレクトリのファイルのリストとそのサイズを取得します。次に、5秒またはポーリング間隔が経過した後(いずれか少ない方)に再度ポーリングします。トランスポートでは、ファイルのリストを再度取得して、ファイル・サイズを最初のリストと比較します。その間隔を通じてサイズが変わらないファイルのみを処理します。標準のNFSファイル・システムでは、このプロセスに必要なファイル・ロック・メカニズムをサポートしません。この問題の解決には、次のいくつかのオプションを使用できます。
追加のシグナリング(ファイル転送後のファイル名の変更など)を、特別なファイル名マスクと組み合せて使用します。
NFSに対してファイル・サイズ増大の保護を有効にするには、noac
NFSマウント・オプションを使用します。これにより、ファイルのキャッシュが行われないため、ls
コマンドが、最終結果の要求ファイル・サイズではなく、実際のファイル・サイズになります。
追加のファイル・ロック機能が導入されたNFSバージョン4以降を使用します。
NetAppファイラ・ストレージを使用する場合、Mixed Qtreeセキュリティをボリュームに対して使用します。これで、CIFSやNFSに対してファイル・ロック・メカニズムが使用しやすくなります。
次の表に、ビジネス・サービス用のファイル・トランスポートの構成に使用するプロパティを示します。詳細は、「ビジネス・サービスの作成と構成」を参照してください。
表29-7 ビジネス・サービス用のファイル・トランスポート・プロパティ
プロパティ | 説明 |
---|---|
接頭辞 |
トランスポートによってリモート・サーバー上のファイル名の先頭に付加される接頭辞を入力します。 このフィールドにアスタリスク(*)を入力しないでください。この文字によりランタイム例外が発生します。ターゲット・オペレーティング・システムに対して無効な文字を使用しないでください。 |
接尾辞 |
トランスポートによってリモート・サーバー上のファイル名の末尾に付加される接尾辞を入力します。これは必須フィールドです。 このフィールドにアスタリスク(*)を入力しないでください。この文字によりランタイム例外が発生します。ターゲット・オペレーティング・システムに対して無効な文字を使用しないでください。 |
リクエストのエンコーディング |
ファイル・トランスポートにおけるリクエストの文字セット・エンコーディングとして、デフォルトの |
FTPトランスポートは、リモート・ファイル・システムで、指定したディレクトリ内にあるファイルからメッセージをポーリングする場合に使用します。ファイルを読み取った後、Service Busはトランスポートの構成に応じて、そのファイルを削除またはアーカイブできます。Service Busがリモートの場所にファイルを書き込む際に、プログラムがそのファイルにアクセスしないように、ファイルへの書込みが完了するまでFTPトランスポート・ビジネス・サービスによって一時的にファイル名に.aが追加されます。
FTPトランスポートでは、メッセージング・サービス・タイプおよび任意のXMLサービス・タイプをサポートしています。メッセージング・サービス・タイプのリクエストでサポートされるメッセージ・タイプは、バイナリ、テキスト、MFLおよびXMLです。FTPトランスポートでは一方向のメッセージングのみがサポートされるため、レスポンス・メッセージ・タイプを「なし」にする必要があります。
この項では、エンドポイントURIの形式、およびプロキシ・サービスとビジネス・サービスにおけるFTPトランスポートの構成について説明します。
プロキシ・サービスおよびビジネス・サービスでFTPトランスポートを使用する場合は、URIを次の形式で指定する必要があります。
ftp://<hostname:port/directory>
説明:
hostname
は、ソースまたは宛先ディレクトリがあるFTPサーバーの名前です。
port
は、FTP接続を行うポート番号です。
directory
は、FTPサーバー上の宛先ディレクトリです。プロキシ・サービスの場合、これはサービスが新しいファイルをポーリングする場所です。ビジネス・サービスの場合、これはファイルが書き込まれる場所です。
このディレクトリは、FTPセッションの作業ディレクトリを基準とした相対パスです。たとえば、作業ディレクトリが/home/my_ftp/
で、プロキシ・サービスのエンドポイントURIがftp://ftp_server:21/documents
の場合、サービスは/home/my_ftp/documents
のファイルをポーリングします。同じ作業ディレクトリを使用すると、ビジネス・サービスのエンドポイントURIがftp://fpt_server:21/output
の場合、ファイルはhome/my_ftp/output
に書き込まれます。
次の表に、プロキシ・サービス用のFTPトランスポートの構成に使用するプロパティを示します。詳細は、「プロキシ・サービスの作成と構成」を参照してください。
表29-8 プロキシ・サービス用のFTPトランスポート・プロパティ
プロパティ | 説明 |
---|---|
ユーザー認証 |
ユーザー認証のタイプとして、次のいずれかを選択します。
|
ID(電子メールID) |
匿名ユーザーのメールIDを入力します。 このフィールドは、「ユーザー認証」オプションが「匿名」に設定されている場合にのみ使用できます。 |
サービス・アカウント |
FTPサーバーにアクセスするための認証に使用するサービス・アカウントを入力します。このフィールドは、「ユーザー認証」オプションが「外部ユーザー」に設定されている場合にのみ、有効かつ必須です。このサービス・アカウント・リソースは、あらかじめService Bus内で作成しておく必要があります。 詳細は、「サービス・アカウントの操作」を参照してください。 |
参照渡し |
このチェック・ボックスを選択すると、ファイルはアーカイブ・ディレクトリにステージングされ、ヘッダーに参照として渡されます。このオプションを選択した場合、後述のアーカイブ・ディレクトリを指定する必要があります。 |
リモート・ストリーミング |
処理時にリモート・サーバーからFTPファイルを直接ストリーミングする場合は、このチェック・ボックスを選択します。このオプションを選択した場合、アーカイブ・ディレクトリはリモートのFTPサーバー・マシン上のリモート・ディレクトリになります。そのため、FTPユーザー・ディレクトリを基準にした相対パスでアーカイブ・ディレクトリを指定する必要があります。 |
ファイル・マスク |
プロキシ・サービスがポーリングするファイルの正規表現を入力します。URIがディレクトリで、ファイル・マスクが |
管理対象サーバー |
ポーリング・サーバーとして機能させる管理対象サーバーを選択します。すべての管理対象サーバーがメッセージを処理できますが、メッセージをポーリングできるのは、1台のサーバーのみです。 このフィールドは、クラスタ・ドメインでのみ使用できます。 |
ポーリング間隔 |
処理するファイルのポーリングをサービスが次に実行するまでの間隔を秒単位で入力します。デフォルト値は60です。 注意:ファイルが処理用に選択されるときに変更されていないことを確認するため、トランスポートはファイルを1回ポーリングしてから5秒後に再度ポーリングして、ファイル・サイズを比較します。これにより、ここに設定したポーリング間隔の間で5秒の遅延が発生する可能性があります。処理を完了してファイルのロックを解除するために十分な時間がシステムで確保されるように、この値を必ず高く設定してください。 |
読取り制限 |
ポーリング・スイープごとの読取りメッセージの最大数を指定します。無制限にするには「0」と入力します。デフォルトは |
読取り後のアクション |
メッセージが読み込まれた後の動作を選択します。
|
転送モード |
ファイル転送モードとして「バイナリ」または「ascii」を選択します。デフォルトでは、転送はバイナリです。 |
アーカイブ・ディレクトリ |
「読取り後のアクション」オプションが「アーカイブ」に設定されている場合は、アーカイブの場所へのパスを入力します。「参照渡し」オプションが選択されている場合は、このフィールドも必須です。 注意: アーカイブ・ディレクトリ、ダウンロード・ディレクトリ、およびエラー・ディレクトリは絶対パスであり、自動的に作成されます。相対パスを指定すると、ファイルはWebLogic Serverを起動するJavaプロセスを基準にした相対的な位置に作成されます。 |
ダウンロード・ディレクトリ |
ファイル転送時にファイルがダウンロードされる、ローカル・マシンのディレクトリを入力します。 注意: アーカイブ・ディレクトリ、ダウンロード・ディレクトリ、およびエラー・ディレクトリは絶対パスであり、自動的に作成されます。相対パスを指定すると、ファイルはWebLogic Serverを起動するJavaプロセスを基準にした相対的な位置に作成されます。 |
エラー・ディレクトリ |
エラーが発生した場合にファイルの内容を格納する場所を入力します。 注意: アーカイブ・ディレクトリ、ダウンロード・ディレクトリ、およびエラー・ディレクトリは絶対パスであり、自動的に作成されます。相対パスを指定すると、ファイルはWebLogic Serverを起動するJavaプロセスを基準にした相対的な位置に作成されます。 |
リクエストのエンコーディング |
リクエスト・メッセージを読み込む際のエンコーディングのタイプを指定します。デフォルトのエンコーディングは |
サブディレクトリのスキャン |
ファイルをポーリングする際に、すべてのディレクトリを再帰的にスキャンする場合は、このチェック・ボックスを選択します。 |
到着順にソート |
イベントを受信順に配信する場合は、このチェック・ボックスを選択します。 |
タイムアウト |
接続が切断されるまでのソケット・タイムアウト間隔を秒単位で入力します。「0」を入力すると、タイム・アウトは発生しません。 |
再試行回数 |
FTP接続失敗時の再試行回数を指定します。 |
次の表に、ビジネス・サービス用のFTPトランスポートの構成に使用するプロパティを示します。詳細は、「ビジネス・サービスの作成と構成」を参照してください。
表29-9 ビジネス・サービス用のFTPトランスポート・プロパティ
プロパティ | 説明 |
---|---|
ユーザー認証 |
ユーザー認証のタイプとして、次のいずれかを選択します。
|
ID(電子メールID) |
匿名ユーザーのメールIDを入力します。 このフィールドは、「ユーザー認証」オプションが「匿名」に設定されている場合にのみ使用できます。 |
サービス・アカウント |
サービスにアクセスするための認証に使用するサービス・アカウントを入力します。このフィールドは、「ユーザー認証」オプションが「外部ユーザー」に設定されている場合にのみ、有効かつ必須です。このサービス・アカウント・リソースは、あらかじめService Bus内で作成しておく必要があります。 詳細は、「サービス・アカウントの操作」を参照してください。 |
タイムアウト |
接続が切断されるまでのソケット・タイムアウト間隔を秒単位で入力します。デフォルトでは60秒です。 |
宛先ファイル名の接頭辞 |
トランスポートによってリモート・サーバー上のファイル名の先頭に付加される、省略可能な接頭辞を入力します。 このフィールドにはアスタリスク(*)を入力しないでください。この文字を入力すると、実行時例外が発生します。 |
宛先ファイル名の接尾辞 |
トランスポートによってリモート・サーバー上のファイル名の末尾に付加される、省略可能な接尾辞を入力します。 このフィールドにはアスタリスク(*)を入力しないでください。この文字を入力すると、実行時例外が発生します。 |
転送モード |
ファイル転送モードとして「ascii」または「バイナリ」を選択します。 |
リクエストのエンコーディング |
FTPトランスポートにおけるリクエストの文字セット・エンコーディングとして、デフォルトの |
SFTPトランスポートは、SSHバージョン2を使用したSFTP (SSHファイル・トランスポートプロトコル)経由でファイルを安全にトランスポートできるポーリング・ベースのトランスポートです。それは、定義済のポーリング間隔に基づいて指定されたディレクトリを定期的にポーリングします。認証後、Service BusサービスとSFTPサーバー間で接続が確立され、ファイル転送が可能になります。SFTPトランスポートでは、一方向のインバウンドおよびアウトバウンド接続をサポートしています。
Service Busがリモートの場所にファイルを書き込む際に、プログラムがそのファイルにアクセスしないように、ファイルへの書込みが完了するまでSFTPトランスポート・ビジネス・サービスによって一時的にファイル名に.aが追加されます。
注意:
SFTPトランスポートでは、マルチバイト文字セットのファイル名を正しく処理できないことがあります。
SFTPトランスポートでは、メッセージ・サービス・タイプおよび任意のXMLサービス・タイプのみをサポートしています。メッセージング・サービス・タイプのリクエストでサポートされるメッセージ・タイプは、バイナリ、テキスト、MFLおよびXMLです。SFTPトランスポートがサポートしているのは一方向のメッセージングのみであるため、レスポンス・メッセージ・タイプを「なし」に設定する必要があります。
SFTPトランスポートは次の機能を提供しています。
SFTPトランスポートは、任意のXMLサービス・タイプおよび(リクエスト・メッセージ・タイプが指定された)メッセージ・サービス・タイプで使用できます。サービス・タイプの構成の詳細は、「プロキシ・サービスの定義」および「ビジネス・サービスの定義」を参照してください。
SFTPトランスポートでは、サイズの大きいメッセージの処理をサポートしています。プロキシ・サービスの構成時に、コンテンツ・ストリーミングを有効にし、サイズの大きいメッセージをメモリーまたはディスク・ファイルにバッファリングする必要があるかどうかを指定できます。詳細は、「bodyコンテンツのストリーミング」を参照してください。
SFTPトランスポートでは暗号スイートやセキュリティ・アルゴリズムを選択でき、Service Busで適切な一致の検出を許可することもできます。
インバウンド・メッセージを転送する場合、QoSをexactly-onceに設定します。これにより、各メッセージが少なくとも1回は処理されることが保証されます。アウトバウンド・メッセージを処理する場合は、QoSをbest-effortに設定します。
注意:
転送されないメッセージに関しては、パイプライン・エラー・ハンドラにエラー処理ロジック(再試行ロジックを含む)を作成する必要があります。
Service BusメッセージングのQoSの詳細は、「サービスの品質」を参照してください。
次の原則は、プロキシ・サービスとビジネス・サービスのSFTP認証プロセスに適用されます。
接続: Service Busプロキシ・サービスまたはビジネス・サービスは、常にSFTPクライアントとして機能し、SFTPサーバーに接続します。
SFTPサーバーによる認証: サーバー認証は、次のいずれかの方法で実行されます。
公開鍵認証およびホスト・ベース認証の場合、SFTPサーバーはService Busサービスの公開鍵を使用して接続を認証します。
ユーザー名とパスワードによる認証の場合、SFTPサーバーは、ユーザー名とパスワードで接続を認証します。
SFTPクライアントによる認証: Service Busサービスは、常に、known_hostsファイルに定義された公開鍵/ホスト/IPの組合せを使用してSFTPサーバーを認証します。詳細は、「既知ホスト・ファイルの作成」を参照してください。
接続の確立: サーバー認証とクライアント認証の両方に成功した場合にのみ接続が確立されます。
ファイル転送:
クライアントがプロキシ・サービスの場合、ファイル(メッセージ)はSFTPサーバーからダウンロードされます。
クライアントがビジネス・サービスの場合、ファイル(メッセージ)はSFTPサーバーにアップロードされます。
SFTPトランスポートを使用したファイルの転送には、次の手順が含まれます。
プロキシ・サービスが入力ディレクトリを定期的にポーリングします。
ポーリング・サイクルごとに新しい接続が作成されます。
プロキシ・サービスは、入力ディレクトリでファイルを見つけると、.stage
拡張子の付いたファイル名に変更します。この名前変更により、サービスが次回のポーリング・サイクルで同じファイルを選択しないことが保証されます。
.stage
ファイルは、配信されるまで入力ディレクトリ内に存在します。
注意:
(ネットワーク障害などが原因で)入力ディレクトリからファイルを取得できない場合、.stage
ファイルはクリーンアップ・サイクルで処理されます。クリーンアップ・サイクルは、15分ごとまたは15回のポーリング・サイクルの後に実行されます(いずれか後に発生した方が実行されます)。連続する2回のクリーンアップ・サイクルで.stage
ファイルが存在する場合、ファイルは再度処理されます。
メッセージのJMSタスクが作成され、ドメイン全体のJMSキューに追加されます。
ドメイン全体のMDBがタスクを受け取り、メッセージを処理します。
このタスクでは、メッセージを処理する際にプールされた接続を使用します。プールの接続を使用できない場合は、新しい接続が作成されます。
メッセージがパイプラインに配信され、.stage
ファイルが削除されます。
SFTPビジネス・サービスを構成している場合、サービスはプールされた接続を使用して、メッセージをアウトバウンド・ディレクトリに配置します。
メッセージが配信されていない場合は、再度メッセージの転送が試行され、定義済の試行回数に達するまでプロセスが繰り返されます。メッセージを配信できない場合、メッセージはエラー・ディレクトリに移動されます。
SFTPトランスポートでは、次の認証方式をサポートしています。
ユーザー名/パスワード認証
ホスト・ベース認証
公開鍵認証
Service Busサービスは、known_hostsファイルに定義されたサーバーの詳細に基づいてSFTPサーバーを認証します。サーバー認証を有効にするには、クライアント・マシンでknown_hostsファイルを作成する必要があります。
known_hostsファイルは、Service Busプロキシ・サービス(インバウンド・リクエスト)またはビジネス・サービス(アウトバウンド・リクエスト)が実行されているサーバーに存在する必要があります。このファイルには、プロキシ・サービスまたはビジネス・サービスの接続先となるリモートSFTPサーバーのホスト名、IPアドレスおよび公開鍵が含まれている必要があります。
既知ホスト・ファイルを作成するには:
ユーザー名/パスワード認証は、最も簡単で手早い認証方式です。この認証方式は、ユーザーの資格証明に基づいています。
サービスのユーザー名/パスワード認証を有効にするには:
ホスト・ベース認証では、プライベート・ホスト・キーを使用します。この方式は、すべてのユーザーが同じプライベート・ホストを共有している場合に使用できます。
ホストベース認証では、Open SSHがクライアント提供のホスト名と、クライアントIPアドレスのリバース・ルックアップを比較します。リクエストが複数ホーム・マシンから送られるシナリオ、またはNATゲートウェイを介して送られるシナリオでは、ホスト名は一致しない場合があり、認証が失敗します。このようなシナリオを回避するには、/etc/ssh/sshd_config
のHostbasedUsesNameFromPacketOnly
プロパティをyesに設定することで、DNSチェックをオフにします。実際のセキュリティは、known_hostsファイルとSFTPサーバーの公開鍵の照合によって行われるため、この回避方法はセキュリティを損ないません。
サービスのホスト・ベース認証を有効にするには:
リモートSFTPサーバーへの接続時に接続またはユーザー認証に失敗した場合に発生する可能性のある通信エラーを処理するように、SFTPトランスポート・ベースのビジネス・サービスを構成できます。ビジネス・サービスを構成するときに、指定した再試行間隔の後、ビジネス・サービスのエンドポイントURIがオフラインになるように設定できます。
詳細は、『Oracle Service Busの管理』のビジネス・サービス用のエンドポイントURIの管理とモニターに関する項を参照してください。
ほとんどのエラーは、SFTPプロキシ・サービスまたはビジネス・サービスの構成中に発生します。エラーについて理解し、エラーを解決する上で役立つヒントを次に示します。
known_hostsファイルを適切に構成していることを確認します。
公開鍵認証では、公開鍵ファイルをサーバーに格納します。詳細は、SFTPサーバー付属のドキュメントを参照してください。
接続は拒否されました
というエラー・メッセージは、構成済のホストとポートでSFTPサーバーを使用できないことを示します。
「認証に失敗しました」
というエラー・メッセージは、ユーザー名またはパスワードが無効であるか、公開鍵が正しく構成されていないことを示します。
接続が正常に完了しませんでした
というエラー・メッセージは、接続エラーの原因となった実際のエラー(キーが見つかりません
など)が表示された後に表示されます。
IP、ホストのキーが見つかりません
というエラー・メッセージは、指定されたIPとホストの組合せに対応するエントリがknown_hostsファイルに含まれていないことを示します。エントリが存在する場合は、別のアルゴリズムのキーを使用して試行されます。たとえば、以前の試行でRSAキーが使用された場合は、DSAキーを使用して再試行されます。
この項では、構成JARファイルおよびUDDIレジストリからのService Busリソースのインポートについて説明します。
Service Busドメインにすでに存在するリソースをインポートする場合、「セキュリティおよびポリシーの構成を保持」オプションを選択することで、そのリソースの既存のセキュリティおよびポリシーの構成の詳細を保持できます。リソースのインポート時に保持されるSFTPサービス固有の詳細は次のとおりです。
クライアント認証方式
サービス・アカウントへの参照(ユーザー名/パスワード認証に関連付けられたサービスの場合)
ホスト・ベース認証または公開鍵認証に関連付けられたサービスのサービス・キー・プロバイダへの参照
ホスト・ベース認証または公開鍵認証に関連付けられたサービスのユーザー名
リソースのインポートの詳細は、「リソースおよび構成のインポートとエクスポート」を参照してください。
SFTPサービスをUDDIレジストリにパブリッシュすると、「認証モード」
、「リクエストのエンコーディング」
、「到着順にソート」
および「ファイル・マスク」
の各プロパティがパブリッシュされます。サービスのインポート後のロード・バランシング・アルゴリズムのデフォルト値はround-robinです。
SFTPサービスをUDDIレジストリからインポートしたときに、レジストリからインポートされるプロパティを表29-10に示します。
表29-10 UDDIレジストリからインポートされるプロパティ
プロパティ | 説明 |
---|---|
宛先ファイル名の接頭辞 |
リモート・サーバーに格納されるファイルの名前に使用する接頭辞です。 デフォルト値は" "(null)です。 |
宛先ファイル名の接尾辞 |
リモート・サーバーに格納されるファイルの名前に使用する接尾辞です。 デフォルト値は" "(null)です。 |
認証モード |
レジストリからインポートされる認証方式です。 ユーザー認証を使用するSFTPビジネス・サービスをUDDIレジストリからService Busにインポートすると、競合が発生します。
|
詳細は、「UDDIレジストリの操作」を参照してください。
この項では、エンドポイントURIの形式と環境値、およびプロキシ・サービスとビジネス・サービスにおけるSFTPトランスポートの構成について説明します。
プロキシ・サービスおよびビジネス・サービスでSFTPトランスポートを使用する場合は、エンドポイントURIを次の形式で指定します。
sftp://hostname:port/directory
説明:
hostname
は、SFTPサーバーのホスト名またはIPアドレスです。
port
は、SFTPサーバーがリスンしているポートです。SFTPのデフォルト・ポートは22です。
directory
は、ビジネス・サービスがアウトバウンド・メッセージを書き込んだり、プロキシ・サービスが定期的にファイルをポーリングする場所です。
ディレクトリはSFTPセッションの作業ディレクトリを基準として相対的に指定します。たとえば、作業ディレクトリがhome/my_sftp/
で、SFTPプロキシ・サービスがhome/my_sftp/documents
からファイルを読み取る場合、URIはsftp://sftp_server:22/documents
のようになります。ビジネス・サービスに同じ作業ディレクトリを使用すると、URIがsftp://sftp_server:22/output
の場合、ビジネス・サービスはhome/my_sftp/output
にファイルを書き込みます。
次の表に、プロキシ・サービス用のSFTPトランスポートの構成に使用するプロパティを示します。詳細は、「プロキシ・サービスの作成と構成」を参照してください。
表29-11 プロキシ・サービス用のSFTPトランスポート・プロパティ
プロパティ | 説明 |
---|---|
ユーザー認証 |
必要な認証方式を次から選択します。
注意: このサービスでは、SFTPサーバーから資格証明を認証するためにサービス・キー・プロバイダを使用しません。SFTPサーバーを認証する場合、「SFTPトランスポートのトランスポート・レベルでのセキュリティの構成」に示すとおり、 |
サービス・アカウント |
サービスにアクセスするための認証に使用するサービス・アカウントを入力します。サービス・アカウントの使用については、「サービス・アカウントの操作」を参照してください。 |
サービス・キー・プロバイダ |
認証に使用するサービス・キー・プロバイダを入力します。 このフィールドは、公開鍵認証方式とホスト・ベース認証方式にのみ使用できます。詳細は、「サービス・キー・プロバイダの操作」を参照してください。 |
ユーザー名 |
SFTPサーバーにログインするためのユーザー名を入力します。この値は、ホスト・ベース認証方式または公開鍵認証方式を選択した場合にのみ必要です。
|
参照渡し |
このオプションを選択すると、ファイルはアーカイブ・ディレクトリにステージングされ、参照としてヘッダーに渡されます。 注意: このオプションは、リモート・ストリーミングが無効になっている場合にのみ使用できます。 |
リモート・ストリーミング |
このオプションを選択すると、処理時にSFTPのファイルがリモート・サーバーから直接ストリームされます。このオプションを選択した場合、SFTPサーバー・マシンのリモート・ディレクトリがアーカイブ・ディレクトリになります。そのため、SFTPユーザー・ディレクトリからの相対パスでアーカイブ・ディレクトリを指定する必要があります。 |
ファイル・マスク |
正規表現を入力して、ディレクトリから取り出すファイルを選択します。ファイル・マスクは、特定のタイプのファイルを転送する場合に使用します。デフォルト値は*.*で、すべてのファイルが選択されます。 |
管理対象サーバー |
ポーリング・サーバーとして機能させる管理対象サーバーを選択します。すべての管理対象サーバーがメッセージを処理できますが、メッセージをポーリングできるのは、1台のサーバーのみです。 このフィールドは、クラスタ・ドメインでのみ使用できます。 |
ポーリング間隔 |
入力ディレクトリでの処理するメッセージのポーリングを次に実行するまでの間隔を秒単位で入力します。ポーリングでは、SFTP接続を作成する必要があります。デフォルト値は60です。間隔が短いと頻繁にポーリングが発生するため、短いポーリング間隔を設定しないでください。 注意:ファイルが処理用に選択されるときに変更されていないことを確認するため、トランスポートはファイルを1回ポーリングしてから5秒後に再度ポーリングして、ファイル・サイズを比較します。これにより、ここに設定したポーリング間隔の間で5秒の遅延が発生する可能性があります。処理を完了してファイルのロックを解除するために十分な時間がシステムで確保されるように、この値を必ず高く設定してください。 |
読取り制限 |
ポーリング・スイープごとの読取りメッセージの最大数を指定します。ポーリング・ディレクトリに多数のファイルが存在する場合は、ここで指定した値により同時転送の数を制限できます。 制限を指定しない場合は、0(ゼロ)を入力します。デフォルト値は10です。 注意: SFTPサーバーで同時接続数が制限されている場合があります。定義した読取り制限がサーバーで定義されている制限よりも少ないことを確認してください。 |
読取り後のアクション |
メッセージが読み込まれた後の動作を選択します。
|
アーカイブ・ディレクトリ |
「読取り後のアクション」オプションが「アーカイブ」に設定されている場合、アーカイブ場所へのパスを入力します。このフィールドは、「参照渡し」オプションが選択されている場合、必須です。ファイルを読取り後にアーカイブする場合、それらのファイルは、読み取られた後に(ダウンロード・ディレクトリまたはリモートの場所から)アーカイブ・ディレクトリに移動されます。 リモート・ストリーミングが有効になっている場合、アーカイブ・ディレクトリはSFTPサーバーのディレクトリになります。リモート・ストリーミングが無効になっている場合は、Service Busマシン上のアーカイブ・ディレクトリを使用できます。 注意: アーカイブ・ディレクトリ、ダウンロード・ディレクトリおよびエラー・ディレクトリは絶対パスであり、自動的に作成されます。相対パスを指定すると、ファイルはWebLogic Serverを起動するJavaプロセスを基準にした相対的な位置に作成されます。 |
ダウンロード・ディレクトリ |
ファイル転送時にファイルがダウンロードされる、ローカル・マシンのディレクトリを入力します。リモート・ストリーミングが有効になっている場合、このオプションは無効になります。 注意: アーカイブ・ディレクトリ、ダウンロード・ディレクトリおよびエラー・ディレクトリは絶対パスであり、自動的に作成されます。相対パスを指定すると、ファイルはWebLogic Serverを起動するJavaプロセスを基準にした相対的な位置に作成されます。 |
エラー・ディレクトリ |
問題が発生した場合にメッセージがポストされる場所を入力します。 リモート・ストリーミングが有効になっている場合、エラー・ディレクトリはSFTPサーバーのディレクトリになります。リモート・ストリーミングが無効になっている場合は、Service Busマシン上のエラー・ディレクトリを使用できます。 注意: アーカイブ・ディレクトリ、ダウンロード・ディレクトリ、およびエラー・ディレクトリは絶対パスであり、自動的に作成されます。相対パスを指定すると、ファイルはWebLogic Serverを起動するJavaプロセスを基準にした相対的な位置に作成されます。 |
リクエストのエンコーディング |
SFTPトランスポートでのリクエストの文字セット・エンコーディングとしてデフォルト値(UTF-8)を受け入れます。 |
サブディレクトリのスキャン |
エンドポイントURIで指定されたディレクトリ内のすべてのサブディレクトリを再帰的にスキャンする場合は、このオプションを選択します。 注意: サブディレクトリをスキャンする場合、追加の処理オーバーヘッドが必要となるため、このオプションは慎重に使用してください。 |
到着順にソート |
このオプションを選択すると、イベントは到着順に配信されます。これにより、メッセージ配信がランダムに行われるのではなく、ファイルが宛先ディレクトリにダウンロードされた時間に基づいて行われるようになります。 |
タイムアウト |
ソケット・タイムアウト間隔を秒単位で入力します。この時間が経過すると、接続を切断する必要があります。接続をタイムアウトしない場合は、0を入力します。デフォルト値は60です。 |
再試行回数 |
SFTP接続に失敗した場合の再試行回数を指定します。この設定を使用すると、ネットワーク障害などのエラーの発生時に、複数回の試行が可能になります。デフォルト値は |
優先暗号スイート |
サーバーとの通信時に使用する暗号スイートを、使用可能なオプションのリストから選択します。使用する暗号スイートにより、ネットワーク接続の認証と暗号化に関する設定が決まります。 デフォルト値「実行時のデフォルトの使用」を使用すると、サポートされる暗号スイートのリストがサーバーに送信され、一致が検出されるまで各暗号スイートが試行されます。 |
優先データ整合性アルゴリズム |
データ整合性チェックに使用するバルク・ハッシュ・アルゴリズムを、使用可能なオプションのリストから選択します。 デフォルト値の実行時のデフォルトの使用を使用すると、Service Busによって優先アルゴリズム |
優先公開鍵アルゴリズム |
公開鍵暗号化に使用する非対称鍵アルゴリズムを、使用可能なオプションのリストから選択します。 デフォルト値の実行時のデフォルトの使用を使用すると、Service Busによって優先アルゴリズム |
優先鍵交換アルゴリズム |
メッセージの暗号化のためのセッション鍵のネゴシエーション用として、デフォルトの鍵交換プロトコルを選択します。 デフォルト値の実行時のデフォルトの使用を使用すると、Service Busによって優先アルゴリズム |
優先圧縮アルゴリズム |
処理中のデータをzlibを使用して圧縮するかどうかを選択します。データを圧縮するには「zlib」または「zlib@openssh.com」を、それ以外の場合は「なし」を選択します。デフォルトは、Noneです。 |
プロキシ・サービスを構成するときに、パイプラインでトランスポート・ヘッダー・アクションを使用してメッセージのヘッダー値を設定できます。SFTPトランスポートに関連するトランスポート・ヘッダーとメタデータを次の表に示します。
表29-12 トランスポート・ヘッダーとメタデータ
ヘッダー/メタデータ | 説明 |
---|---|
FileName |
この値は、宛先ディレクトリでファイル名として使用されます。 |
isFilePath |
メタデータ・フィールドです。指定可能な値はtrueとfalseです。
|
filePath |
レスポンス・メタデータ・フィールドです。 FileName ヘッダーで指定したファイルが書き込まれる絶対パスを示します。 |
パイプラインでは、アウトバウンド・リクエスト用のトランスポート・ヘッダーのみを構成できます。メッセージのヘッダーの値を設定するには、トランスポート・ヘッダー・アクションを使用します。詳細は、「コンソールでのトランスポート・ヘッダー・アクションの追加」を参照してください。
開発時にSFTPトランスポートベースのサービスをテストする場合、テスト・コンソールでFileName
トランスポート・ヘッダーとisFilePath
メタデータの値を構成できます。詳細は、「テスト・コンソールの使用」を参照してください。
次の表に、ビジネス・サービス用のSFTPトランスポートの構成に使用するプロパティを示します。詳細は、「ビジネス・サービスの作成と構成」を参照してください。
表29-13 ビジネス・サービス用のSFTPトランスポート・プロパティ
プロパティ | 説明 |
---|---|
ユーザー認証 |
必要な認証方式を次から選択します。
注意: Service Busサービスは、SFTPサーバーからの資格証明を認証するために、サービス・キー・プロバイダを使用することはありません。SFTPサーバーを認証する場合、「SFTPトランスポートのトランスポート・レベルでのセキュリティの構成」に示すとおり、 |
サービス・アカウント |
サーバーにアクセスするための認証に使用するサービス・アカウントを入力します。サービス・アカウントの使用については、「サービス・アカウントの操作」を参照してください。 |
サービス・キー・プロバイダ |
認証に使用するサービス・キー・プロバイダを入力します。 このフィールドは、公開鍵認証方式とホスト・ベース認証方式にのみ使用できます。詳細は、「サービス・キー・プロバイダの操作」を参照してください。 |
ユーザー名 |
ユーザー名を入力します。この値は、ホスト・ベース認証方式または公開鍵認証方式を選択した場合にのみ必要です。
|
タイムアウト |
接続が切断されるまでのソケット・タイムアウト間隔を秒単位で入力します。「 |
宛先ファイル名の接頭辞 |
トランスポートによってリモート・サーバー上のファイル名の先頭に付加される、省略可能な接頭辞を入力します。 このフィールドには「*」を入力できません。この文字を入力すると、実行時例外が発生します。 |
宛先ファイル名の接尾辞 |
トランスポートによってリモート・サーバー上のファイル名の末尾に付加される、省略可能な接尾辞を入力します。 このフィールドには「*」を入力できません。この文字を入力すると、実行時例外が発生します。 |
リクエストのエンコーディング |
SFTPトランスポートでは、リクエストの文字セット・エンコーディングとしてデフォルトの |
優先暗号スイート |
サーバーと通信する際に使用する暗号スイートを選択します。使用する暗号スイートにより、ネットワーク接続の認証と暗号化に関する設定が決まります。 デフォルト値「実行時のデフォルトの使用」を使用すると、サポートされる暗号スイートのリストがサーバーに送信され、一致が検出されるまで各暗号スイートが試行されます。 |
優先データ整合性アルゴリズム |
データ整合性チェックに使用するバルク・ハッシュ・アルゴリズムを、使用可能なオプションのリストから選択します。 デフォルト値の実行時のデフォルトの使用を使用すると、Service Busによって優先アルゴリズム |
優先公開鍵アルゴリズム |
公開鍵暗号化に使用する非対称鍵アルゴリズムを、使用可能なオプションのリストから選択します。 デフォルト値の実行時のデフォルトの使用を使用すると、Service Busによって優先アルゴリズム |
優先鍵交換アルゴリズム |
メッセージの暗号化のためのセッション鍵のネゴシエーション用として、デフォルトの鍵交換プロトコルを選択します。 デフォルト値の実行時のデフォルトの使用を使用すると、Service Busによって優先アルゴリズム |
優先圧縮アルゴリズム |
処理中のデータをzlibを使用して圧縮するかどうかを選択します。データを圧縮するには「zlib」または「zlib@openssh.com」を、それ以外の場合は「なし」を選択します。デフォルトは、Noneです。 |
環境値は、ドメイン固有の構成データに含まれる定義済のフィールドです。これらの値は、ドメイン間で構成を移動するとき(テスト環境から本番環境への移動など)に変更される可能性があります。SFTPトランスポートに関連付けられた環境値を次の表に示します。
表29-14 SFTPトランスポートの環境値
環境値 | 説明 |
---|---|
SFTPアーカイブ・ディレクトリ |
SFTPプロキシ・サービスのアーカイブ・ディレクトリ。ダイレクト・ストリーミングがオンの場合、このアーカイブ・ディレクトリはリモートSFTPサーバーに存在し、それ以外の場合はローカルに存在します。 |
SFTPダウンロード・ディレクトリ |
SFTPプロキシ・サービスのダウンロード・ディレクトリ。 |
SFTPエラー・ディレクトリ |
SFTPプロキシ・サービスのエラー・ディレクトリ。ダイレクト・ストリーミングがオンの場合、このエラー・ディレクトリはリモートSFTPサーバーに存在し、それ以外の場合はローカルに存在します。 |
ポーリングの管理対象サーバー |
クラスタ・ドメイン内のポーリング用管理対象サーバー。 |
SFTP優先暗号スイート |
SFTPプロキシ・サービスおよびビジネス・サービスでの認証と暗号化に使用する暗号スイート。 |
SFTP優先圧縮アルゴリズム |
SFTPプロキシ・サービスおよびビジネス・サービスで処理中のデータの圧縮に使用する圧縮ライブラリ。 |
SFTP優先データ整合性アルゴリズム |
SFTPプロキシ・サービスおよびビジネス・サービスでの整合性チェックに使用するバルク・ハッシュ・アルゴリズム。 |
SFTP優先鍵交換アルゴリズム |
SFTPプロキシ・サービスおよびビジネス・サービスでメッセージの暗号化に使用するセッション鍵をネゴシエートするためのデフォルトの鍵交換プロトコル。 |
SFTP優先公開鍵アルゴリズム |
SFTPプロキシ・サービスおよびビジネス・サービスでの公開鍵暗号化に使用する非対称鍵アルゴリズム。 |
環境変数とSFTP変数の詳細は、次を参照してください。
『Oracle Service Busの管理』のOracle Service Bus環境のカスタマイズに関する項