WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

HTTPRequest ノード

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

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

目的

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

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

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

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

  • DFDL
  • XMLNSC
  • JSON
  • BLOB
  • MIME
  • MRM
  • XMLNS

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

HTTPRequest ノード・アイコン

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

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

URL は、http://<address>[:<port>]/<function> の形式です。例えば、http://localhost:7080/request などです。 この URL は、メッセージ自体のフィールドとして、またはローカル環境のフィールドとして、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 応答コードを参照してください。

タイムアウト・インターバルを指定して、要求が指定した期間よりも長い時間を要した場合、要求を Failure ターミナルに伝搬して、適切なメッセージを表示させることができます。 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 です。
    5. 「圧縮の使用」プロパティーのいずれかのオプションを選択して、HTTP 要求の内容の圧縮を指定します。 gzipzlib (deflate)deflate または none を選択できます。 値 zlib (deflate) は RFC 1950 と RFC 1951 の組み合わせを表し、deflate は RFC 1951 のみを表します。 デフォルト値は none で、要求の内容は圧縮されません。
  4. HTTP over SSL (HTTPS) 要求を使用する場合、「SSL」タブで、次のようにして HTTPS 要求の値を設定します。
    1. 要求を出すのに使用する「プロトコル」プロパティーを指定します。 SSL 接続の両端は、使用するプロトコルに関して合意している必要があります。 それゆえ、選択されたプロトコルはリモート・サーバーが受け入れ可能なものでなければなりません。 使用可能なオプションは次のとおりです。
      • SSL。 このオプションはデフォルトです。 このオプションはまず SSLv3 プロトコルを使用した接続を試行しますが、ハンドシェークは SSLv2 プロトコルまでのフォールバックが使用可能であり、その場合には基礎の JSSE プロバイダーによって SSLv2 プロトコルがサポートされます。
      • SSLv3。 このオプションは SSLv3 プロトコルを使用した接続のみを試行します。 SSLv2 へのフォールバックはできません。
      • TLS。 このオプションは TLS プロトコルを使用した接続のみを試行します。 SSLv3 または SSLv2 へのフォールバックはできません。
    2. 許可された SSL 暗号」プロパティーを設定します。 この設定を使用して、単一の暗号 (SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA など) の指定や、暗号のリスト (接続ではその 1 つのみが使用される) の指定します。 この暗号のセットには、リモート・サーバーにより受け入れられる 1 つ以上の暗号が含まれていなければなりません。 暗号間の分離文字には、コンマが使用されます。 デフォルト値は、空ストリングです。この場合、ノードは任意またはすべての使用可能な暗号を SSL 接続ハンドシェーク時に使用できます。 この方式の場合に、正常に SSL 接続を作成するための有効範囲が最大限になります。
    3. SSLKeyAlias プロパティーを使用して、HTTP 接続のクライアント・サイドの SSL 認証別名を指定します。サーバーで、このクライアント・サイド鍵のアクセス制御リストが検査されます。SSL 接続に使用されるブローカーまたは実行グループの鍵ストア内の鍵を識別する鍵の別名。 鍵ストアに複数の鍵が含まれる場合は、このオプションのプロパティーを設定します。 デフォルト値は「""」(または「none」) で、これは SSL 鍵の別名が使用されないことを示します。 その他のすべてのストリング値は、別名を示します。
  5. 「応答メッセージの構文解析」タブで、Web サービスによって戻される応答メッセージの構文解析方法を決定するのにノードが使用するメッセージ・ドメイン、メッセージ・セット、メッセージ・タイプおよびメッセージ形式を記述するプロパティーの値を設定します。 Web サービスによってエラー・メッセージが戻される場合、これらのプロパティーの値は無視され、メッセージは BLOB パーサーによって構文解析されます。
    1. 「メッセージ・ドメイン」では、リストから使用するパーサーの名前を選択します。 フィールドがブランクの場合、デフォルト値は BLOB になります。 以下のオプションの中から選択します。
      • DFDL
      • XMLNSC
      • JSON
      • BLOB
      • MIME
      • MRM
      • XMLNS

      状況により、ユーザー定義のパーサーを指定することもできます。

    2. 検証モードで DFDL パーサー、MRM パーサー、または XMLNSC パーサーを使用している場合、リストから関連した「メッセージ・モデル」を選択します。 メッセージ・ドメインとして MRM または XMLNSC を選択すると、使用可能なメッセージ・セットがこのリストに取り込まれます。 メッセージ・ドメインとして DFDL を選択すると、使用可能な DFDL スキーマ・ファイルが取り込まれます。
    3. DFDL パーサーまたは MRM パーサーを使用する場合は、「メッセージ」のリストから、適切なメッセージ・タイプを選択します。 このリストには、選択したメッセージ・モデルで定義されたメッセージが取り込まれます。
    4. MRM パーサーを使用する場合は、「物理形式」のリストから、メッセージの形式を選択します。 このリストには、このメッセージ・モデル用に定義されたすべての物理形式が掲載されます。
  6. 「パーサー・オプション」サブタブで以下のようにします。
    1. 「解析のタイミング」は、デフォルトによって、「要求時」に設定されます。これにより、メッセージの構文解析が遅延されます。 メッセージが即時に解析されるようにするには、要求時の構文解析を参照してください。
    2. XMLNSC パーサーを使用する場合、XMLNSC パーサーの稼働方法を指定するプロパティーの値を設定します。 詳しくは、XMLNSC ドメインでのメッセージの操作を参照してください。
  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=ccsid of the message body

        ただし、入力メッセージが JSON ドメインにある場合、デフォルトは次のとおりです。

        application/json; charset=ccsid of the message body

        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 サービスが生成するエラーを引き起こします。
      「圧縮の使用」または「デフォルトで圧縮した応答を受け入れる」オプションを選択した場合、「入力からデフォルト HTTP ヘッダーを生成」を選択したかどうかに関係なく、以下のように「Content-Encoding」および「Accept-Encoding」HTTP ヘッダー・フィールドが取り込まれます。
      • 「圧縮の使用」の値がデフォルトの「None」でない場合、「Content-Encoding」HTTP ヘッダーにはこの値が取りこまれ、ビット・ストリームが圧縮されます。 「Content-Encoding」ヘッダーが既存の HTTP ヘッダー内に既に存在している場合、このフィールドは「圧縮の使用」プロパティーの値で更新されます。 既存の「Content-Encoding」ヘッダーが指定された圧縮機能で既に開始している場合、それ以上圧縮は行われません。 「Content-Encoding」ヘッダーが deflate で開始している場合、ZLIB (deflate) または deflate が選択されているかどうかに関係なく、圧縮は行われません。
      • 「圧縮した応答を受け入れる」を選択した場合は、「Accept-Encoding」フィールドにデータが取り込まれます。 このフィールドが既存の HTTP ヘッダー内に既に存在している場合は、既存の値がノードのプロパティーを指定変更します。 ただし、圧縮した応答が受信された場合、この応答は圧縮解除されません。
    4. 要求が圧縮した応答を受け入れるかどうかを示すには、「デフォルトで圧縮した応答を受け入れる」プロパティーを選択します。 このオプションを選択すると、要求で、Content-Encoding が gzip または deflate になっている応答を受け取ることが可能になります。 そのような応答を受け取ると、内容はデコードされ、Content-Encoding ヘッダーは削除されます。 要求ヘッダーに Accept-Encoding ヘッダーが含まれていない場合に、このオプションを選択すると、Accept-Encoding ヘッダーが「gzip, deflate」に設定されます。
  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 デフォルト 説明 mqsiapplybaroverride コマンド・プロパティー
Web サービス URL はい はい   Web サービスの URL。 次の形式で提供する必要があります。http://hostname[:port]/[path] ここでは、
  • http://hostname が指定される必要があります。
  • port のデフォルトは 80 です。 値を指定する場合、ポート番号の前の : を組み込む必要があります。
  • path のデフォルトは / です。 値を指定する場合には、パスの前の / を組み込む必要があります。
URLSpecifier
要求タイムアウト (秒) はい はい 120 ノードが、Web サービスからの応答を待機する時間 (秒単位)。 有効な範囲は、1 から (231)-1 です。 無期限に待機することを示す値を入力することはできません。 タイムアウトになるまでに、指定値より 1 秒長い時間がかかる場合もあります。 timeoutForServer

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

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

zlib (deflate) は、RFC 1950 と RFC 1951 の組み合わせを表します。

deflate は RFC 1951 のみを表します。

requestCompressionType

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

プロパティー M C デフォルト 説明 mqsiapplybaroverride コマンド・プロパティー
プロトコル いいえ はい SSL HTTPS 要求の作成時に使用する SSL プロトコル。 protocol
許可される SSL 暗号 いいえ はい   SSL 要求の作成時に使用する、コンマで区切られた暗号のリスト。 デフォルト値の空ストリングが設定されると、使用可能なすべての暗号が使用されます。 allowedCiphers
SSL 証明書ホスト名検査を使用可能にする いいえ はい いいえ このプロパティーは、要求を受け取っているサーバーのホスト名が、SSL 証明書のホスト名と一致する必要があるかどうかを指定します。 hostnameChecking
SSL クライアント認証鍵別名 いいえ はい "" (空ストリング) このプロパティーでは、HTTP 接続のクライアント・サイドの SSL 認証別名を指定します。デフォルト値が設定されると、最初の適切な鍵が自動的に選択されます。 keyAlias

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

プロパティー M C デフォルト 説明
メッセージ・ドメイン いいえ いいえ BLOB メッセージの構文解析に使用されるドメイン。 フィールドがブランクの場合、デフォルトは BLOB になります。
メッセージ・モデル いいえ いいえ 選択されていない メッセージが定義されているメッセージ・モデル・スキーマ・ファイルの名前またはロケーション。 このリストには、選択したメッセージ・ドメインに使用可能なすべてのメッセージ・モデル・スキーマ・ファイルが取り込まれます。
メッセージ いいえ いいえ 選択されていない メッセージ・モデル・スキーマ・ファイル内のメッセージ・ルートの名前またはロケーション。 このリストには、選択したメッセージ・モデルで定義された、利用可能なすべてのメッセージが取り込まれます。
物理形式 いいえ いいえ 選択されていない メッセージの物理フォーマットの名前。 MRM または IDOC パーサーを使用する場合は、リストから着信メッセージの物理形式を選択します。 このリストには、選択されたメッセージ・モデル用に定義したすべての物理形式が含まれます。 「メッセージ・ドメイン」プロパティーを DataObject に設定した場合、このプロパティーを XML または SAP ALE IDoc に設定できます。 外部ソースからのビット・ストリームを構文解析してメッセージ・ツリーを生成する必要がある場合には、このプロパティーを SAP ALE IDoc に設定してください。

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

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

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

XML スキーマ・データ・タイプを使用してツリーを構築する いいえ いいえ 選択されていない このプロパティーは、XML スキーマから取得されたデータ・タイプを使って、XMLNSC パーサーがメッセージ・ツリー内に構文エレメントを作成するかどうかを制御します。 「妥当性検査」タブ上の「妥当性検査」プロパティーを「内容」 または 「内容と値」 に設定した場合にのみ、このプロパティーを選択できます。
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 いいえ いいえ 選択されていない このプロパティーは、XMLNS ドメイン内のメッセージに XMLNSC コンパクト・パーサーを使用するかどうかを制御します。 このプロパティーを設定すると、入力 MQRFH2 ヘッダーまたは「応答メッセージの構文解析」プロパティー・ドメインが XMLNS である場合に、出力ターミナルに接続されているノードの XMLNSC の下に応答メッセージ・データが表示されます。
混合内容の保存 いいえ いいえ 選択されていない このプロパティーは、XMLNSC パーサーが応答メッセージ内で混合テキストを検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、混合テキスト用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、混合テキストは無視されて、エレメントは作成されません。
コメントの保存 いいえ いいえ 選択されていない このプロパティーは、XMLNSC パーサーが応答メッセージ内でコメントを検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、コメント用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、コメントは無視されて、エレメントは作成されません。
処理命令の保存 いいえ いいえ 選択されていない このプロパティーは、XMLNSC パーサーが応答メッセージ内で処理命令を検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、処理命令用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、処理命令は無視されて、エレメントは作成されません。
不透明エレメント いいえ いいえ ブランク XMLNSC パーサーによって不透明解析される応答メッセージ内のエレメントのリストを指定するときに、このプロパティーを使用します。 不透明解析が実行されるのは、妥当性検査が使用不可に設定されている場合のみ (つまり、「妥当性検査」プロパティーが「なし」の場合) です。妥当性検査が使用可能な場合、「不透明エレメント」で指定される項目は無視されます。

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

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

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

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

