HTTPRequest ノード

HTTPRequest ノードを使用して、Web サービスと対話します。

このトピックには、以下のセクションが含まれています。

目的

HTTPRequest ノードは、入力メッセージのすべてまたは一部を Web サービスに送信された要求として使用して、その Web サービスと対話します。メッセージをメッセージ・フロー内の後続のノードに伝搬する前に、Web サービス応答の内容を追加した入力メッセージの内容を使用して新規出力メッセージを作成するよう、ノードを構成することもできます。

構成に応じて、このノードは、入力メッセージの特定の内容から HTTP または HTTP over SSL (HTTPS) 要求を構成し、この要求を Web サービスに送信します。ノードは、Web サービスから応答を受信し、出力ツリーで組み込むために応答の内容を構文解析します。構成で必要な場合、ノードは HTTP ヘッダーを生成します。

このノードは、HTTPInput ノードまたは HTTPReply ノードが入っているかどうかにかかわらず、メッセージ・フローで使用できます。

HTTPRequest ノードは、次のメッセージ・ドメインのメッセージを処理します。

  • MRM
  • XML
  • XMLNS
  • XMLNSC
  • JMSMap
  • JMSStream
  • MIME
  • BLOB
  • IDOC

HTTPRequest ノードはパレットの HTTP ドロワーに入っていて、ワークベンチ内では次のアイコンによって表されます。

HTTPRequest ノード・アイコン

HTTPRequest ノードを使用した Web サービスへの要求発行

HTTP 要求には、次の 2 つの部分があります。
  1. サービスの URL。
  2. リモート・サーバーによって処理された後、応答 (SOAP または XML のその他の Web サービスであることが多い) を送り返すデータのストリーム。

URL は、http://<address>[:port]/<function> の形式です。例えば、http://localhost:7080/request などです。この URL は、メッセージ自体のフィールドとして、または LocalEnvironment のフィールドとして、HTTPRequest ノード・パラメーターで静的に指定できます。 Web サービスに送信されるデータは、HTTPRequest ノード・プロパティーでの指定どおり、メッセージ・ツリーの全体または一部にすることができます。

データは、大半の要求の場合、CCSID 1208 の形式で作成されている必要があります。 応答は、入力メッセージを置換するか、メッセージ・ツリーに挿入することができます。位置は、HTTPRequest ノード・パラメーターに指定されます。 応答のドメインは、XMLNS です。要求が成功した場合、HTTPResponse は、メッセージ・ツリーの前に挿入され、応答はツリーの指定された位置に配置され、要求は Out ターミナルに伝搬されます。HTTPRequest ノードが要求を発行できない場合は、ExceptionList がメッセージ・ツリーに挿入され、ツリーは Failure ターミナルに伝搬されます。

要求は HTTPRequest ノードによって正常に送信されたものの、Web サービスが成功しない場合、HTTPResponse は、メッセージ・ツリーに挿入され、Error ターミナルに伝搬されます。HTTPRequest ノード上のエラー・メッセージ位置パラメーターは、ツリー内で応答が配置される位置を指定します。例えば、OutputRoot.XMLNS.error などです。 この応答を適切なコード・ページにキャストしてデータを表示できるようにするには、Compute ノードを使用することが必要な場合があります。例を挙げます。
Set OutputRoot.XMLNS.error850 = CAST(InputRoot.XMLNS.error.BLOB as CHAR CCSID 850);
HTTP については、Hypertext Transfer Protocol - HTTP/1.1を参照してください。HTTP 戻りコードについて詳しくは、HTTP 応答コードを参照してください。

タイムアウト・インターバルを指定して、要求が指定した期間よりも長い時間を要した場合、要求を Error ターミナルに伝搬して、適切なメッセージを表示させることができます。HTTPRequest ノードが処理する要求ごとに、接続を開いて、応答が戻ったら閉じます。タイムアウト・インターバルが指定された場合、ソケットはインターバルの後に閉じられます。 このように閉じることによって、要求が正しい応答のみを取得し、タイムアウトになった要求の応答データをすべて廃棄させることができます。

HTTP プロキシーを使用することで、中間サイトを介して要求をルーティングすることができます。ツールをプロキシーとして実行すると、要求と応答を確認できるので、フローのデバッグが可能になります。 HTTP 宛先は、プロキシーによって確認されます。ローカル・ホストの HTTP 宛先を指定して、HTTP プロキシーが異なるコンピューター上で実行中の場合は、要求は元の要求の発行元であるコンピューターではなく、リモート・プロキシー・コンピューターにルーティングされます。

メッセージ・フロー内での HTTPRequest ノードの使用

HTTPRequest ノードは、HTTP 要求を送信する必要のあるどのメッセージ・フローにおいても使用できます。 この最も一般的な例は、Web サービスを呼び出すメッセージ・フローです。

Web サービス・アプリケーションについて詳しくは、Web サービス・アプリケーションでの作業を参照してください。

エラーの処理

このノードは TCP/IP を使用して外部サービスと直接対話するので、次のタイプのエラーが発生する可能性があります。

  • TCP/IP によって生成されるエラー。例えば、「ホストへの経路がない」または「接続が拒否される」です。

    ノードがこれらのエラーを検出する場合、例外が生成され、受信したエラー情報が例外リストに取り込まれ、入力メッセージは未変更のまま、Failure ターミナルにルーティングされます。

  • Web サーバーから戻されるエラー。このようなエラーは、100 から 299 の範囲を除く HTTP 状況コードです。 ノードは、これらのエラーを検出すると、「エラー」タブで指定されたプロパティーに従い、応答を Error ターミナルにルーティングします。

    ノードは応答がどのような形式になるかを判別できないため、応答は BLOB メッセージとして作成されます。 転送を処理するようにこのノードを構成していない場合、転送状況コード (3xx) 付きのメッセージも同様に処理されます。

HTTP 応答コード

HTTPRequest ノードは、100 番台の状況コードを「続き」の応答として扱い、現在の応答を破棄して、Web サーバーからの別の応答を待機します。

200 番台の状況コードは成功として扱われ、生成される出力メッセージの形式は、ノード上の各種のタブの設定によって決定されます。 応答は、ノードの Out ターミナルにルーティングされます。

300 番台の状況コードは転送用です。 「HTTP(S) 転送を使用」プロパティーを選択した場合、ノードは要求を、受け取った応答で指定された新規の宛先に再送信することはありません。「HTTP(S) 転送を使用」プロパティーを選択していない場合、コードは、HTTPRequest ノードを使用した Web サービスへの要求発行で説明されているとおりにエラーとして扱われます。 HTTP 戻りコードについて詳しくは、HTTP 応答コードを参照してください。

400 番台および 500 番台の状況コードはエラーであり、HTTPRequest ノードを使用した Web サービスへの要求発行で説明されているとおりに扱われます。 HTTP 戻りコードについて詳しくは、HTTP 応答コードを参照してください。

ヘッダーの操作

入力メッセージを Web サービス応答で置換」、または「入力をエラーで置換」を選択した場合、入力メッセージ用のヘッダー (HTTPRequest ノードの In ターミナルにメッセージが着信するときにメッセージに属するヘッダー) は、HTTPRequest ノードから発信されるメッセージと一緒に伝搬されません。 ただし、メッセージ・ツリー内の位置を指定するプロパティーのいずれかが指定されている場合、入力メッセージのヘッダーは伝搬されます。

リモート Web サービスによって戻されるヘッダーを添付された HTTPResponse ヘッダーは、ノードから伝搬されるメッセージ内の最初のヘッダー (プロパティーの後) です。 選択したオプションに関係なく、このアクションがとられます。 したがって、HTTPRequest ノードからの応答を WebSphere® MQ キューに入れる場合、MQMD が (プロパティーの後の) 最初のヘッダーになるようにヘッダーを操作します。

入力メッセージを応答と置き換える場合、HTTPRequest ノードの前に入力メッセージの MQMD を Environment ツリーにコピーし、HTTPRequest ノードの後にそれをメッセージ・ツリーにコピーして戻すことができます。 応答の位置を指定する場合、既存の入力メッセージ・ヘッダーを維持するために、MQMD が最初のヘッダーとなるように HTTP 応答ヘッダーを移動または除去する必要があります。

以下の例には、HTTPHeader を除去する ESQL が含まれています。
SET OutputRoot = InputRoot;
SET OutputRoot.HTTPResponseHeader = NULL;
以下の例には、HTTPHeader を移動させ、それが提供する情報を保存する ESQL が含まれています。
SET OutputRoot = InputRoot;
DECLARE HTTPHeaderRef REFERENCE TO OutputRoot.HTTPResponseHeader;
DETACH HTTPHeaderRef;
ATTACH HTTPHeaderRef TO OutputRoot.MQMD AS NEXTSIBLING;

HTTPRequest ノードの構成

HTTPRequest ノードのインスタンスをメッセージ・フローに入れると、そのノードを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。ノードのプロパティーを「プロパティー」ダイアログに表示するには、ノードをダブルクリックするか、またはノードを右クリックしてから「プロパティー」をクリックします。

値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、アスタリスクが表示されます。

以下のように、HTTPRequest ノードを構成します。

  1. オプション: 「説明」タブで、簡略説明詳細説明、あるいはその両方を入力します。このタブで、ノードを名前変更することもできます。
  2. 「基本」タブで以下のようにします。
    1. HTTPRequest ノードは、要求の送信先 Web サービスの URL を判別します。 以下の 3 つのオプションの 1 つを設定します。 ノードはこれらのオプションを以下の順番で検査します (つまり、常に最初のオプションによって 2 番目のオプションは指定変更され、2 番目のオプションによって 3 番目のオプションは指定変更される)。
      1. 入力メッセージの HTTPRequest ヘッダー内の X-Original-HTTP-URL
      2. 入力メッセージの LocalEnvironment.Destination.HTTP.RequestURL
      3. Web サービス URL」プロパティー

      最初の 2 つのオプションでは、入力メッセージがメッセージ・フローを通過するたびに URL を設定するという、動的方式が可能です。 これらのオプションのどちらかを使用するには、メッセージ・フローの中の HTTPRequest ノードの前に Compute ノードを組み込み、必要な値の作成と初期化を行います。

      3 番目のオプションでは、このノードが受信するすべてのメッセージで値が固定します。 このプロパティーは、残りのフィールドが作成されていない場合やヌル値である場合に使用されるデフォルト設定を含むように設定します。 どちらかのフィールドに値がある場合、このプロパティーの設定は無視されます。 「Web サービス URL」プロパティーには、有効な URL が入っていなければなりません。そうでない場合、デプロイは失敗します。 X-Original-HTTP-URL または LocalEnvironment.Destination.HTTP.RequestURL に設定した値が有効な URL であることも確認します。これが有効でない場合、ノードは「Web サービス URL」プロパティーのデフォルト設定を使用します。

      URL の先頭が http:// の場合、要求ノードは HTTP 要求を、指定の URL にします。 URL の先頭が https:// の場合、要求ノードはノードの「SSL」タブで指定されたパラメーターを使用して、HTTP over SSL (HTTPS) 要求を、指定の URL にします。

    2. 要求タイムアウト (秒数)」プロパティーの値を設定します。これは、このノードが Web サービスからの応答を待機する時間の長さ (秒単位) です。 応答がこの時間内に受信される場合、応答は Out ターミナルを経由して残りのメッセージ・フローに伝搬されます。 応答がこの時間内に受信されない場合、入力メッセージは、Failure ターミナル (接続されている場合) を経由して伝搬されます。 Failure ターミナルが接続されていない場合、応答が時間内に受信されないと、例外が生成されます。
  3. HTTP 設定」タブで以下のようにします。
    1. HTTP(S) プロキシーの位置」には、要求の送信先のプロキシー・サーバーの位置を設定します。
    2. HTTP(S) 転送を使用」を選択して、HTTP 状況コードが 300 から 399 の Web サービス応答をノードが処理する方法を指定します。
      • このチェック・ボックスを選択すると、ノードは応答に指定されている転送に従い、新しい URL (メッセージの内容に組み込まれている) へ Web サービス要求を再発行します。
      • このチェック・ボックスのチェックを外した場合、ノードは指定されている転送に従いません。 応答メッセージは Error ターミナルに伝搬されます。
    3. HTTP バージョン」プロパティーのいずれかのオプションを選択します。 有効な値は、1.0 または 1.1 です。

      HTTP バージョン」プロパティー値として 1.1 を選択する場合、「HTTP/1.1 キープアライブを使用可能にする」を選択することもできます。

    4. 変更の始まりHTTP メソッド」プロパティーのいずれかのオプションを選択します。 有効値は、POSTGETPUTDELETEHEAD です。変更の終わり
  4. HTTP over SSL (HTTPS) 要求を使用する場合、「SSL」タブで、次のようにして HTTPS 要求の値を設定します。
    1. 要求を出すのに使用する「プロトコル」プロパティーを指定します。 SSL 接続の両端は、使用するプロトコルに関して合意しており、選択するプロトコルはリモート・サーバーが受け入れ可能なものでなければなりません。 以下のオプションが選択可能です。
      • SSL。 このオプションはデフォルトです。 このオプションはまず SSLv3 プロトコルを使用した接続を試行しますが、ハンドシェークは SSLv2 プロトコルまでのフォールバックが可能であり、その場合には基礎の JSSE プロバイダーによって SSLv2 プロトコルがサポートされます。
      • SSLv3。 このオプションは SSLv3 プロトコルを使用した接続のみを試行します。 SSLv2 へのフォールバックは許可されません。
      • TLS。 このオプションは TLS プロトコルを使用した接続のみを試行します。 SSLv3 または SSLv2 へのフォールバックは許可されません。
    2. 許可された SSL 暗号」プロパティーを設定します。 この設定を使用すれば、1 つの暗号 (SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA など) の指定や、暗号のリスト (接続ではその 1 つのみが使用される) の指定が可能になります。 この暗号のセットには、リモート・サーバーにより受け入れられる 1 つ以上の暗号が含まれていなければなりません。 暗号間の分離文字には、コンマが使用されます。 デフォルト値は、空ストリングです。この場合、ノードは任意またはすべての使用可能な暗号を SSL 接続ハンドシェーク時に使用できます。 この方式の場合に、正常に SSL 接続を作成するための有効範囲が最大限になります。
  5. 応答メッセージの構文解析」タブで、Web サービスによって戻される応答メッセージの構文解析方法を決定するのにノードが使用するメッセージ・ドメイン、メッセージ・セット、メッセージ・タイプおよびメッセージ形式を記述するプロパティーの値を設定します。 Web サービスによってエラー・メッセージが戻される場合、これらのプロパティーの値は無視され、メッセージは BLOB パーサーによって構文解析されます。
    1. 「メッセージ・ドメイン」では、リストから使用するパーサーの名前を選択します。 以下のオプションの中から選択します。
      • MRM
      • XML
      • XMLNS
      • XMLNSC
      • JMSMap
      • JMSStream
      • MIME
      • BLOB
      • IDOC
    2. MRM または IDOC パーサーを使用している場合、該当するメッセージ・セットをリストから選択します。MRM または IDOC をメッセージ・ドメインとして選択すると、このリストに使用可能なメッセージ・セットが取り込まれます。

      XML、XMLNS、XMLNSC、JMS、MIME、および BLOB パーサーの場合、「メッセージ・セット」はブランクのままにしてください。

    3. MRM パーサーを使用する場合は、「メッセージ・タイプ」のリストから、適切なメッセージ・タイプを選択します。 このリストには、選択したメッセージ・セットで定義されたメッセージが取り込まれます。

      XML、XMLNS、XMLNSC、JMS、MIME、BLOB、および IDOC パーサーの場合、「メッセージ・タイプ」はブランクのままにしてください。

    4. MRM または IDOC パーサーを使用する場合は、「メッセージ形式」のリストから、メッセージの形式を選択します。 このリストには、このメッセージ・セット用に定義されたすべての物理形式が掲載されます。

      XML、XMLNS、XMLNSC、JMS、MIME、および BLOB パーサーの場合、「メッセージ形式」はブランクのままにしてください。

  6. 「パーサー・オプション」タブの「解析のタイミング」は、デフォルトでは「要求時」に設定されます。 この値では、部分構文解析によって構文解析されるまで、妥当性検査が遅延します。 この値を「即時」に変更すると、 部分構文解析はオーバーライドされて、メッセージ内のすべてのものが構文解析および妥当性検査されます。 ただし、構成が「選択」または「メッセージ」に指定された複合タイプで、この時点で解決できないものは除きます。 この値を「完全」に変更すると、 部分構文解析はオーバーライドされて、メッセージ内のすべてのものが構文解析および妥当性検査されます。 構成が「選択」または「メッセージ」に指定された複合タイプで、この時点で解決できないものでは妥当性検査障害が生じます。
  7. エラー処理」タブで、Web サービスからエラー・メッセージが戻された場合の処理方法を決定するプロパティーに値を設定します。
    1. Web サービス・エラー・メッセージ全体を出力メッセージとして伝搬する場合は、「入力をエラーで置換」を選択したままにします (デフォルト設定)。

      入力メッセージの内容の一部を使用して、Web サービス・エラー・メッセージを出力メッセージに組み込む場合、「入力をエラーで置換」のチェックを外して、「エラー・メッセージの位置」プロパティーを設定します。 このプロパティーをクリアした場合、ノードは入力メッセージを出力メッセージにコピーし、指定された位置で、Web サービス・エラー・メッセージを出力メッセージに上書きします (入力メッセージ自体は変更されません)。

    2. エラー・メッセージの位置」フィールドに、出力メッセージ・ツリー内で Web サービス・エラー・メッセージのビット・ストリームから構文解析されたエレメントが保管される開始位置を入力します。このプロパティーは、「入力をエラーで置換」をクリアした場合にのみ必要となります。

      リファレンス内の式、および新規フィールド・リファレンス (応答用にメッセージ・ツリー内に新規ノードを作成するため) を含む、任意の有効な ESQL フィールド・リファレンスを入力できます。 例えば、以下のように入力します。

      OutputRoot.XMLNSC.ABC.DEF
      または
      Environment.WSError

      入力をエラーで置換」を選択した場合、このプロパティーは無視されます。

  8. 拡張」タブで、以下のようにして、Web サービス要求および応答の構造と内容を説明する「拡張」プロパティーの値を設定します。
    1. Web サービスに送信される要求メッセージの内容を指定します。
      • 要求メッセージを入力メッセージ本体全体とする場合には、「入力メッセージ全体を要求として使用」を選択したままにします (デフォルト設定)。

        要求メッセージに入力メッセージのサブセットを入れる場合は、「入力メッセージ全体を要求として使用」のチェックを外して「ツリー内の要求メッセージ位置」プロパティーを設定します。

      • ツリー内の要求メッセージ位置」に、入力メッセージ・ツリーの内容が要求メッセージにコピーされる開始位置を入力します。 このプロパティーは、「入力メッセージ全体を要求として使用」をクリアした場合にのみ必要となります。 ノードは新規要求メッセージを作成し、入力メッセージの指定した部分をコピーします。(入力メッセージ自体は変更されません。)

        リファレンス内の式を含む、任意の有効な ESQL フィールド・リファレンスを入力することができます。 例えば、以下のように入力します。

        InputRoot.XMLNSC.ABC

        「入力メッセージ全体を要求として使用」を選択した場合、このプロパティーは無視されます。

      適切なメッセージ・ツリーの内容を構文解析してビット・ストリームを作成するとき、入力メッセージの本体に関連付けられ、「プロパティー」フォルダーに保管されているメッセージ・プロパティー (メッセージ・ドメインメッセージ・セットメッセージ・タイプ、およびメッセージ形式) が使用されます。

    2. メッセージ・フローで次のノードに伝搬される出力メッセージの内容を指定します。
      • Web サービス応答メッセージ全体を出力メッセージとして伝搬する場合には、「入力メッセージを Web サービス応答と置換」を選択したままにします (デフォルト設定)。

        入力メッセージの内容の一部と一緒に、Web サービス応答メッセージを出力メッセージに組み込む場合、「入力メッセージを Web サービス応答と置換」のチェックを外して、「ツリー内の応答メッセージ・ロケーション」プロパティーを設定します。 このプロパティーをクリアした場合、ノードは入力メッセージを出力メッセージにコピーし、指定された位置で、Web サービス応答メッセージを出力メッセージに上書きします (入力メッセージ自体は変更されません)。

      • ツリー内の応答メッセージ位置」フィールドに、出力メッセージ・ツリー内で Web サービス応答メッセージのビット・ストリームから構文解析されたエレメントが保管される開始位置を入力します。このプロパティーは、「入力メッセージを Web サービス応答と置換」をクリアした場合にのみ必要となります。

        リファレンス内の式、および新規フィールド・リファレンス (応答用にメッセージ・ツリー内に新規ノードを作成するため) を含む、任意の有効な ESQL フィールド・リファレンスを入力できます。 例えば、以下のように入力します。

        OutputRoot.XMLNSC.ABC.DEF
        または
        Environment.WSReply

        入力メッセージを Web サービス応答と置換」を選択した場合、このプロパティーは無視されます。

      応答ビット・ストリームを構文解析してメッセージ・ツリーの内容を作成すると、ノードの応答メッセージの構文解析プロパティーに指定したメッセージ・プロパティー (メッセージ・ドメインメッセージ・セットメッセージ・タイプ、およびメッセージ形式) が使用されます。

    3. ノードが要求メッセージに対して HTTPRequestHeader を生成するように設定する場合は、「入力からデフォルト HTTP ヘッダーを生成」を選択したままにします (デフォルト設定)。

      ノードが要求メッセージに対して HTTPRequestHeader を生成しないようにする場合は、「入力からデフォルト HTTP ヘッダーを生成」のチェック・マークを外します。 要求メッセージに組み込む HTTPRequestHeader の内容を制御するには、入力メッセージに HTTPRequestHeader を追加するための Compute ノードを、メッセージ・フローの中のこの HTTPRequest ノードの前の位置に組み込み、このチェック・ボックスのチェック・マークを外してください。

      • 「デフォルト HTTP ヘッダーの入力からの生成」を選択し、入力メッセージに HTTPRequestHeader を組み込んだ場合、HTTPRequest ノードは入力 HTTPRequestHeader から Web サービス・ヘッダーを抽出し、任意の固有 Web サービス・ヘッダーを追加します。 入力メッセージに Host (下記の表を参照) がある場合には、HTTPInputHeader に表示されている Host は除きます。 (入力メッセージを HTTPInput ノードによる Web サービスから受信した場合、HTTPInputHeader が存在する可能性があります。)

        HTTPRequestHeader または HTTPInputHeader に Web サービス・ヘッダーがない場合には、HTTPRequest ノードは、デフォルト値を使用して、次の表に示されている Web サービス・ヘッダーも追加します。

        ヘッダー デフォルト値
        SOAPAction "" (空ストリング)
        Content-Type text/xml; charset=utf-8
        Host 要求の送信先のホスト名

        HTTPRequestHeader または HTTPInputHeader にオプションのヘッダー Content-Length の値がない場合でも、HTTPRequest ノードは、正しい計算値を使用して、このヘッダーも追加します。

      • 入力からデフォルト HTTP ヘッダーを生成」を選択し、入力メッセージに HTTPRequestHeader が入っていない場合、HTTPRequest ノードは HTTPInputHeader から Host を除く (入力メッセージに表示されている場合) Web サービス・ヘッダーを抽出します。 必要な Web サービス・ヘッダーの値が HTTPInputHeader にない場合は、HTTPRequest ノードは、デフォルト値を使用してヘッダーを追加します。
      • 入力からデフォルト HTTP ヘッダーを生成」をクリアし、入力メッセージが HTTPRequestHeader を組み込む場合、ノードは入力 HTTPRequestHeader にあるすべての Web サービス・ヘッダーを抽出します。 ノードは、入力メッセージに HTTPInputHeader があるかどうかをチェックせず、必要な Web サービス・ヘッダーが入力 HTTPRequestHeader によって提供されない場合も、これを追加することはありません。
      • 入力からデフォルト HTTP ヘッダーを生成」をクリアし、入力メッセージが HTTPRequestHeader を組み込まない場合、Web サービス・ヘッダーは生成されません。 HTTPRequest ノードは入力メッセージ内に HTTPInputHeader があるかどうかチェックせず、必要な Web サービス・ヘッダーはどれも追加されません。 要求メッセージは HTTPRequestHeader を使用せずに、Web サービスに伝搬されます。 一般的に、このアクションは、Web サービスがメッセージの内容を処理するよう構成されていない場合に、Web サービスが生成するエラーを引き起こします。
  9. メッセージ・セットに照らして応答メッセージの本体をパーサーで妥当性検査するには、「妥当性検査」タブで妥当性検査プロパティーを設定します。 (メッセージがノードの Failure ターミナルに伝搬される場合には、妥当性検査は行われません。) これらのプロパティーによって、入力メッセージの妥当性検査は行われません。 そのような妥当性検査が必要な場合には、入力ノードまたは先行する validation ノードによって妥当性検査がすでに行われていることが期待されます。

    詳細については、メッセージの妥当性検査および妥当性検査プロパティーを参照してください。

出力ターミナルを別のノードに接続する

メッセージをさらに処理したり、エラーを処理したり、あるいはメッセージを追加の宛先に送信するには、このノードの Out ターミナル、Error ターミナル、または Failure ターミナルをこのメッセージ・フローの別のノードに接続します。 Error ターミナルを接続していない場合、メッセージは廃棄されます。 Failure ターミナルに接続していない場合、ブローカーはデフォルトのエラー処理を行います。詳細は、メッセージ・フローのエラー処理を参照してください。

ターミナルおよびプロパティー

HTTPRequest ノードのターミナルについては、次の表に説明されています。

ターミナル 説明
In ノードが処理するメッセージを受け入れる入力ターミナル。
Failure ノード内の処理で障害が検出された場合に、メッセージがルーティングされる出力ターミナル。
Out Web サービス要求が正常終了したことが示され、なおかつこのメッセージ・フロー内でさらに処理が必要な場合にメッセージがルーティングされる出力ターミナル。
Error プロパティー「HTTP(S) 転送を使用」を設定していない場合に、200 から 299 の範囲にない HTTP 状況コード (転送コード (3xx) を含む) を含んだメッセージの送信先となる出力ターミナル。

以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、パネル上にアスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローをブローカー・アーカイブ・ファイルに追加してデプロイするとき、値を変更できます)。

HTTPRequest ノードの「説明」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
ノード名 いいえ いいえ ノード・タイプ、HTTPRequest ノードの名前。
簡略説明 いいえ いいえ   ノードの簡単な説明
詳細説明 いいえ いいえ   メッセージ・フロー内のノードの目的を説明するテキスト

HTTPRequest ノードの「基本」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
Web サービス URL はい はい   Web サービスの URL。 次の形式で提供する必要があります。http://<hostname>[:<port>]/[<path>] ここでは、
  • http://<hostname> が指定される必要があります。
  • <port> のデフォルトは 80 です。 値を指定する場合、ポート番号の前の : を組み込む必要があります。
  • <path> のデフォルトは / です。値を指定する場合には、パスの前の / を組み込む必要があります。
要求タイムアウト (秒) はい いいえ 120 ノードが、Web サービスからの応答を待機する時間 (秒単位)。 有効な範囲は、1 から (231)-1 です。 無期限に待機することを示す値を入力することはできません。

HTTPRequest ノードの「HTTP 設定」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
HTTP(S) プロキシーの位置 いいえ はい   要求の送信先のプロキシー・サーバーの位置。 この値は、hostname:port という形式でなければなりません。
HTTP(S) 転送を使用 いいえ いいえ 選択されていない チェック・ボックスを選択すると、転送に従います。 このチェック・ボックスのチェックを外すと、転送は行われません。
HTTP バージョン いいえ はい 1.0 要求に使用する HTTP バージョン。 有効な値は、1.0 および 1.1 です。
HTTP/1.1 キープアライブを使用可能にする いいえ はい 選択済み (HTTP バージョン1.1 の場合) HTTP/1.1 キープアライブを使用する
HTTP メソッド 変更の始まりいいえ変更の終わり 変更の始まりいいえ変更の終わり 変更の始まりPOST変更の終わり 変更の始まりHTTP メソッド。有効値は、POSTGETPUTDELETEHEAD です。デフォルトでは、HTTPRequest ノードはリモート Web サーバーへの接続時に HTTP POST メソッドを使用します。 HEAD はサービスが使用可能かどうかを判別するために使用されます。例えば、使用可能なサーバーを検出するためにネットワーク・ディスパッチャーが使用することがあります。そして、(content-length を含め) 正しいヘッダーを本体データなしで戻します。変更の終わり

HTTPRequest ノードの「SSL」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
プロトコル いいえ はい SSL HTTPS 要求の作成時に使用する SSL プロトコル。
許可される SSL 暗号 いいえ はい   SSL 要求の作成時に使用する、コンマで区切られた暗号のリスト。 空ストリングのデフォルト値は、使用可能なすべての暗号の使用を意味します。

HTTPRequest ノードの「応答メッセージの構文解析」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
メッセージ・ドメイン いいえ いいえ   Web サービスから受信した応答メッセージの構文解析に使用されるドメイン。
メッセージ・セット いいえ いいえ   応答メッセージが定義されているメッセージ・セットの名前または ID。
メッセージ・タイプ いいえ いいえ   応答メッセージの名前。
メッセージ形式 いいえ いいえ   応答メッセージの物理フォーマットの名前。

HTTPRequest ノードの「パーサー・オプション」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
構文解析のタイミング いいえ いいえ 要求時 このプロパティーは、いつ応答メッセージを解析するかを制御します。 有効な値は、「要求時」「即時」、および「完全」です。

このプロパティーに関する詳しい説明については、要求時の構文解析を参照してください。

XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 いいえ いいえ 選択されていない このプロパティーは、XMLNS ドメイン内のメッセージに XMLNSC コンパクト・パーサーを使用するかどうかを制御します。 このプロパティーを設定した場合に、入力 MQRFH2 ヘッダーまたは「応答メッセージの構文解析」プロパティー・ドメインが XMLNS であると、出力ターミナルに接続されているノードの XMLNSC の下に応答メッセージ・データが表示されます。
混合内容の保存 いいえ いいえ 選択されていない このプロパティーは、XMLNSC パーサーが応答メッセージ内で混合テキストを検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、混合テキスト用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、混合テキストは無視されて、エレメントは作成されません。
コメントの保存 いいえ いいえ 選択されていない このプロパティーは、XMLNSC パーサーが応答メッセージ内でコメントを検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、コメント用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、コメントは無視されて、エレメントは作成されません。
処理命令の保存 いいえ いいえ 選択されていない このプロパティーは、XMLNSC パーサーが応答メッセージ内で処理命令を検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、処理命令用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、処理命令は無視されて、エレメントは作成されません。

