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

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

タイムアウトを処理するためのメッセージ・フローの構成

HTTPInput または SOAPInput ノードの HTTP タイムアウト・ターミナルをさらに別のノードに接続して、タイムアウトを処理します。

始める前に:

タイムアウトを処理するために、HTTP タイムアウト・ターミナルをさらに別のノードに接続して、HTTPInput または SOAPInput ノードと共に開始するメッセージ・フローを構成できます。

これらのノードの 1 つを含むメッセージ・フローに BAR ファイルをデプロイする際にこれらの条件が満たされていない場合、警告が生成されて、HTTP タイムアウト・ターミナルに接続したメッセージ・フローのパスは無視されます。 次の再始動まで、それ以上の警告は生成されません。

入力ノードで静的なタイムアウト値を設定するには、以下のようにします。

  1. メッセージ・フローを作成するか、または既存のフローを開きます。
  2. メッセージ・フロー・エディターで、このメッセージ・フローの入力ノードを選択します。 ノードのプロパティーが、「プロパティー」ビュー (エディター・ペインの下にある) に表示されます。
  3. タイムアウト間隔として適切な時間を、プロパティー「最大クライアント待機時間」に設定します。 デフォルトの間隔は 180 秒です。

    この有効期限が切れた場合、1 つ以上のノードを HTTP タイムアウト・ターミナルに接続していなければ、クライアント要求メッセージを受け取るリスナーは SOAP Fault メッセージで応答して、タイムアウトが生じたことを示します。

  4. カスタマイズされたタイムアウト処理を提供する場合は、1 つ以上のノードを HTTP タイムアウト・ターミナルに接続します。 このシーケンスには、入力ノードに一致する応答ノードを含める必要があります。 そのため、HTTPInput ノードでメッセージ・フローが開始した場合は、HTTPReply を含める必要があります。 SOAPInput ノードでメッセージ・フローが開始した場合は、SOAPReply ノードを含める必要があります。

入力ノードに動的なタイムアウト値を設定するには、以下のようにします。

いくつかの方法で、既存の値を置き換えるために使用する値を導出することができます。 以下に例を示します。
  • タイプ UserDefined の構成可能サービスを作成してタイムアウト値を定義し、適切なプロパティーを取り出す。
  • データベースからレコードを読み取る。
  • メッセージ本体内のフィールドにある値を使用する。

HTTP タイムアウト・ターミナルから伝搬させることにより、メッセージ・フローがクライアントに送る応答の内容を変更できます。 HTTP タイムアウト・ターミナルに接続するノードのシーケンスの処理は、それ以降のタイムアウトにも依存するので、クライアントは常に既知のタイムアウト間隔内に応答を受け取ります。

メッセージが HTTP タイムアウト・ターミナルから伝搬すると、メッセージ・ツリーには、元の入力メッセージの入力ヘッダーと、障害タイムアウト・メッセージであるメッセージ本体が含まれます。 元のメッセージ本体およびタイムアウトに関連した他の情報には、LocalEnvironment メッセージ・ツリー内でアクセスできます。 例えば、以下の記録を LocalEnvironment 内で見つけることができます。
  (0x01000000:Name):HTTP = (
    (0x01000000:Name):Input = (
      (0x01000000:Name):Timeout = (
        (0x03000000:NameValue):OriginalClientLastWaitTime = 10 (INTEGER)
        (0x03000000:NameValue):OriginalClientWaitTime     = 15 (INTEGER)
        (0x03000000:NameValue):OriginalMessageMadeTheFlow = TRUE (BOOLEAN)
        (0x03000000:NameValue):OriginalRequestIdentifier  = 
           X'48545450000000000000000000000000c00c000000000000' (BLOB)
        (0x03000000:NameValue):OriginalInboundMessage     = X'3c3e' (BLOB)
      )
    )
  )

SOAPInput ノードでは、 HTTP タイムアウト・ターミナル・パスに接続された SOAPReply ノードが SOAP 障害応答メッセージを送る必要があり、 応答状況コードの 500 を変更することはできません。 HTTPInput ノードでは、任意の応答メッセージを HTTP タイムアウト・ターミナルから送ることができ、応答状況コードは LocalEnvironment.Destination.HTTP.ReplyStatusCode メッセージ・ツリー・フィールドを更新することによって変更できます。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

        
        最終更新:
        
        最終更新: 2015-02-28 17:48:51


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | bc43720_