Request ノードに伝搬されたメッセージに「Accept-Encoding」ヘッダーが含まれている場合、メッセージ・フローまたはクライアント・アプリケーションによって、圧縮された応答がすべて処理されます。 したがって、そのような場合にこのオプションを選択しても、効果はありません。

acceptCompressedResponses

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

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

プロパティー M C デフォルト 説明 mqsiapplybaroverride コマンド・プロパティー
妥当性検査 いいえ はい なし このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は、「なし」「内容と値」「内容」、および「継承」です。 validateMaster
失敗時の処置 いいえ いいえ 例外 このプロパティーは、妥当性検査が失敗した場合の動作を制御します。 「妥当性検査」「内容」または「内容と値」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」「ローカル・エラー・ログ」「例外」、および「例外リスト」です。  
ノードのモニター・プロパティーが、次の表に説明されています。
プロパティー M C デフォルト 説明
イベント いいえ いいえ なし ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。

「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。

ローカル環境の指定変更

メッセージの他のエレメントに値を設定する方法と同じ方法で、ローカル環境の設定値を動的に指定変更できます。 以下の値は LocalEnvironment.Destination.HTTP の下に設定可能です。
設定 説明
RequestURL ノードの「Web サービス URL」プロパティーを指定変更します。 以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.RequestURL = 'http://ibm.com/abc/';
Timeout ノードの「要求タイムアウト (秒)」プロパティーを指定変更します。 以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.Timeout = 42;
TimeoutMillis ノードの「要求タイムアウト (秒)」プロパティーを指定変更します。 以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.TimeoutMillis = 5000;
このプロパティーは、ミリ秒でタイムアウトを定義します。 TimeoutMillis と Timeout の値をどちらも設定すると、TimeoutMillis の値が優先されます。
ProxyURL ノードの「HTTP(S) プロキシーの位置」プロパティーを指定変更します。 以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.ProxyURL = 'my.proxy';
RequestLine.RequestURI URL とポートの後のパスである「RequestURI」を指定変更します。 以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.RequestURI = '/abc/def';
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;
QueryString アウトバウンド照会ストリング・パラメーターの設定を可能にします。 各パラメーターを個別に設定する必要があります。 以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.QueryString.param1 = 'my"Value"1';
SET OutputLocalEnvironment.Destination.HTTP.QueryString.param2 = 'my"Value"2';
上記の ESQL は、(http://tools.ietf.org/html/rfc3986 に従って) エンコードされ、アウトバウンド要求と共に送信され、以下の照会ストリングとなります。
?param1=my%22Value%221&param2= my%22Value%222
宛先 URL が 1 つ以上の照会パラメーターをすでに持っている場合、ここで指定された追加パラメーターは既存のリストに付加されます。
QueryStringCCSID エンコードの前に照会ストリング・パラメーターをデフォルト (UTF-8) 以外の文字セットに変換する必要があることを指定します。 すべての照会ストリング・パラメーターは最初に、RFC3986 に従って、結果のストリングがエンコードされる前に、指定された CCSID に変換されます。 以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.QueryStringCCSID = 943;
上記の ESQL により、すべての QueryString パラメーターは、エンコードされる前に 943 コード・ページに変換されます。 注: すべての照会ストリング・パラメーターは、Unicode 形式のデータを含む必要があります。
圧縮 ノードの「圧縮の使用」プロパティーを指定変更します。 以下に例を示します。
SET OutputLocalEnvironment.Destination.HTTP.Compression =
 'gzip';
圧縮が適用される最小サイズ (バイト数) を設定するには、次のオーバーライドを使用します。
SET OutputLocalEnvironment.Destination.HTTP.MinimumCompressionSize = 1048576;

WrittenDestination データの処理

要求が行われると、ローカル環境の WrittenDestination フォルダーは、その要求の送信先の URI および圧縮の詳細情報 (使用している場合) で更新されます。 HTTPRequest ノードの WrittenDestination の形式は、以下のとおりです。Compression は、使用している場合に限ります。
WrittenDestination = (
   HTTP  = (
      RequestURL = 'http://127.0.0.1:7800/HTTPFLOW' (CHARACTER)
      Compression = (
        OriginalSize = 53 (INTEGER)
        CompressedSize = 71 (INTEGER)
      )
   )
)
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:45:25


参照トピック参照トピック | バージョン 8.0.0.5 | ac04595_