HTTPRequest ノードの「エラー処理」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
入力をエラーで置換 いいえ いいえ 選択されている このチェック・ボックスを選択すると、入力メッセージの内容はエラー・メッセージの内容で置換されます。 このチェック・ボックスのチェックを外す場合は、「エラー・メッセージの位置」を指定する必要があります。
エラー・メッセージの位置 はい いいえ OutputRoot Web サービス・エラーのビット・ストリームから構文解析されたエレメントが保管される開始位置。 このプロパティーは ESQL フィールド・レファレンスの形式を取ります。

HTTPRequest ノードの「拡張」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
入力メッセージ全体を要求として使用 いいえ いいえ 選択されている このチェック・ボックスを選択すると、入力メッセージ本体全体が Web サービスに渡されます。 このチェック・ボックスのチェックを外す場合は、「ツリー内の要求メッセージ位置」を選択する必要があります。
ツリー内の要求メッセージ位置 はい いいえ InputRoot Web サービスに送信するためにビット・ストリームが作成される開始位置。このプロパティーは ESQL フィールド・レファレンスの形式を取ります。
入力メッセージを Web サービス応答と置換 いいえ いいえ 選択されている このチェック・ボックスを選択すると、Web サービス応答メッセージが、作成される出力メッセージの内容として入力メッセージのコピーと置換されます。 このチェック・ボックスのチェックを外す場合は、「ツリー内の応答メッセージ位置」を選択する必要があります。
ツリー内の応答メッセージ位置 はい いいえ OutputRoot Web サービス応答のビット・ストリームから構文解析されたエレメントが保管される開始位置。このプロパティーは ESQL フィールド・レファレンスの形式を取ります。
入力からデフォルト HTTP ヘッダーを生成 いいえ いいえ 選択されている このチェック・ボックスを選択すると、HTTPRequestHeader が生成されます。 このチェック・ボックスのチェックを外す場合には、有効な HTTPRequestHeader が入力メッセージ内に存在している必要があります。

