応答をメッセージ・フローから HTTP サービス・クライアントに戻すには、HTTPReply ノードを使用します。 このノードは、HTTPInput ノードで受信した入力メッセージの送信元である HTTP クライアントへの応答を生成し、送信されてくる確認を待機します。
このトピックには、以下のセクションが含まれています。
HTTPReply ノードは、インバウンドの HTTP または HTTPS メッセージに応答を送信するメッセージ・フローで使用できます。 このシナリオの最も一般的な例は、Web サービスを実装するメッセージ・フローです。
Web サービスについて詳しくは、Web サービス・メッセージの処理を参照してください。
デフォルトで、HTTP メッセージは、HTTP ノードを含むメッセージ・フローの開始時に開始されるブローカー全体のリスナーによって処理されます。 インバウンドおよびアウトバウンドのすべての HTTP メッセージは、ブローカー上のすべての実行グループ内のすべてのメッセージ・フローにデプロイされるすべての HTTP ノードに対して、このリスナーを介して経路指定されます。
実行グループがその組み込みリスナーを使用して、その実行グループにデプロイされたすべてのメッセージ・フロー内の HTTP ノードにサービスを提供するように構成できます。 組み込みリスナーは、クライアントおよびノードと直接通信します。
組み込みリスナーの使用方法について詳しくは、 HTTP リスナーを参照してください。
HTTPReply ノードを使用して SOAPInput ノードが受け取った Web サービス要求に応答することはできません。応答しようとすると、ブローカーは例外を生成します。
実行グループがその組み込みリスナーを HTTP ノード用に使用するように構成した場合、HTTPReply ノードを含むフローを HTTPInput ノードを含むメッセージ・フローと同じ実行グループにデプロイする必要があります。 ブローカー全体のリスナーを開始して HTTP ノードをサポートするようにブローカーが構成されている場合は、応答フローを同じブローカーにデプロイする必要がありますが、リスナーが共有されるので実行グループは重要ではありません。
HTTPReply ノードは、入力メッセージ・ツリー全体から Web サービス・クライアントの応答メッセージを構成し、それをリクエスターに戻します。メッセージが別のメッセージ・フロー内の HTTPInput ノードによって最初に受け取られたものである場合、その応答は HTTPInput ノードによりメッセージのローカル環境に保管される要求 ID によって、応答に関連付けられます。
HTTPReply ノードはパレットの HTTP ドロワーに入っていて、WebSphere Message Broker Toolkit 内では次のアイコンによって表されます。
メッセージをさらに処理する場合、エラーを処理する場合、あるいはメッセージを追加の宛先に送信する場合は、このノードの Out ターミナルまたは Failure ターミナルをこのメッセージ・フローの別のノードに接続します。
HTTPReply ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。 値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、アスタリスクが表示されます。
HTTPReply ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | メッセージが伝搬される際に障害が検出された場合に、メッセージがルーティングされる出力ターミナル。 |
Out | 正常に伝搬され、なおかつこのメッセージ・フロー内でさらに処理が必要な場合にメッセージがルーティングされる出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力する必要がある場合、アスタリスクのマークが付きます)。C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
HTTPReply ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | HTTPReply | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
HTTPReply ノードの「基本」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
トランスポート障害を無視 | はい | いいえ | 選択されている | トランスポートに関連した障害を無視する場合 (例えば、クライアントが切断される場合)、「トランスポート障害を無視」を選択します。 このチェック・ボックスのチェックを外した場合、トランスポートに関連したエラーが発生すると、入力メッセージは Failure ターミナルに伝搬されます。 チェック・ボックスのチェックを外す場合は、「送信タイムアウトに応答 (秒)」に値を入力する必要があります。 |
送信タイムアウトに応答 (秒) | はい | いいえ | 120 | トランスポート障害を無視しない場合は、「送信タイムアウトに応答 (秒)」に値を設定します。 このプロパティーは、クライアントが応答を受信したという確認通知を受け取るまでノードが待機する時間の長さを秒単位で指定します。 確認通知がこの時間内に受信されると、入力メッセージは、Out ターミナル (接続されている場合) を経由して、メッセージ・フローの残りの部分に伝搬されます。 確認通知がこの時間内に受信されないと、入力メッセージは、Failure ターミナル (接続されている場合) を経由して伝搬されます。 Failure ターミナルが接続されていない場合、確認通知が時間内に受信されないと、例外が生成されます。 有効範囲は、0 (無期限待機を表す) から (231)-1 です。 このプロパティーは、「トランスポート障害を無視」がクリアされている場合に限り有効です。 |
返信または応答からデフォルト HTTP ヘッダーを生成 | はい | いいえ | 選択されている | HTTPReplyHeader または HTTPResponseHeader からの値を使用してデフォルトの Web サービス・ヘッダーを作成する場合は、「返信または応答からデフォルト HTTP ヘッダーを生成」を選択します。 入力メッセージに適切なヘッダーが存在しない場合は、デフォルト値が使用されます。 ノードは、正しい計算値に設定された Content-Length ヘッダーを HTTPReplyHeader の中に必ず組み込みます。このヘッダーが元の要求に組み込まれていない場合にもそうします。 |
HTTPReply ノードの「妥当性検査」プロパティーについては、次の表に説明されています。
メッセージがノードの Failure ターミナルに伝搬される場合には、妥当性検査は行われません。 これらのプロパティーの詳細については、妥当性検査プロパティーを参照してください。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
妥当性検査 | いいえ | はい | 継承 | このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は、「なし」、「内容と値」、「内容」、および「継承」です。 | validateMaster |
失敗時の処置 | いいえ | いいえ | 例外 | このプロパティーは、妥当性検査が失敗した場合の動作を制御します。 「妥当性検査」を「内容」または「内容と値」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」、「ローカル・エラー・ログ」、「例外」、および「例外リスト」です。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |