この章では、HTTP(S)トランスポートおよびポーラー・トランスポート(電子メール、ファイル、FTPおよびSFTP)の概要と、サービスでの使用および構成方法について説明します。HTTPトランスポートの項では、Oracle Service Bus (OSB)でRESTを使用するためのガイダンスも提供します。
様々なタイプのトランスポートを使用して、OSBのプロキシ・サービスまたはビジネス・サービスを構成できます。選択する転送プロトコルは、サービス・タイプ、必要な認証のタイプ、呼出し元のサービスのサービス・タイプなどによって異なります。
ポーリングベースのトランスポートは、トランスポート・ポーラーが管理対象サーバーに固定されているトランスポートです。これらのトランスポートでは、JMSフレームワークを使用して、メッセージの処理が少なくとも1回は実行されることを保証します。電子メール、ファイル、FTPおよびSFTPは、ポーリングベースのトランスポートです。ここでは、ポーリングベースのトランスポートとHTTPトランスポートについて説明します。
このドキュメントは、以下の項で構成されています。
HTTPトランスポートは、Oracle Service Busでhttp/sプロトコルを使用してクライアントとサービス・プロバイダ間でメッセージの送信を行います。また、26.1.3項「RESTサポート」で説明されているように、HTTPトランスポートはREST (Representational State Transfer)環境での作業のサポートも提供します。
任意のタイプのプロキシ・サービスまたはビジネス・サービスを構成する場合は、HTTP転送プロトコルを選択できます。エンドポイントURIの形式は次のとおりです。
プロキシ・サービス: /someService
ビジネス・サービス: http://host:port/someService
ここで、someService
はプロキシ・サービスまたはビジネス・サービスの名前です。
プロキシ・サービスのHTTPトランスポートを構成する際に指定できるパラメータを表26-1に示します。
表26-1 プロキシ・サービスのHTTPトランスポートを構成するためのパラメータ
パラメータ | 説明 |
---|---|
HTTPSが必要 |
インバウンドHTTPSエンドポイントの場合は、このチェック・ボックスを選択します。 詳細は、第49章「トランスポートレベルのセキュリティの構成」を参照してください。 |
認証 |
次のいずれかの認証方式を構成する必要があります。
カスタム認証トークンには、構成されたOracle WebLogic Server IDアサーション・プロバイダがサポートする任意のアクティブなトークン・タイプを指定できます。 |
ディスパッチ・ポリシー |
このエンドポイントのディスパッチ・ポリシーに使用するOracle WebLogic Serverワーク・マネージャのインスタンスを選択します。デフォルトのワーク・マネージャは、他にワーク・マネージャがない場合に使用されます。 ワーク・マネージャの詳細は、次の説明を参照してください。
|
リクエストのエンコーディング |
インバウンドおよびアウトバウンド・トランスポートのリクエストのエンコーディングを次に説明します。
|
レスポンスのエンコーディング |
HTTPトランスポートにおけるレスポンスの文字セット・エンコーディングとして、デフォルトの |
認証ヘッダー |
Oracle Service Busがトークンを抽出するHTTPヘッダー(Authorization以外の任意)を入力します。このフィールドが使用可能になるのは、「カスタム認証」チェックボックスが選択されている場合のみです。 例: client-xyz-token |
認証トークン・タイプ |
認証トークン・タイプを選択します。IDアサーション・プロバイダに対して構成されているアクティブなトークン・タイプのみを使用できます。このフィールドが使用可能になるのは、「カスタム認証」チェックボックスが選択されている場合のみです。 |
HTTPトランスポート・ベースのプロキシ・サービスを構成する方法および詳細設定は、2.3項「プロキシ・サービスの操作」を参照してください。
HTTPに基づく任意のタイプのビジネス・サービスを構成するときに、エンドポイントURIが次の形式の場合、転送プロトコルとしてHTTPを選択する必要があります。
http://<host:port/someService>
説明:
host
は、サービスをホストするシステムの名前です。
port
は、接続を行うポート番号です。
someService
は、ターゲット・サービスです。
注意: HTTPSに基づくビジネス・サービスを構成するときは、次のエンドポイントURIを指定する必要があります。 https://<host:port/someService> |
ビジネス・サービスのHTTPトランスポートを構成する際に指定できるすべてのパラメータを表26-2に示します。
表26-2 ビジネス・サービスのHTTPトランスポートを構成するためのパラメータ
パラメータ | 説明 |
---|---|
読取りタイムアウト |
読取りタイムアウトまでの間隔を秒単位で入力します。 値0ではタイムアウトが行われません。 |
接続タイムアウト |
接続タイムアウトまでの間隔を秒単位で入力します。接続が確立する前にタイムアウトになると、Oracle Service Busによって接続エラーが生成されます。 値0ではタイムアウトが行われません。 |
HTTPリクエスト・メソッド |
このパラメータにより、リクエストで以下のいずれかのHTTPメソッドを使用できます。
注意: $outbound/transport/request/http:http-method変数でメソッドがすでに設定されている場合は、HTTPリクエスト・メソッドに選択したどのメソッドよりもその値が優先されます。 |
認証 |
次のいずれか1つを選択します:
|
サービス・アカウント |
サービス・アカウントとは、ユーザー名とパスワードのエイリアス・リソースです。基本認証必須フィールドを選択した場合、このフィールドは必須です。 詳細は、2.1.15項「サービス・アカウント・リソースの作成」を参照してください。 |
ディスパッチ・ポリシー |
このエンドポイントのディスパッチ・ポリシーに使用するOracle WebLogic Serverワーク・マネージャのインスタンスを選択します。デフォルトのワーク・マネージャは、他にワーク・マネージャがない場合に使用されます。 ワーク・マネージャの詳細は、次の説明を参照してください。
|
リクエストのエンコーディング |
電子メール・トランスポートにおけるリクエストの文字セット・エンコーディングとして、デフォルトの |
レスポンスのエンコーディング |
HTTPトランスポートにおけるレスポンスの文字セット・エンコーディングとして、デフォルトの |
プロキシ・サーバー |
プロキシ・サーバー・リソースを入力するか、「参照」をクリックして構成されたプロキシ・サーバー・リソースの一覧からエントリを選択します。 |
HTTPリダイレクトの追跡 |
HTTPリダイレクト(レスポンス・コード |
チャンク・ストリーミング・モードの使用 |
HTTPチャンク転送エンコーディングを使用してメッセージを送信する場合は、このオプションを選択します。 注意: 「HTTPリダイレクトの追跡」オプションを使用する場合は、チャンク・ストリーミングを使用しないでください。リダイレクトと認証をチャンク・モードで自動的に処理することはできません。 |
このトランスポートを構成する方法の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。
HTTPトランスポートは、Oracle Service Busを介したREST (Representational State Transfer)環境での作業をサポートします。このサポートは、非RESTサービス・プロバイダと対話する必要があるRESTクライアント、RESTベースのサービス・プロバイダと対話する必要がある非RESTクライアント、またはOracle Service Busを介して公開する必要があるREST-to-RESTサービスのいずれにも対応します。
RESTのパターンでは、特定のURLにあるリソースに対してHTTPメソッド(GET、PUT、HEAD、POST、DELETEなど)を呼び出します。たとえば、RESTを使用したWebアプリケーションでユーザーがプロファイル情報を更新した場合、POSTアクションがサービスのREST APIを介してデータベースのユーザー情報を更新します。
Oracle Service Busでは、アウトバウンドおよびインバウンド通信のRESTベースのリクエストを処理するために、次のプレースホルダー変数が用意されています。
$inboundまたは$outbound/transport/request/http:http-method - GET、PUT、HEAD、POST、DELETEのようなHTTPメソッドを処理します。
$inboundまたは$outbound/transport/request/http:parameters - URLの問合せ文字列を処理します。parameters
メタデータには、名前/値のペアを格納する1つ以上のparameter
要素が含まれます。名前/値のペアは、query-stringの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です。
Oracle Service Busプロキシ・サービスには、RESTベースのリクエストを受信するか、RESTベースのアクションを生成するかにかかわらず、RESTパターンを操作できる柔軟性があります。
たとえば、RESTベースのアプリケーションを開発し、非RESTサービス・プロバイダでサービスを呼び出したい場合は、プロキシ・サービスでREST操作を送り、その操作をサービス・プロバイダが認識できる形式に変換するか、非RESTリクエストをリソースURLに変換し、RESTベース のサービス・プロバイダで操作を呼び出すことができます。また、REST-to-REST実装の監視、監査およびレポートのために仲介者としてOSBを使用することもできます。
OSBで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の場合、relative-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の場合、query-stringはoperation=temperature&pincode=35457になり、http:parameters
メタデータの個別パラメータとして格納されます。XQuery出力は次のようになります。
<query-parameters> <param name='operation' value='temperature'/> <param name='pincode' value='35457'/> </query-parameters>
Oracle Service Busビジネス・サービスでは、RESTベースのサービスを呼び出すことができます。
REST操作で、HTTPトランスポートは$outbound/transport/request/http:http-method変数の値を使用します。この変数にHTTPメソッドが指定されていない場合、HTTPトランスポートではトランスポート構成に含まれるHTTPリクエスト・メソッド(POST、PUT、HEAD、GET、DELETE)のいずれかを選択できます。
注意: ビジネス・サービスが サービスのタイプ としてWSDL Webサービスを使用している場合は、POSTメソッドのみが選択可能です。 |
$outbound/transport/request-http/http-method変数を使用して、独自のメソッドを指定することもできます。たとえば、WebDAV (Web-based Distributed Authoring and Versioning)環境でCOPY、MOVE、およびLOCKを使用できます。
次のガイドラインを使用して$outbound変数を設定します。
トランスポートは、カスタム・メソッドに対して、またはこの項で説明する制約に従っていない手動で設定されたサポート対象メソッドに対して、実行時の検証を提供しません。
$outboundはルーティング・ノードでのみ有効なため、パブリッシュおよびサービス・コールアウト・アクションのメソッド名を実行時に指定することはできません。
$outbound問合せ文字列パラメータが設定されている場合、ビジネス・サービスは、RAWバイトからの問合せ文字列の構築にアウトバウンド・リクエスト・エンコーディングを、またparameters
メタデータ要素から取得されたパラメータの名前/値のペアにURLエンコーディングを使用します。
$outbound relative-URIが設定されている場合、ビジネス・サービスはその値を使用して、ビジネス・サービスURIに対して相対的なURIを生成します。
たとえば、ビジネス・サービスが次のURIを使用し、
http://service.com/purchaseOrder
次のHTTP変数を使用する場合、
$outbound/transport/request-http/relative-URI: "/PO12367"
$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
Oracle Service Busは、200から500までの範囲のすべてのレスポンス・コードを処理するために、HTTP 1.1仕様に準拠しています。表26-3に、OSBが様々なレスポンス・コード・レベルを処理する方法を示します。
HTTPビジネス・サービスは、300以上のエラーを含むレスポンス・ペイロードを受信するため、次のタイプである必要があります。
WSDL Webサービス
任意のSOAPサービス
次の条件を満たすメッセージング・サービス:
「レスポンス・メッセージ・タイプ」は、「MFL」または「XML」である必要があります(タイプがXMLまたはSOAPに確定されます)。OSBがXMLまたはSOAP以外であると判断したレスポンス・タイプを持つHTTPビジネス・サービスでは、HTTPレスポンス・ペイロードが受信されません。
レスポンス・ペイロードのHTTPヘッダーContent-Typeは、text/xml、application/any_string+xmlまたはmultipart/relatedです。
表26-3 HTTPビジネス・サービスのレスポンス・コード処理
レスポンス・ステータス・コード | 説明 |
---|---|
100s |
100レベルのステータス・コードは、Status-Lineとオプション・ヘッダーのみで構成され、空の行で終わる暫定レスポンスを示します。100レベルのコードのレスポンス動作は、内部のHttpURLConnection Javaクラスで処理済であるため、OSBでは処理されません。 |
200s |
200レベルのステータス・コードは、操作の成功を示します。OSBは、ビジネス・サービス・タイプにかかわらず、HTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。 |
300s |
300レベルのステータス・コードは、リクエストに対応するために呼出し元が追加アクションを実行する必要があることを示すエラーです。OSBは、サポートされるメッセージ・レスポンス・タイプを含むHTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。 レスポンス・パイプラインで、300レベルのコードを処理するために適切なアクションを実行できます。 リダイレクトが必要であることを示す300レベルのレスポンス・コードを処理するには、HTTPビジネス・サービスのトランスポート構成で「HTTPリダイレクトの追跡」オプションを設定します。 |
400s |
400レベルのステータス・コードは、クライアント・エラーを示します。OSBは、サポートされるメッセージ・レスポンス・タイプを含むHTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。 レスポンス・パイプラインで、400レベルのコードを処理するために適切なアクションを実行できます。 |
500s |
500レベルのステータス・コードは、サーバー・エラーを示します。OSBは、サポートされるメッセージ・レスポンス・タイプを含むHTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。 レスポンス・パイプラインで、400レベルのコードを処理するために適切なアクションを実行できます。 |
プロキシ・サービスまたはビジネス・サービスのメッセージング・タイプまたは任意のXMLサービスを構成するときに、電子メール・トランスポートプロトコルを選択できます。以下のトピックでは、電子メール・トランスポートを使用して、プロキシ・サービスとビジネス・サービスを構成する方法について説明します。
注意: 電子メール・トランスポートでは、メッセージング・サービス・タイプのサービスの一方向のメッセージングをサポートしています。 電子メール・トランスポートを使用して、メッセージ・タイプのプロキシ・サービスまたはメッセージ・タイプのビジネス・サービスを作成する場合、「メッセージ・タイプ」構成ページでレスポンス・タイプを「なし」に設定する必要があります。 |
電子メール・トランスポートを使用してプロキシ・サービスを構成する場合は、エンドポイントURIを次の形式で指定する必要があります。
mailfrom:<mailserver-host:port>
ここで、mailserver-host
は、ホスト・メール・サーバーの名前、port
はホスト・メール・サーバーが使用するポートです。
電子メール・トランスポート・ベースのプロキシ・サービスで構成できるパラメータを表26-4に示します。
表26-4 プロキシ・サービスの電子メール・トランスポートを構成するためのパラメータ
パラメータ | 説明 |
---|---|
サービス・アカウント |
これは必須パラメータです。これは、サービス・アカウント・リソースです。サービス・アカウントは、電子メール・アカウントにアクセスするために必要なユーザー名とパスワードの組合せで構成されます。 |
ポーリング間隔 |
これは必須パラメータです。ポーリング間隔を秒単位で指定します。デフォルト値は60です。 |
電子メール・プロトコル |
これは必須パラメータです。 |
読取り制限 |
これは必須パラメータです。各ポーリングで読み込むファイルの数を指定します。デフォルト値は |
参照渡し |
このパラメータを有効にすると、ファイルはアーカイブ・ディレクトリにステージングされ、メッセージ・ヘッダーに参照として渡されます。 |
読取り後のアクション |
これは必須パラメータです。サービスでファイルを読み込んだ後に、削除、移動、アーカイブのどのアクションを実行するかを指定します。デフォルトでは、ファイルは読込み後に削除されます。 |
添付ファイル |
これは必須パラメータです。添付ファイルをアーカイブするか無視するかを指定します。デフォルトでは「無視」に設定されています。 注意: 添付ファイルをアーカイブする場合、「参照渡し」パラメータの設定に関係なく、添付ファイルは参照としてメッセージ・ヘッダーに渡されます。 |
IMAP移動先フォルダ |
このフィールドは、 |
ダウンロード・ディレクトリ |
これは必須パラメータです。メッセージをダウンロードするファイル・システム・ディレクトリのパスを指定します。 |
アーカイブ・ディレクトリ |
これは必須パラメータです。ファイルURIは、ファイルをアーカイブするディレクトリを指します。このフィールドは、 |
エラー・ディレクトリ |
このパラメータは省略可能です。リクエスト・メッセージを読み込む際のエンコーディングのタイプを指定します。デフォルトのエンコーディングは |
電子メール・サービスを構成する方法の詳細は、2.3項「プロキシ・サービスの操作」を参照してください。
電子メール・トランスポートを使用するビジネス・サービスを構成するとき、次の形式で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
電子メール・トランスポート・ベースのプロキシ・サービスで構成できるパラメータを表26-5に示します。
表26-5 ビジネス・サービスの電子メール・トランスポートを構成するためのパラメータ
パラメータ | 説明 |
---|---|
SMTPサーバー |
name@domain_name.comのエンドポイントURIエントリで使用するデフォルトのSMTPサーバーを選択します。エンドポイントURIにSMTPサーバーのパラメータを指定すると、それらのサーバー・リソースがこの「SMTPサーバー」設定のかわりに使用されます。 「メール・セッション」オプションを使用する場合はSMTPサーバーを選択しないでください。 最初にSMTPサーバー・リソースを作成する必要があります。詳細は、2.1.17項「SMTPサーバー・リソースの作成」を参照してください。 |
メール・セッション |
name@domain_name.comのエンドポイントURIエントリで使用する構成済メール・セッションのJNDI名を入力します。エンドポイントURIにJNDIメール・セッションのパラメータを指定すると、この「メール・セッション」設定のかわりにそれらのメール・セッションが使用されます。 「SMTPサーバー」オプションを使用する場合は、メール・セッションを入力しないでください。 |
送信元の名前 |
まず、Oracle WebLogic Serverコンソールでメール・セッションを構成しておく必要があります。 |
送信元アドレス |
Oracle WebLogic Server管理コンソールでメール・セッションを作成します。「メール・セッション」パラメータまたは「SMTPサーバー」パラメータを設定する必要があります。 |
返信先の名前 |
このパラメータは省略可能です。返信の送信元の名前を指定します。 |
返信先アドレス |
このパラメータは省略可能です。電子メール・メッセージの送信元の電子メール・アドレスを指定します。 |
接続タイムアウト |
このパラメータは省略可能です。このパラメータを使用して、SMTPサーバーへの接続がタイムアウトする時間をミリ秒単位で指定できます。 |
リクエストのエンコーディング |
このパラメータは省略可能です。リクエスト・メッセージを読み込む際のエンコーディングのタイプを指定します。デフォルトのエンコーディングはiso-8859-1です。 |
ビジネス・サービスの構成方法の詳細は、4.2項「ビジネス・サービスの構成」を参照してください。
プロキシ・サービスのメッセージング・タイプまたは任意のXMLサービスを構成するときに、エンドポイントURIが次の形式の場合、ファイル・トランスポートプロトコルを選択できます。
file:///<root-dir/dir1>
ここで、root-dir/dir1
は宛先ディレクトリへの絶対パスです。
注意: ファイル・トランスポートでは、メッセージング・サービス・タイプのサービスの一方向のメッセージングのみをサポートしています。 ファイル・トランスポートを使用して、メッセージ・タイプのプロキシ・サービスまたはメッセージ・タイプのビジネス・サービスを作成する場合、「メッセージ・タイプ」構成ページでレスポンス・タイプを「なし」に設定する必要があります。 |
Oracle Service Busがリモートの場所にファイルを書き込む際に、プログラムがそのファイルにアクセスしないように、ファイルへの書込みが完了するまでファイル・トランスポート・ビジネス・サービスによって一時的にファイル名に「.a」が追加されます。
プロキシ・サービスのファイル・トランスポートを構成する際に指定できるパラメータを表26-6に示します。
表26-6 プロキシ・サービスのファイル・トランスポートを構成するためのパラメータ
パラメータ | 説明 |
---|---|
ファイル・マスク |
プロキシ・サービスがポーリングするファイルを指定します。URIがディレクトリの場合、 |
ポーリング間隔 |
これは必須パラメータです。ポーリング間隔の値を秒単位で指定します。デフォルト値は60です。 |
読取り制限 |
これは必須パラメータです。各ポーリングで読み込むファイルの数を指定します。デフォルト値は |
到着順にソート |
このパラメータは省略可能です。発生した一連のイベントをファイルの到着順に示します。デフォルト値は |
サブディレクトリのスキャン |
省略可能です。このパラメータを有効にすると、サブディレクトリもスキャンされます。 |
参照渡し |
このパラメータを有効にすると、ファイルはアーカイブ・ディレクトリにステージングされ、ヘッダーに参照として渡されます。 |
読取り後のアクション |
必須パラメータです。サービスでファイルを読み込んだ後に、削除またはアーカイブのどちらのアクションを実行するかを指定します。デフォルトでは、ファイルは読込み後に削除されます。 |
ステージ・ディレクトリ |
これは必須パラメータです。このファイルURIは、ステージング・ディレクトリを指します。 注意: ステージ・ディレクトリをポーリング・ディレクトリ内に配置することはできません。 |
アーカイブ・ディレクトリ |
これは必須パラメータです。ファイルURIは、ファイルをアーカイブするディレクトリを指します。このフィールドは、 注意: アーカイブ・ディレクトリをポーリング・ディレクトリ内に配置することはできません。 |
エラー・ディレクトリ |
これは必須パラメータです。このURIは、エラーが発生した場合にファイルの内容を格納するディレクトリを指します。 注意: エラー・ディレクトリをポーリング・ディレクトリ内に配置することはできません。 |
リクエストのエンコーディング |
このパラメータは省略可能です。リクエスト・メッセージを読み込む際のエンコーディングのタイプを指定します。デフォルトのエンコーディングは |
ファイル・トランスポート・ベースのプロキシ・サービスの構成方法の詳細は、2.3項「プロキシ・サービスの操作」を参照してください。
ファイル・トランスポートを使用してビジネス・サービスを構成する場合は、エンドポイントURIを次の形式で指定する必要があります。
file:///<root-dir/dir1>
ここで、root-dir/dir1
は宛先ディレクトリへの絶対パスです。
プロキシ・サービスのファイル・トランスポートを構成する際に指定できるパラメータを表26-7に示します。
表26-7 ビジネス・サービスのファイル・トランスポートを構成するためのパラメータ
パラメータ | 説明 |
---|---|
接頭辞 |
このパラメータは省略可能です。ファイル名に付加する接頭辞を指定します。 |
接尾辞 |
このパラメータは省略可能です。ファイル名に付加する接尾辞を指定します。 |
リクエストのエンコーディング |
このパラメータは省略可能です。メッセージを読み込む際のエンコーディングのタイプを指定します。使用されるデフォルトのエンコーディングはutf-8です。 |
このトランスポートを構成する方法の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。
プロキシ・サービスのメッセージング・タイプまたは任意のXMLサービスを構成するときに、エンドポイントURIが次の形式の場合、FTP転送プロトコルを選択できます。
ftp://<hostname:port/directory>
説明:
hostname
は、宛先ディレクトリが格納されているホストの名前です。
port
は、FTP接続を行うポート番号です。
directory
は、宛先ディレクトリです。
ディレクトリはFTPセッションの作業ディレクトリを基準として相対的に指定します。たとえば、FTPサービスでファイルをhome/my_ftp/documentsにコピーする場合には、作業ディレクトリがhome/my_ftp/であれば、URLはftp://example:21/documentsとなります。
注意: ファイル・トランスポートでは、メッセージング・サービス・タイプのサービスの一方向のメッセージングをサポートしています。 FTPトランスポートを使用して、メッセージ・タイプのプロキシ・サービスまたはメッセージ・タイプのビジネス・サービスを作成する場合、「メッセージ・タイプ」構成ページでレスポンス・タイプを「なし」に設定する必要があります。 |
Oracle Service Busがリモートの場所にファイルを書き込む際に、プログラムがそのファイルにアクセスしないように、ファイルへの書込みが完了するまでFTPトランスポート・ビジネス・サービスによって一時的にファイル名に「.a」が追加されます。
プロキシ・サービスのFTPトランスポートを構成する際に指定できるパラメータを表26-8に示します。
表26-8 ビジネス・サービスのFTPトランスポートを構成するためのパラメータ
パラメータ | 説明 |
---|---|
ユーザー認証 |
ユーザー認証の次のいずれかのタイプを選択する必要があります。
|
参照渡し |
このパラメータは省略可能です。このパラメータを有効にすると、ファイルはアーカイブ・ディレクトリにステージングされ、ヘッダーに参照として渡されます。 |
リモート・ストリーミング |
このパラメータは省略可能です。このパラメータを |
ファイル・マスク |
これは必須パラメータです。プロキシ・サービスがポーリングするファイルを指定します。URIがディレクトリの場合に |
ポーリング間隔 |
これは必須パラメータです。ポーリング間隔の値を秒単位で指定します。デフォルト値は60です。 |
読取り制限 |
これは必須パラメータです。各ポーリングで読み込むファイルの数を指定します。デフォルト値は |
読取り後のアクション |
これは必須パラメータです。サービスでファイルを読み込んだ後に、削除またはアーカイブのどちらのアクションを実行するかを指定します。デフォルトでは、ファイルは読込み後に削除されます。 |
転送モード |
ファイル・トランスポート・モードとして「バイナリ」または「ascii」のいずれかを指定します。デフォルトでは、トランスポートは |
アーカイブ・ディレクトリ |
これは必須パラメータです。ファイルURIは、ファイルをアーカイブするディレクトリを指します。このフィールドは、 |
ダウンロード・ディレクトリ |
これは必須パラメータです。ファイル転送時にファイルがダウンロードされる、ローカル・マシンのディレクトリを入力します。 注意: アーカイブ・ディレクトリ、ダウンロード・ディレクトリ、およびエラー・ディレクトリは絶対パスであり、自動的に作成されます。相対パスを指定すると、ファイルはOracle WebLogic Serverを起動するJavaプロセスを基準にした相対的な位置に作成されます。 |
エラー・ディレクトリ |
これは必須パラメータです。このURIは、エラーが発生した場合にファイルの内容を格納するディレクトリの場所を指します。 |
リクエストのエンコーディング |
このパラメータは省略可能です。リクエスト・メッセージを読み込む際のエンコーディングのタイプを指定します。デフォルトのエンコーディングは |
詳細設定 |
アイコンをクリックして、
|
ファイル・トランスポート・ベースのプロキシ・サービスの構成方法の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。
ビジネス・サービスのメッセージング・タイプまたは任意のXMLサービスを構成するときに、エンドポイントURIが次の形式の場合、FTP転送プロトコルを選択できます。
ftp://<hostname:port/directory>
説明:
hostname
は、宛先ディレクトリが格納されているホストの名前です。
port
は、FTP接続を行うポート番号です。
directory
は、宛先ディレクトリです。
ディレクトリはFTPセッションの作業ディレクトリを基準として相対的に指定します。たとえば、FTPサービスでファイルをhome/my_ftp/documentsにコピーする場合には、作業ディレクトリがhome/my_ftp/であれば、URLはftp://example:21/documentsとなります。
ビジネス・サービスのFTPトランスポートを構成する際に指定する必要のあるパラメータを表26-9に示します。
表26-9 ビジネス・サービスのFTPトランスポートを構成するためのパラメータ
パラメータ | 説明 |
---|---|
ユーザー認証 |
ユーザー認証の次のいずれかのタイプを選択する必要があります。
|
宛先ファイル名の接頭辞 |
トランスポートによってリモート・サーバー上のファイル名の先頭に付加される、省略可能な接頭辞を入力します。 このフィールドには「*」を入力できません。この文字を入力すると、実行時例外が発生します。 |
宛先ファイル名の接尾辞 |
トランスポートによってリモート・サーバー上のファイル名の末尾に付加される、省略可能な接尾辞を入力します。 このフィールドには「*」を入力できません。この文字を入力すると、実行時例外が発生します。 |
リクエストのエンコーディング |
このパラメータは省略可能です。リクエスト・メッセージのエンコーディングを指定します。 |
このトランスポートを構成する方法の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。
SFTPトランスポートは、SSHバージョン2を使用したSFTP (SSHファイル・トランスポートプロトコル)経由でファイルを安全にトランスポートできるポーリング・ベースのトランスポートです。それは、定義済のポーリング間隔に基づいて指定されたディレクトリを定期的にポーリングします。認証後、Oracle Service BusサービスとSFTPサーバー間で接続が確立され、ファイル・トランスポートが可能になります。SFTPトランスポートでは、一方向のインバウンドおよびアウトバウンド接続をサポートしています。
注意: SFTPトランスポートでは、マルチバイト文字セットのファイル名を正しく処理できないことがあります。 |
SFTPトランスポートの主要な機能は次のとおりです。
SFTPトランスポートは、以下のサービス・タイプで使用できます。
(リクエスト・メッセージの種類が指定された)メッセージング・サービス
任意のXMLサービス
サービス・タイプの構成の詳細は、2.2項「ビジネス・サービスの操作」および2.3項「プロキシ・サービスの操作」を参照してください。
SFTPトランスポートでは、サイズの大きいメッセージの処理をサポートしています。プロキシ・サービスの構成時に、コンテンツ・ストリーミングを有効にし、サイズの大きいメッセージをメモリーまたはディスク・ファイルにバッファリングする必要があるかどうかを指定できます。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の本文コンテンツのストリーミングに関する項を参照してください。
着信メッセージを転送する場合、QoSをexactly-onceに設定します。これにより、各メッセージが少なくとも1回は処理されることが保証されます。発信メッセージを処理する場合は、QoSをbest-effortに設定します。
注意: 転送されないメッセージに関しては、パイプライン・エラー・ハンドラにエラー処理ロジック(再試行ロジックを含む)を作成する必要があります。 |
Oracle Service BusのメッセージでのQoSの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Busでのメッセージ・フローの作成に関する項を参照してください。
Oracle Service Busがリモートの場所にファイルを書き込む際に、プログラムがそのファイルにアクセスしないように、ファイルへの書込みが完了するまでSFTPトランスポート・ビジネス・サービスによって一時的にファイル名に「.a」が追加されます。
環境値は、構成データに含まれる定義済のフィールドです。この値は、ドメイン間で構成を移動するとき(テスト環境からプロダクション環境への移動など)に変更される可能性があります。SFTPトランスポートに関連付けられた環境値を次の表に示します。
表26-10 環境値
環境値 | 説明 |
---|---|
アーカイブ・ディレクトリ |
ダウンロード・ディレクトリまたはリモートの場所から移動されるファイルの移動先ディレクトリです。 |
ダウンロード・ディレクトリ |
ファイル転送時にファイルがダウンロードされるローカル・マシンのディレクトリです。 |
エラー・ディレクトリ |
問題が発生した場合にメッセージがポストされる場所です。 |
ポーリングの管理対象サーバー |
(クラスタ・シナリオで)ポーリングに使用する管理対象サーバーです。 |
詳細については、以下を参照してください。
『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のカスタマイズに関する項
次の原則は、プロキシ・サービスとビジネス・サービスのSFTP認証プロセスに適用されます。
接続: Oracle Service Busサービス(プロキシおよびビジネス)は、常にSFTPクライアントとして機能し、SFTPサーバーに接続します。
SFTPサーバーによる認証
公開鍵認証およびホスト・ベース認証の場合、SFTPサーバーはOracle Service Busサービスの公開鍵を使用して接続を認証します。
ユーザー名/パスワード認証の場合、SFTPサーバーはユーザー名とパスワードを使用して接続を認証します。
SFTPクライアントによる認証: Oracle Service Busサービスは、常に、known_hostsファイルに定義された公開鍵/ホスト/IPの組合せを使用してSFTPサーバーを認証します。詳細は、26.5.4.1.1項「既知ホスト・ファイルの作成」を参照してください。
接続の確立: サーバー認証とクライアント認証の両方に成功した場合にのみ接続が確立されます。
転送
クライアントがプロキシ・サービスの場合、ファイル(メッセージ)はSFTPサーバーからダウンロードされます。
クライアントがビジネス・サービスの場合、ファイル(メッセージ)はSFTPサーバーにアップロードされます。
SFTPトランスポートを使用したファイルのトランスポートには、次のステップが含まれます:
プロキシ・サービスが入力ディレクトリを定期的にポーリングします。
注意: ポーリング・サイクルごとに新しい接続が作成されます。 |
プロキシ・サービスは、入力ディレクトリでファイルを見つけると、 .stage 拡張子の付いたファイル名に変更します。この名前変更により、サービスが次回のポーリング・サイクルで同じファイルを選択しないことが保証されます。
.stageファイルは、配信されるまで入力ディレクトリ内に存在します。
注意: (ネットワーク障害などが原因で)入力ディレクトリからファイルを取得できない場合、 .stage ファイルはクリーンアップ・サイクルで処理されます。クリーンアップ・サイクルは、15分ごとまたは15回のポーリング・サイクルの後に実行されます(いずれか後に発生した方が実行されます)。連続する2回のクリーンアップ・サイクルで .stage ファイルが存在する場合、ファイルは再度処理されます。 |
メッセージのJMSタスクが作成され、ドメイン全体のJMSキューに追加されます。
ドメイン全体のMDBがタスクを受け取り、メッセージを処理します。
注意: このタスクでは、メッセージを処理する際にプールされた接続を使用します。プールの接続を使用できない場合は、新しい接続が作成されます。 |
メッセージがパイプラインに配信され、 .stage ファイルが削除されます。
注意: SFTPビジネス・サービスを構成している場合、サービスはプールされた接続を使用して、メッセージをアウトバウンド・ディレクトリに配置します。 |
メッセージが配信されていない場合は、再度メッセージの転送が試行され、定義済の試行回数に達するまでプロセスが繰り返されます。メッセージを配信できない場合、メッセージはエラー・ディレクトリに移動されます。
SFTPトランスポートを使用すると、SSHファイル・トランスポートプロトコル(SFTP)を使用してファイルを安全にトランスポートできます。
以下の項では、SFTPトランスポートを使用してファイルを安全に転送する方法について説明します。
SFTPトランスポートでは、以下の認証方式をサポートしています。
ユーザー名/パスワード認証
ホスト・ベース認証
公開鍵認証
Oracle Service Busサービスは、known_hostsファイルに定義されたサーバーの詳細に基づいてSFTPサーバーを認証します。そのため、サーバー認証を有効にするには、クライアント・マシンでknown_hostsファイルを作成する必要があります。
known_hostsファイルは、Oracle Service Busプロキシ・サービス(インバウンド・リクエスト)またはビジネス・サービス(アウトバウンド・リクエスト)が実行されているサーバーに存在する必要があります。このファイルには、プロキシ・サービスまたはビジネス・サービスの接続先となるリモートSFTPサーバーのホスト名、IPアドレスおよび公開鍵が含まれている必要があります。
known_hostsファイルを作成し、次の形式で詳細情報を入力します。
Hostname
,IP
algorithm
publickey
Hostname
は、SFTPサーバーのホスト名です。
IP
は、SFTPサーバーのIPアドレスです。
IPv6アドレスを使用する場合は、複数の0を表すために2つのコロンを使用しないでください。すべての0を指定します。たとえば、「::」という形式ではなく「:0:0:0:」を使用します。
algorithm
には、SFTPサーバーの構成に基づいて、DSAまたはRSAのいずれかを指定できます。サポートされているアルゴリズムに応じて、ssh-rsaまたはssh-dssと入力します。
publickey
は、SFTPサーバーの公開鍵です。公開鍵は、Open SSH公開鍵形式であることが必要です。
例
getafix,172.22.52.130 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAtR+M3Z9HFxnKZTx66fZdnQqAHQcF1vQe1+EjJ/HWYtg Anqsn0hMJzqWMatb/u9yFwUpZBirjm3g2I9Qd8VocmeHwoGPhDGfQ5LQ/PPo3esE+CGwdnC OyRCktNHeuKxo4kiCCJ/bph5dRpghCQIvsQvRE3sks+XwQ7Wuswz8pv58=
known_hostsファイルには、複数のエントリを含めることができますが、各エントリはそれぞれ別の行に入力する必要があります。
known_hostsファイルをDOMAIN_HOME/config/osb/transports/sftpディレクトリに移動します。
/transports/sftp
ディレクトリは、自動的に作成されるわけではありません。このディレクトリを作成する必要があります。
ユーザー名/パスワード認証は、最も簡単で手早い認証方式です。この認証方式は、ユーザーの資格証明に基づいています。
サービスのユーザー名/パスワード認証を有効にするには:
SFTPサーバーのユーザー資格証明を使用して静的サービス・アカウントを作成します。詳細は、2.1.15項「サービス・アカウント・リソースの作成」を参照してください。
known_hostsファイルを作成します。詳細は、26.5.4.1.1項「既知ホスト・ファイルの作成」を参照してください。
ホスト・ベース認証では、プライベート・ホスト・キーを使用します。この方式は、すべてのユーザーが同じプライベート・ホストを共有している場合に使用できます。
サービスのホスト・ベース認証を有効にするには:
SSLクライアント認証キーでサービス・キー・プロバイダを構成します。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。
注意: 公開鍵は、サービス・キー・プロバイダの作成時に使用したキーストアから抽出できます。公開鍵は、Open SSH形式であることが必要です。 |
known_hostsファイルを作成します。詳細は、26.5.4.1.1項「既知ホスト・ファイルの作成」を参照してください。
SFTPサーバーのクライアントであるOracle Service Busからのリクエストを受け入れるようにSFTPサーバーを構成します。
たとえば、LinuxのSFTPサーバーの場合、次の手順を実行する必要があります。
/etc/ssh/shosts.equivファイルを編集し、Oracle Service Busドメインを実行しているマシンのホスト名またはIPアドレスを追加します。
/etc/ssh/ssh_known_hostsファイルを編集して、Oracle Service Busドメインを実行しているマシンのホスト名またはIPアドレスを追加し、その後にスペースを入力して公開鍵を追加します。
注意: ホストベース認証では、Open SSHがクライアント提供のホスト名と、クライアントIPアドレスのリバース・ルックアップを比較します。リクエストが複数ホーム・マシンから送られるシナリオ、またはNATゲートウェイを介して送られるシナリオでは、ホスト名は一致しない場合があり、認証が失敗します。このようなシナリオを回避するには、/etc/ssh/sshd_configのHostbasedUsesNameFromPacketOnlyオプションをyesに設定することで、DNSチェックをオフにします。この回避方法はセキュリティを損ないません。実際のセキュリティは、known_hostsファイルとSFTPサーバーの公開鍵の照合によって行われるためです。 |
公開鍵認証は、ユーザー独自の秘密鍵を使用して実行されます。この方式は、各ユーザーが秘密鍵を持っている場合に使用できます。
公開鍵認証を有効にするには:
SSLクライアント認証キーでサービス・キー・プロバイダを構成します。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。
Oracle Service Bus (SFTPクライアント)からのリクエストを受け入れるようにSFTPサーバーを構成します。
たとえば、LinuxのSFTPサーバーの場合、キーストアから公開鍵を抽出し、このキーをSFTPサーバーの $HOME/.ssh/authorized_keys ファイルに入力する必要があります。このパスとファイルが存在することを確認してください。
known_hostsファイルを作成します。詳細は、26.5.4.1.1項「既知ホスト・ファイルの作成」を参照してください。
Oracle Service Bus管理コンソールの「トランスポート構成」ページでプロキシ・サービスを作成する場合、sftpの転送プロトコルを選択し、次の形式でエンドポイント構成を指定する必要があります。
sftp://hostname:port/directory
エンドポイントURIの各部分の説明は次のとおりです。
hostname
は、SFTPサーバーのホスト名またはIPアドレスです。
port
は、SFTPサーバーがリスニングしているポートです。SFTPのデフォルト・ポートは22
です。
directory
は、定期的にファイルについてポーリングされる場所です。
ディレクトリはSFTPセッションの作業ディレクトリを基準として相対的に指定します。たとえば、SFTPサービスでファイルをhome/my_sftp/documentsにコピーする場合には、作業ディレクトリがhome/my_sftp/であれば、URLはsftp://example:21/documentsとなります。
注意: SFTPトランスポートでは、メッセージとXMLサービス・タイプのみがサポートされるため、Oracle Service Bus管理コンソールの「全般的な構成」ページで、サービス・タイプとして「メッセージ・サービス」または「任意のXMLサービス」を選択する必要があります。 サービス・タイプとして 「メッセージング・サービス」 を選択した場合、以下を実行する必要があります。
詳細は、2.3項「プロキシ・サービスの操作」を参照してください。 |
次の表の説明に従って、プロキシ・サービスを構成します。
表26-11 SFTPプロキシ・サービスの構成
フィールド | 説明 |
---|---|
ユーザー認証 |
プロキシ・サービスは、指定されたユーザー認証方式に基づいてSFTPサーバーによって認証されます。 必要な認証方式を選択します。
|
サービス・アカウント |
ユーザーのサービス・アカウントを入力するか、「参照」をクリックしてサービス・アカウントを選択します。サービス・アカウントの使用方法の詳細は、2.1.15項「サービス・アカウント・リソースの作成」を参照してください。 |
サービス・キー・プロバイダ |
このフィールドは、公開鍵認証方式とホスト・ベース認証方式にのみ使用できます。 サービス・キー・プロバイダを入力するか、「参照」をクリックしてサービス・キー・プロバイダを選択します。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。 |
ユーザー名 |
この値は、ホスト・ベース認証方式または公開鍵認証方式を選択した場合にのみ必要です。
ユーザー名を入力します。 |
参照渡し |
このオプションを選択すると、ファイルはアーカイブ・ディレクトリにステージングされ、参照としてヘッダーに渡されます。 注意: このオプションは、リモート・ストリーミングが無効になっている場合にのみ使用できます。 |
リモート・ストリーミング |
このオプションを選択すると、処理時にSFTPのファイルがリモート・サーバーから直接ストリームされます。このオプションを選択した場合、SFTPサーバー・マシンのリモート・ディレクトリがアーカイブ・ディレクトリになります。そのため、SFTPユーザー・ディレクトリからの相対パスでアーカイブ・ディレクトリを指定する必要があります。 |
ファイル・マスク |
特定のタイプのファイルを転送する場合は、ファイル・マスクを使用できます。 正規表現を入力して、ディレクトリから取り出すファイルを選択します。デフォルト値は*.*です。 |
ポーリング間隔 |
ポーリング間隔は、入力ディレクトリをポーリングする頻度です。ポーリングでは、SFTP接続を作成する必要があります。 指定した場所からファイルをポーリングする間隔を秒単位で入力します。デフォルト値は60です。 注意: 間隔が短いとディレクトリが頻繁にポーリングされるため、短いポーリング間隔を設定しないようにしてください。 |
読取り制限 |
ポーリング・ディレクトリに多数のファイルが存在する場合は、このフィールドで適切な値を選択することにより同時転送の数を制限できます。 制限を指定しない場合は、0(ゼロ)を入力します。デフォルト値は10です。 注意: SFTPサーバーで同時接続数が制限されている場合があります。定義した読取り制限がサーバーで定義されている制限よりも少ないことを確認してください。 |
読取り後のアクション |
ファイル転送後にメッセージで実行する必要のあるアクションを選択します。
|
アーカイブ・ディレクトリ |
「読取り後のアクション」が「アーカイブ」に設定されている場合、ファイルは転送後に(ダウンロード・ディレクトリまたはリモートの場所から)アーカイブ・ディレクトリに移動します。 「参照渡し」オプションを選択した場合は、アーカイブ・ディレクトリを指定する必要があります。 リモート・ストリーミングが有効になっている場合、アーカイブ・ディレクトリはSFTPサーバーのディレクトリになります。リモート・ストリーミングが無効になっている場合は、Oracle Service Busマシン上のアーカイブ・ディレクトリを使用できます。 アーカイブ・ディレクトリの絶対パスを指定します。 注意: このディレクトリが存在しない場合は、自動的に作成されます。相対パスを指定すると、ディレクトリはOracle WebLogic Serverを起動するJavaプロセスからの相対パスに作成されます。 |
ダウンロード・ディレクトリ |
ファイル転送時に、ファイルはこのディレクトリにダウンロードされます。 リモート・ストリーミングが有効になっている場合、このオプションは無効になります。 ファイル転送時にファイルをダウンロードするローカル・マシンのディレクトリの絶対パスを指定します。 注意: このディレクトリが存在しない場合は、自動的に作成されます。相対パスを指定すると、ディレクトリはOracle WebLogic Serverを起動するJavaプロセスからの相対パスに作成されます。 |
エラー・ディレクトリ |
ファイル転送時に問題が発生した場合、メッセージはエラー・ディレクトリにポストされます。 リモート・ストリーミングが有効になっている場合、エラー・ディレクトリはSFTPサーバーのディレクトリになります。リモート・ストリーミングが無効になっている場合は、Oracle Service Busマシン上のエラー・ディレクトリを使用できます。 エラー・ディレクトリの絶対パスを指定します。 注意: このディレクトリが存在しない場合は、自動的に作成されます。相対パスを指定すると、ディレクトリはOracle WebLogic Serverを起動するJavaプロセスからの相対パスに作成されます。 |
リクエストのエンコーディング |
SFTPトランスポートでのリクエストの文字セット・エンコーディングとしてデフォルト値(UTF-8)を受け入れます。 |
サブディレクトリのスキャン |
エンドポイントURIで指定されたディレクトリ内のすべてのサブディレクトリを再帰的にスキャンする場合は、このオプションを選択します。 注意: サブディレクトリをスキャンする場合、追加の処理オーバーヘッドが必要となります。そのため、このオプションは慎重に使用してください。 |
到着順にソート |
このオプションを選択すると、イベントは到着順に配信されます。これにより、メッセージ配信がランダムに行われるのではなく、ファイルが宛先ディレクトリにダウンロードされた時間に基づいて行われるようになります。 |
タイムアウト |
ソケット・タイムアウト間隔を秒単位で入力します。この時間が経過すると、接続を切断する必要があります。接続をタイムアウトしない場合は、0を入力します。デフォルト値は60です。 |
再試行回数 |
この設定を使用すると、ネットワーク障害などのエラーの発生時に、複数回の試行が可能になります。 SFTP接続に失敗した場合の再試行回数を指定します。デフォルト値は |
SFTPトランスポートを使用するプロキシ・サービスの構成方法の詳細は、2.3項「プロキシ・サービスの操作」を参照してください。
プロキシ・サービスを構成するときに、トランスポート・ヘッダー・アクションを使用してメッセージのヘッダー値を設定できます。SFTPトランスポートに関連するトランスポート・ヘッダーとメタデータを次の表に示します。
表26-12 トランスポート・ヘッダーとメタデータ
ヘッダー/メタデータ | 説明 |
---|---|
FileName |
この値は、宛先ディレクトリでファイル名として使用されます。 |
isFilePath |
メタデータ・フィールドです。指定可能な値はtrueとfalseです。
|
filePath |
レスポンス・メタデータ・フィールドです。 FileName ヘッダーで指定したファイルが書き込まれる絶対パスを示します。 |
Oracle Service Busメッセージ・フローでのトランスポート・ヘッダーの構成
構成できるのは、Oracle Service Busメッセージ・フローにおけるアウトバウンド・リクエストのトランスポート・ヘッダーのみです。パイプラインで、トランスポート・ヘッダー・アクションを使用してメッセージのヘッダー値を設定します。詳細は、2.4.32項「メッセージ・フローへのトランスポート・ヘッダー・アクションの追加と構成」を参照してください。
テスト・コンソールでのトランスポート・ヘッダーとメタデータの構成
開発時にSFTPトランスポートベースのサービスをテストする場合、Oracle Service Busテスト・コンソールでFileNameトランスポート・ヘッダーとisFilePathメタデータの値を構成できます。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のテスト・コンソールの使用に関する項を参照してください。
Oracle Service Bus管理コンソールの「トランスポート構成」ページでビジネス・サービスを作成する場合、sftpの転送プロトコルを選択し、次の形式でエンドポイントURI (サービスの場所)を指定する必要があります。
sftp://hostname:port/directory
エンドポイントURIの各部分の説明は次のとおりです。
hostname
は、SFTPサーバーのホスト名またはIPアドレスです。
port
は、SFTPサーバーがリスニングしているポートです。SFTPのデフォルト・ポートは22です。
directory
は、アウトバウンド・メッセージが格納される(書き込まれる)場所です。
ディレクトリはSFTPセッションの作業ディレクトリを基準として相対的に指定します。たとえば、SFTPサービスでファイルをhome/my_sftp/documentsにコピーする場合には、作業ディレクトリがhome/my_sftp/であれば、URLはsftp://example:21/documentsとなります。
注意: SFTPトランスポートでは、メッセージとXMLサービス・タイプのみがサポートされるため、Oracle Service Bus管理コンソールの「全般的な構成」ページで、サービス・タイプとして「メッセージ・サービス」または「任意のXMLサービス」を選択する必要があります。 サービス・タイプとして 「メッセージング・サービス」 を選択した場合、以下を実行する必要があります。
詳細は、2.2項「ビジネス・サービスの操作」を参照してください。 |
次の表の説明に従って、ビジネス・サービスを構成します。
表26-13 SFTPビジネス・サービスの構成
フィールド | 説明 |
---|---|
ユーザー認証 |
プロキシ・サービスは、指定されたユーザー認証方式に基づいてSFTPサーバーによって認証されます。 必要な認証方式を選択します。
|
サービス・アカウント |
ユーザーのサービス・アカウントを入力するか、「参照」をクリックしてサービス・アカウントを選択します。サービス・アカウントの使用方法の詳細は、2.1.15項「サービス・アカウント・リソースの作成」を参照してください。 |
サービス・キー・プロバイダ |
このフィールドは、公開鍵認証方式とホスト・ベース認証方式にのみ使用できます。 サービス・キー・プロバイダを入力するか、「参照」をクリックしてサービス・キー・プロバイダを選択します。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。 |
ユーザー名 |
この値は、ホスト・ベース認証方式または公開鍵認証方式を選択した場合にのみ必要です。
ユーザー名を入力します。 |
タイムアウト |
ソケット・タイムアウト間隔を秒単位で入力します。この時間が経過すると、接続を切断する必要があります。接続をタイムアウトしない場合は、0を入力します。デフォルト値は60です。 |
宛先ファイル名の接頭辞 |
トランスポートによってリモート・サーバー上のファイル名の先頭に付加される、省略可能な接頭辞を入力します。 このフィールドには「*」を入力できません。この文字を入力すると、実行時例外が発生します。 |
宛先ファイル名の接尾辞 |
トランスポートによってリモート・サーバー上のファイル名の末尾に付加される、省略可能な接尾辞を入力します。 このフィールドには「*」を入力できません。この文字を入力すると、実行時例外が発生します。 |
リクエストのエンコーディング |
SFTPトランスポートでのリクエストの文字セット・エンコーディングとしてデフォルト値(UTF-8)を受け入れます。 |
SFTPトランスポートを使用するビジネス・サービスの構成方法の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。
リモートSFTPサーバーへの接続時に接続またはユーザー認証に失敗した場合に発生する可能性のある通信エラーを処理するように、SFTPトランスポート・ベースのビジネス・サービスを構成できます。ビジネス・サービスを構成するときに、指定した再試行間隔の後、ビジネス・サービスのエンドポイントURIがオフラインになるように設定できます。
詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の「モニタリング」の次のトピックを参照してください:
ビジネス・サービスの操作設定の構成に関する項
ビジネス・サービスのエンドポイントURIのメトリックの表示に関する項
ほとんどのエラーは、SFTPプロキシ・サービスまたはビジネス・サービスの構成中に発生します。エラーについて理解し、エラーを解決する上で役立つヒントを以下に示します。
known_hostsファイルを適切に構成していることを確認します。
公開鍵認証では、公開鍵ファイルをサーバーに格納する必要があります。詳細については、SFTPサーバー付属のドキュメントを参照してください。
接続は拒否されました
というエラー・メッセージは、構成済のホストとポートでSFTPサーバーを使用できないことを示します。
「認証が失敗しました。」
というエラー・メッセージは、ユーザー名とパスワードが無効であること、または公開鍵が正しく構成されていないことを示します。
接続が正常に完了しませんでした
というエラー・メッセージは、接続エラーの原因となった実際のエラー(キーが見つかりません
など)が表示された後に表示されます。
IP、ホストのキーが見つかりません
というエラー・メッセージは、指定されたIPとホストの組合せに対応するエントリがknown_hostsファイルに含まれていないことを示します。エントリが存在する場合は、別のアルゴリズムのキーを使用して試行されます。たとえば、以前の試行でRSAキーが使用された場合は、DSAキーを使用して再試行されます。
Oracle Service Busドメインに存在するリソースをインポートする場合、「セキュリティおよびポリシーの構成を保持」オプションを選択することで、そのリソースの既存のセキュリティおよびポリシーの構成の詳細を保持できます。リソースのインポート時に保持されるSFTPサービス固有の詳細は次のとおりです。
クライアント認証方式
ユーザー名/パスワード認証に関連付けられたサービスのサービス・アカウントへの参照
ホスト・ベース認証または公開鍵認証に関連付けられたサービスのサービス・キー・プロバイダへの参照
ホスト・ベース認証または公開鍵認証に関連付けられたサービスのユーザー名
Oracle Service Bus管理コンソールからのリソースのインポートの詳細は、2.1.14項「リソースのインポート」を参照してください。
SFTPサービスをUDDIレジストリにパブリッシュすると、「認証モード」
、「リクエストのエンコーディング」
、「到着順にソート」
および「ファイル・マスク」
の各プロパティがパブリッシュされます。
SFTPサービスをUDDIレジストリからインポートしたときに、レジストリからインポートされるプロパティを表26-14に示します。
表26-14 UDDIレジストリからインポートされるプロパティ
プロパティ | 説明 |
---|---|
宛先ファイル名の接頭辞 |
リモート・サーバーに格納されるファイルの名前に使用する接頭辞です。 デフォルト値は" "(null)です。 |
宛先ファイル名の接尾辞 |
リモート・サーバーに格納されるファイルの名前に使用する接尾辞です。 デフォルト値は" "(null)です。 |
認証モード |
レジストリからインポートされる認証方式です。 ユーザー認証を使用するSFTPビジネス・サービスをUDDIレジストリからOracle Service Busにインポートすると、競合が発生します。
|
サービスのインポート後のロード・バランシング・アルゴリズムのデフォルト値はround-robinです。
詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の「UDDI」を参照してください。