HTTPRequest ノードの「妥当性検査」プロパティーについては、次の表に説明されています。

これらのプロパティーの詳細については、妥当性検査プロパティーを参照してください。

プロパティー M C デフォルト 説明
妥当性検査 いいえ はい なし このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は、「なし」「内容と値」「内容」、 および「継承」です。
失敗時の処置 いいえ いいえ 例外 このプロパティーは、妥当性検査が失敗した場合の動作を制御します。 「妥当性検査」「内容」または「内容と値」に設定した場合にのみ、このプロパティーを設定できます。有効な値は、「ユーザー・トレース」「ローカル・エラー・ログ」「例外」、および「例外リスト」です。
すべての値制約を含める いいえ いいえ 選択されている このプロパティーは編集できません。 チェック・ボックスが選択されていることにより示されるデフォルトのアクションは、基本値制約検査が「内容と値」妥当性検査に含まれるということです。
固定 いいえ いいえ なし このプロパティーは編集できません。
変更の始まり

LocalEnvironment の指定変更

メッセージの他のエレメントに値を設定する方法と同じ方法で、LocalEnvironment の設定値を動的に指定変更できます。 以下の値は LocalEnvironment.Destination.HTTP の下に設定可能です。
設定 説明
RequestURL ノードの「Web サービス URL」プロパティーを指定変更します。以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.RequestURL = 'http://ibm.com/abc/';
Timeout ノードの「要求タイムアウト (秒)」プロパティーを指定変更します。以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.Timeout = 42;
ProxyURL ノードの「HTTP(S) プロキシーの位置」プロパティーを指定変更します。以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.ProxyURL = 'my.proxy';
RequestLine.RequestURI URL とポートの後のパスである「RequestURI」を指定変更します。以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.RequestURI = 
'/abc/def?x=y&g=h';
RequestLine.HTTPVersion ノードの「HTTP バージョン」プロパティーを指定変更します。以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.HTTPVersion = 
'HTTP/1.1';
KeepAlive ノードの「HTTP/1.1 キープアライブを使用可能に設定」プロパティーを指定変更します。以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.KeepAlive = TRUE;
RequestLine.Method ノードの「HTTP メソッド」プロパティーを指定変更します。以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.Method = 'GET';
SSLProtocol SSLProtocol」を指定変更します。 以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.SSLProtocol = 'TLS';

有効値は、SSL、SSLv3、および TLS です。

SSLCiphers ノードの「許可された SSL 暗号」プロパティーを指定変更します。以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.SSLCiphers = 
'SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA';
ProxyConnectHeaders 変更の始まりアウトバウンド要求がプロキシーを介した SSL 接続である場合に使用される、追加のヘッダーを指定します。 これらの追加ヘッダーは、最初の CONNECT 要求と共にプロキシーに送信されます。 例えば、SSL を使用している場合、プロキシー・サーバーにプロキシー認証情報を送信できます。 複数のヘッダーを送信できますが、各ヘッダーは RFC2616 に基づいて復帰と改行 (ASCII 0x0D 0x0A) で区切る必要があります。 例えば、次のようになります。
DECLARE CRLF CHAR CAST(X'0D0A' AS CHAR CCSID 1208);
SET OutputLocalEnvironment.Destination.HTTP.ProxyConnectHeaders =
'Proxy-Authorization: Basic Zm5lcmJsZTpwYXNzd29yZA==' || CRLF || 
'Proxy-Connection: Keep-Alive' || CRLF;
この設定は、要求がプロキシー・サーバーを介した SSL 要求である場合にのみ使用されます。 非 SSL 要求に対するプロキシー認証情報を送信するには、以下の例に示されているように、HTTPRequestHeader フォルダー内の個々のヘッダーを指定します。
SET OutputRoot.HTTPRequestHeader."Proxy-Authorization" = 'Basic Zm5lcmJsZTpwYXNzd29yZA==';
SET OutputRoot.HTTPRequestHeader."Proxy-Connection" = 'Keep-Alive';
変更の終わり
UseFolderMode UseFolderMode を設定します。ビット・ストリーム生成に使用します。特定のパーサーでは、これにより出力ビット・ストリームが変更されます。以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.UseFolderMode = TRUE;

WrittenDestination データの処理

要求が行われると、LocalEnvironment の WrittenDestination フォルダーはその要求の送信先の URI で更新されます。 HTTPRequest ノードの WrittenDestination の形式は次のとおりです。
WrittenDestination = (
   HTTP  = (
      RequestURL = 'http://server:port/folder/page'
   )
)
変更の終わり
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:42:42

ac04595_