このトピックには、以下のセクションが含まれています。
入力メッセージのすべてまたは一部を Web サービスに送信された要求として使用して、その Web サービスと対話するには、HTTPRequest ノードを使用します。 メッセージをメッセージ・フロー内の後続のノードに伝搬する前に、Web サービス応答の内容を追加した入力メッセージの内容を使用して新規出力メッセージを作成するよう、ノードを構成することもできます。
構成に応じて、このノードは、入力メッセージの特定の内容から HTTP または HTTP over SSL (HTTPS) 要求を構成し、それを Web サービスに送信します。 また、Web サービスから応答を受信し、出力ツリーで組み込むために応答の内容を構文解析します。 構成で必要な場合には、HTTP ヘッダーを生成します。
このノードは、HTTPInput ノードまたは HTTPReply ノードを含まないメッセージ・フローで使用できます。
HTTPRequest ノードは、次のメッセージ・ドメインのメッセージを処理します。
ワークベンチでは、HTTPRequest ノードは次のアイコンで表されます。
HTTPRequest ノードは、HTTP 要求を送信する必要のあるどのメッセージ・フローにおいても使用できます。 この最も一般的な例は、Web サービスを起動するメッセージ・フローです。Web サービス・アプリケーションについて詳しくは、Web サービス・アプリケーションを参照してください。
このノードは TCP/IP を使用して外部サービスと直接対話するので、次のタイプのエラーが発生する可能性があります。
ノードがこれらのエラーを検出する場合、例外が生成され、受信したエラー情報が例外リストに取り込まれ、入力メッセージは未変更のまま、failure ターミナルにルーティングされます。
ノードは応答がどのような形式になるかを判別できないため、応答は BLOB として出力されます。 転送を処理するようにこのノードを構成していない場合、転送状況コード (3xx) 付きのメッセージも同様に処理されます。
HTTPRequest ノードは、100 番台の状況コードを続きの応答として扱い、現在の応答を破棄して、Web サーバーからの別の応答を待機します。
200 番台の状況コードは成功として扱われ、応答はノードの out ターミナルにルーティングされます。この場合、生成される出力メッセージの形式は、ノード上の各種のタブの設定に従います。
300 番台の状況コードは転送用です。 「転送を使用」プロパティーを選択した場合、ノードは要求を、受け取った応答で新規の指定先に再送信することはありません。 「続けて転送」プロパティーを選択していない場合、コードは、エラー処理に関する前述のセクションの説明のとおりに扱われます。
400 番台および 500 番台の状況コードはエラーであり、エラー処理に関する前述のセクションの説明のとおりに扱われます。
「入力メッセージを Web サービス応答で置換」プロパティー、または「入力をエラーで置換」プロパティーを選択した場合、 入力メッセージ用のヘッダー、つまり HTTPRequest ノードの IN ターミナルにメッセージが着信するときにメッセージに属するヘッダーは、HTTPRequest ノードから発信されるメッセージを伝搬しません。 ただし、メッセージ・ツリー内の位置を指定するプロパティーのいずれかが指定されている場合、入力メッセージのヘッダーは伝搬されます。
リモート Web サービスによって戻されるヘッダーを含む HTTPResponse ヘッダーは、プロパティーの後に、ノードから伝搬されるメッセージ内の最初のヘッダーです。これは、選択されているオプションに関係なく当てはまります。 したがって、HTTPRequest ノードからの応答を MQ キューに入れたい場合、MQMD が (プロパティーの後の) 最初のヘッダーになるようにヘッダーを操作する必要があります。
入力メッセージを応答と置き換える場合、HTTPRequest ノードの前に入力メッセージの MQMD を Environment ツリーにコピーし、HTTPRequest ノードの後にそれをメッセージ・ツリーにコピーして戻すことができます。 応答の位置を指定する場合、既存の入力メッセージ・ヘッダーを維持するために、MQMD が最初のヘッダーとなるように HTTP 応答ヘッダーを移動または除去する必要があります。
SET OutputRoot = InputRoot; SET OutputRoot.HTTPResponseHeader = NULL;
SET OutputRoot = InputRoot; DECLARE HTTPHeaderRef REFERENCE TO OutputRoot.HTTPResponseHeader; DETACH HTTPHeaderRef; ATTACH HTTPHeaderRef TO OutputRoot.MQMD AS NEXTSIBLING;
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.Method = 'GET';
HTTPRequest ノードのインスタンスをメッセージ・フローに入れると、HTTPRequest ノードを構成することができます。 エディター・ビューでノードを右クリックし、「プロパティー」をクリックします。 ノードの基本プロパティーが表示されます。
値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、プロパティー・ダイアログにアスタリスクが表示されます。
以下のように、HTTPRequest ノードを構成します。
最初の 2 つのオプションでは、入力メッセージがメッセージ・フローを通過するたびに URL を設定するという、動的方式が可能です。 これらのオプションのどちらかを使用するには、メッセージ・フローの中の HTTPRequest ノードの前に Compute ノードを組み込み、必要な値の作成と初期化を行わなければなりません。
3 番目のオプションでは、このノードが受信するすべてのメッセージで値が固定します。 このプロパティーは、残りのフィールドが作成されていない場合やヌル値である場合に使用されるデフォルト設定を含むように設定する必要があります。 どちらかのフィールドに値がある場合、このプロパティーの設定は無視されます。 「Web サービス URL」プロパティーには、有効な URL が含まれていなければなりません。そうでない場合、デプロイは失敗します。 X-Original-HTTP-URL または LocalEnvironment.Destination.HTTP.RequestURL に設定した値が有効な URL であることも確認する必要があります。有効でないならば、ノードは例外を生成し、メッセージは failure ターミナルに伝搬されます。
URL の先頭が http:// の場合、要求ノードは HTTP 要求を、指定の URL にします。 URL の先頭が https:// の場合、要求ノードはノードの「SSL」タブで指定されたパラメーターを使用して、HTTP over SSL (HTTPS) 要求を、指定の URL にします。
HTTP/1.1 を選択した場合、さらに HTTP/1.1 キープアライブの使用も選択できます。
SSL 接続の両端は、使用するプロトコルに関して合意しており、選択するプロトコルはリモート・サーバーが受け入れ可能なものでなければなりません。
要求メッセージに入力メッセージのサブセットを含める場合は、このチェック・ボックスのチェックを外して「ツリー内の要求メッセージ位置」プロパティーを完成させます。
リファレンス内の式を含む、任意の有効な ESQL フィールド・リファレンスを入力することができます。 例えば、以下のように入力します。
InputRoot.XMLNS.ABC
「入力メッセージ全体を要求として使用」チェック・ボックスを選択した場合、このプロパティーは無視されます。
適切なメッセージ・ツリーの内容を構文解析してビット・ストリームを作成するとき、入力メッセージの本体に関連付けられ、「プロパティー」フォルダーに保管されているメッセージ・プロパティー (ドメイン、セット、タイプ、および形式) が使用されます。
入力メッセージの内容の一部を使用して、Web サービス応答メッセージを出力メッセージに組み込む場合は、このチェック・ボックスのチェックを外して、「ツリー内の応答メッセージ位置」プロパティーを完成させます。このプロパティーをクリアした場合、ノードは入力メッセージを出力メッセージにコピーし、指定された位置で、Web サービス応答メッセージを出力メッセージに上書きします (入力メッセージ自体は変更されません)。
リファレンス内の式、および新規フィールド・リファレンス (応答用にメッセージ・ツリー内に新規ノードを作成するため) を含む、任意の有効な ESQL フィールド・リファレンスを入力できます。 例えば、以下のように入力します。
OutputRoot.XMLNS.ABC.DEFまたは
Environment.WSReply
「入力メッセージを Web サービス応答と置換」チェック・ボックスを選択した場合、このプロパティーは無視されます。
応答ビット・ストリームを構文解析してメッセージ・ツリーの内容を作成するとき、ノードの「デフォルト」プロパティー (後述) に指定したメッセージ・プロパティー (ドメイン、セット、タイプ、および形式) が使用されます。
ノードが要求メッセージに対して HTTPRequestHeader を生成しないようにする場合は、「デフォルト HTTP ヘッダーの入力からの生成」チェック・ボックスからチェック・マークを外します (デフォルトの設定ではチェック・マークが付けられています)。 要求メッセージに組み込む HTTPRequestHeader の内容を制御するには、入力メッセージに HTTPRequestHeader を追加するための Compute ノードを、メッセージ・フローの中のこの HTTPRequest の前の位置に組み込み、このチェック・ボックスのチェック・マークを外してください。
HTTPRequestHeader または HTTPInputHeader に Web サービス・ヘッダーがない場合には、デフォルト値を使用して、次の表に示されている Web サービス・ヘッダーも追加します。
ヘッダー | デフォルト値 |
---|---|
SOAPAction | "" (空ストリング) |
Content-Type | text/xml; charset=utf-8 |
Host | 要求が送信されるホスト名 |
HTTPRequestHeader または HTTPInputHeader にオプションのヘッダー Content-Length がない場合、正しい計算値を使用して、このヘッダーも追加します。
入力メッセージの内容の一部を使用して、Web サービス・エラー・メッセージを出力メッセージに組み込む場合は、このチェック・ボックスのチェックを外して、「エラー・メッセージの位置」プロパティーを完成させます。 このプロパティーをクリアした場合、ノードは入力メッセージを出力メッセージにコピーし、指定された位置で、Web サービス・エラー・メッセージを出力メッセージに上書きします (入力メッセージ自体は変更されません)。
リファレンス内の式、および新規フィールド・リファレンス (応答用にメッセージ・ツリー内に新規ノードを作成するため) を含む、任意の有効な ESQL フィールド・リファレンスを入力できます。 例えば、以下のように入力します。
OutputRoot.XMLNS.ABC.DEFまたは
Environment.WSError
「入力をエラーで置換」チェック・ボックスを選択した場合、このプロパティーは無視されます。
Web サービスによってエラー・メッセージが戻される場合、これらのプロパティーの値は無視され、メッセージは BLOB パーサーによって構文解析されます。
XML、XMLNS、XMLNSC、JMS、MIME、および BLOB パーサーの場合、「メッセージ・セット」はブランクのままにしてください。
XML、XMLNS、XMLNSC、JMS、MIME、IDOC、および BLOB パーサーの場合、「メッセージ・タイプ」はブランクのままにしてください。
XML、XMLNS、XMLNSC、JMS、MIME、および BLOB パーサーの場合、「メッセージ形式」はブランクのままにしてください。
詳細については、メッセージの妥当性検査およびMRM ドメインのメッセージの妥当性検査プロパティーを参照してください。
「キャンセル」をクリックすると、ダイアログを閉じてプロパティーに対して行った変更をすべて破棄します。
メッセージをさらに処理したり、エラーを処理したり、あるいはメッセージを追加の宛先に送信するために、このノードの out ターミナル、error ターミナル、または failure ターミナルをこのメッセージ・フローの別のノードに接続します。 error ターミナルを接続していない場合、メッセージは廃棄されます。 failure ターミナルに接続していない場合、ブローカーはデフォルトのエラー処理を行います。 これについては、メッセージ・フローのエラー処理で説明します。
HTTPRequest ノード・ターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | ノード内の処理で障害が検出された場合に、メッセージがルーティングされる出力ターミナル。 |
Out | Web サービス要求が正常終了したことが示され、なおかつこのメッセージ・フロー内でさらに処理が必要な場合にメッセージがルーティングされる出力ターミナル。 |
Error | プロパティー「HTTP 転送を使用」を設定していない場合に、200 から 299 の範囲にない HTTP 状況コード (転送コード (3xx) を含む) を含んだメッセージの送信先となる出力ターミナル。 |
以下の表でノードのプロパティーを説明します。M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、プロパティー・ダイアログにアスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを bar ファイルに追加してデプロイするとき、値を変更できます)。
HTTPRequest ノードの「基本」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
Web サービス URL | はい | はい | Web サービスの URL。
次の形式で提供する必要があります。http://<hostname>[:<port>]/[<path>] ここでは、
|
|
要求タイムアウト | はい | いいえ | 120 | ノードが、Web サービスからの応答を待機する時間 (秒単位)。 有効な範囲は、1 から (231)-1 です。 無期限に待機することを示す値を入力することはできません。 |
HTTP(S) プロキシーの位置 | いいえ | はい | 要求の送信先のプロキシー・サーバーの位置。 これは、hostname:port という形式でなければなりません。 | |
HTTP(S) 転送を使用 | いいえ | いいえ | 選択されていない | HTTP 転送に従うかどうか。 チェック・ボックスを選択すると、転送に従います。 このチェック・ボックスのチェックを外すと、転送は行われません。 |
HTTP バージョン | いいえ | はい | 1.0 | 要求に使用する HTTP バージョン。 有効な値は、「1.0」および「1.1」です。 |
HTTP/1.1 キープアライブを使用可能にする | いいえ | はい | 選択済み (HTTP のバージョンが 1.1 の場合) | HTTP/1.1 キープアライブを使用する |
HTTPRequest ノードの「SSL」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
プロトコル | いいえ | はい | SSL | HTTPS 要求の作成時に使用する SSL プロトコル。 |
許可される SSL 暗号 | いいえ | はい | SSL 要求の作成時に使用する、コンマで区切られた暗号のリスト。 空ストリングのデフォルト値は、使用可能なすべての暗号の使用を意味します。 |
HTTPRequest ノードの「拡張」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
入力メッセージ全体を要求として使用 | いいえ | いいえ | 選択されている | 入力メッセージ本体全体を Web サービスに渡すかどうか。 このチェック・ボックスを選択すると、このアクションが実行されます。 このチェック・ボックスのチェックを外す場合は、「ツリー内の要求メッセージ位置」を指定する必要があります。 |
ツリー内の要求メッセージ位置 | はい | いいえ | InputRoot | Web サービスに送信するためにビット・ストリームが作成される開始位置。このプロパティーは ESQL フィールド・レファレンスの形式を取ります。 |
入力メッセージを Web サービス応答と置換 | いいえ | いいえ | 選択されている | Web サービス応答メッセージが、作成された出力メッセージの内容として入力メッセージのコピーと置換されるかどうか。 このチェック・ボックスを選択すると、このアクションが実行されます。 このチェック・ボックスのチェックを外す場合は、「ツリー内の応答メッセージ位置」を指定する必要があります。 |
ツリー内の応答メッセージ位置 | はい | いいえ | OutputRoot | Web サービス応答のビット・ストリームから構文解析されたエレメントが保管される開始位置。このプロパティーは ESQL フィールド・レファレンスの形式を取ります。 |
入力からデフォルト HTTP ヘッダーを生成 | いいえ | いいえ | 選択されている | HTTPRequestHeader が生成されるかどうか。 このチェック・ボックスを選択すると、このアクションが実行されます。 このチェック・ボックスのチェックを外す場合には、有効な HTTPRequestHeader が入力メッセージ内に存在している必要があります。 |
HTTPRequest ノードの「エラー」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
入力をエラーで置換 | いいえ | いいえ | 選択されている | 入力メッセージの内容をエラー・メッセージの内容で置換するかどうか。 このチェック・ボックスを選択すると、このアクションが実行されます。 このチェック・ボックスのチェックを外す場合は、「エラー・メッセージの位置」を指定する必要があります。 |
エラー・メッセージの位置 | はい | いいえ | OutputRoot | Web サービス・エラーのビット・ストリームから構文解析されたエレメントが保管される開始位置。 このプロパティーは ESQL フィールド・レファレンスの形式を取ります。 |
HTTPRequest ノードの「デフォルト」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
メッセージ・ドメイン | いいえ | いいえ | Web サービスから受信した応答メッセージの構文解析に使用されるドメイン。 | |
メッセージ・セット | いいえ | いいえ | 応答メッセージが定義されているメッセージ・セットの名前または ID。 | |
メッセージ・タイプ | いいえ | いいえ | 応答メッセージの名前。 | |
メッセージ形式 | いいえ | いいえ | 応答メッセージの物理フォーマットの名前。 |
HTTPRequest ノードの妥当性検査プロパティーについては、次の表に説明されています。
これらのプロパティーの詳細については、MRM ドメインのメッセージの妥当性検査プロパティーを参照してください。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
妥当性検査 | いいえ | はい | なし | 妥当性検査が行われるかどうか。有効な値は、「なし」、「内容と値」、「内容」、 および「継承」です。 |
失敗処置 | いいえ | いいえ | 例外 | 妥当性検査に障害が発生した場合の動作。 「妥当性検査」を「内容」または「内容と値」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」、「ローカル・エラー・ログ」、「例外」、および「例外リスト」です。 |
すべての値制約を含める | いいえ | いいえ | 選択されている | このプロパティーは編集できません。 チェック・ボックスが選択されていることにより示されるデフォルトのアクションは、基本値制約検査が「内容と値」妥当性検査に含まれるということです。 |
修正 | いいえ | いいえ | なし | このプロパティーは編集できません。 |
HTTPRequest ノードの汎用メッセージ・オプションのプロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
構文解析のタイミング | いいえ | いいえ | 要求時 | このプロパティーは、入力メッセージを構文解析する時を制御します。
有効な値は、「要求時」、「即時」、および「完全」です。
このプロパティーの詳細については、要求時の構文解析を参照してください。 |
MQRFH2C コンパクト・パーサーを MQRFH2 ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、MQRFH2 パーサーの代わりに、MQRFH2C コンパクト・パーサーを MQRFH2 ヘッダーに使用するかどうかを制御します。 |
HTTPRequest ノードの XMLNSC パーサー・オプションのプロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 | いいえ | いいえ | 選択されていない | ![]() ![]() |
混合内容保存モード | いいえ | いいえ | なし | このプロパティーは、XMLNSC パーサーが入力メッセージ内に混合テキストを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 有効な値は、「なし」および「すべて」です。「すべて」を選択すると、混合テキストに対してエレメントが作成されます。 「なし」を選択すると、混合テキストは無視されて、エレメントは作成されません。 |
コメント保存モード | いいえ | いいえ | なし | このプロパティーは、XMLNSC パーサーが入力メッセージ内にコメントを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 有効な値は、「なし」および「すべて」です。「すべて」を選択すると、コメントに対してエレメントが作成されます。 「なし」を選択すると、コメントは無視されて、エレメントは作成されません。 |
処理命令保存モード | いいえ | いいえ | なし | このプロパティーは、XMLNSC パーサーが入力メッセージ内に処理命令を検出したとき、これらのメッセージ・ツリー内にエレメントを作成するかどうかを制御します。 有効な値は、「なし」および「すべて」です。「すべて」を選択すると、処理命令に対してエレメントが作成されます。 「なし」を選択すると、処理命令は無視されて、エレメントは作成されません。 |
HTTPRequest ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |