MQInput ノード

WebSphere® MQ Enterprise Transport を使用してブローカーに接続し、MQI および AMI アプリケーション・プログラミング・インターフェースを使用するクライアントからのメッセージを受信するには、MQInput ノードを使用します。

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

目的

MQInput ノードは、ブローカーのキュー・マネージャー上に定義されている WebSphere MQ メッセージ・キューからのメッセージを受信します。 このノードでは、MQGET を使用して指定されたキューからメッセージを読み取り、メッセージの処理環境を確立します。 適切な場合には、入力キューを WebSphere MQ クラスター・キューまたは共有キューとして定義することができます。

WebSphere MQ 接続を経由して受信するメッセージを処理するメッセージ・フローは、常に MQInput ノードから開始されなければなりません。 MQInput ノードのプロパティーを設定すると、適切な MQGET オプションを設定できるので、メッセージの受信方法を制御できます。 例えば、メッセージをトランザクション制御下で処理するように指示できます。さらに、入力メッセージを受信するたびにデータ変換を実行するように要求することもできます。

MQInput ノードで開始されるメッセージ・フローに出力ノードを組み込む場合には、その出力ノードとして、サポートされるいずれかの出力ノード (ユーザー定義の出力ノードを含む) を使用できます。MQOutput ノードを組み込む必要はありません。 必要な任意の変換をブローカーに要求するようにメッセージ・フローを構成できますので、WebSphere MQ クライアントからメッセージを受け取り、サポートされる任意のトランスポートを使用してブローカーに接続するクライアント用のメッセージを生成する、メッセージ・フローを作成できます。

サブフローとして使用するメッセージ・フローを作成する場合には、標準入力ノードを使用することはできず、Input ノードを最初のノードとして使用して、サブフロー用の In ターミナルを作成する必要があります。

ご使用のメッセージ・フローが WebSphere MQ 接続を経由してメッセージを受け取らない場合には、サポートされる入力ノードのいずれかを選択できます。

MQInput ノードは、パレットの 「WebSphere MQ」ドロワーに含まれていて、ワークベンチ内では、次のアイコンによって表されます。

MQInput ノード・アイコン

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

MQInput ノードの使用法については、次のサンプルを参照してください。

サンプルは、Message Brokers Toolkit と統合されているインフォメーション・センターを使用する場合にのみ表示できます。

ターミナルの接続

MQInput ノードは、Out ターミナルに正常に取り出される各メッセージをルーティングします。 このアクションが失敗する場合、メッセージが再試行されます。(入力キューの BackoutThreshold 属性によって定義されているように) バックアウト・カウントが超過した場合、メッセージは Failure ターミナルにルーティングされます。ノードをこのターミナルに接続し、この状態を処理することができます。 Failure ターミナルに接続しなかった場合、メッセージはバックアウト・キューに書き込まれます。

メッセージ・フロー内でさらに例外がスローされた後、このノードによってメッセージがキャッチされる場合、メッセージは Catch ターミナルにルーティングされます。 Catch ターミナルに接続しなかった場合、その問題が解決されるまで、メッセージはこのノードでループし続けます。

メッセージがノードを介してループし続けないようにするために、バックアウト・キューまたは送達不能キュー (DLQ) を定義する必要があります。

整合トランザクションの構成

メッセージ・フローに MQInput ノードを組み込む場合、「トランザクション・モード」で設定する値が、メッセージを同期点下で受信するかどうかを定義します。
  • プロパティーを「自動」に設定した場合、メッセージは、着信メッセージに持続のマークが付けられている場合に同期点下で受信されます。持続のマークがない場合には同期点下で受信されません。出力ノードによってその後に送信されるメッセージは、出力ノードがこれを明示的にオーバーライドしない限り、着信持続プロパティーによって判別されたとおりに同期点の下に置かれます。
  • プロパティーを「はい」(デフォルト) に設定した場合、メッセージは同期点下 (つまり、WebSphere MQ 作業単位内) で受信されます。メッセージ・フローと同じインスタンスの出力ノードによってその後に送信されるメッセージは、出力ノードがこれを明示的にオーバーライドしない限り、同期点の下に置かれます。
  • このプロパティーを「いいえ」に設定した場合、メッセージは同期点下で受信されません。メッセージ・フロー内の出力ノードによってその後に送信されるメッセージは、個々の出力ノードがメッセージを同期点の下に置くように指定しない限り、同期点の下には置かれません。
MQOutput ノードは、このオプションをオーバーライドするように構成できる唯一の出力ノードです。

MQGET バッファー・サイズ

MQGET バッファー・サイズは、ブローカーによって内部的にインプリメントされ、変更することはできません。次の説明は単なる情報として提供されているものに過ぎません。内部インプリメンテーションは変更される可能性があるので、メッセージ・フローを開発する際、これに頼ってはなりません。

MQInput ノードは、初期化時に最初の MQGET のデフォルト・バッファーのサイズを 4 KB に設定します。MQInput ノードはメッセージのサイズをモニターし、次のようにバッファーのサイズを増減させます。

  1. メッセージがバッファーのサイズより大きいために MQGET が失敗した場合、ノードは即時にバッファーのサイズを増加してメッセージを収容できるようにし、再度 MQGET を発行して、メッセージ・カウントをゼロにリセットします。
  2. バッファー・サイズを増加させてから 10 個のメッセージがカウントされると、ノードは 10 個のメッセージのうち最大のもののサイズとバッファーのサイズを比較します。最大のメッセージのサイズがバッファー・サイズの 75 % 未満の場合は、バッファーは 10 個のメッセージの最大のサイズに削減されます。メッセージがバッファーのサイズより大きいために 10 個のメッセージの間に MQGET が失敗した場合、ノードはアクション 1 を取ります。

例えば、ノードが受信した最初のメッセージが 20 MB であり、次の 10 個のメッセージが、それぞれ 14 MB の場合、バッファーのサイズは 4 KB から 20 MB に増加され、10 個のメッセージに対しては 20 MB のままとなります。ただし、10 番目のメッセージの後は、バッファーのサイズは 14 MB に削減されます。

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

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

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

ターミナル 説明
Failure エラーが発生した場合にメッセージがルーティングされる出力ターミナル。 「妥当性検査」プロパティーが設定されている場合でも、このターミナルに伝搬されるメッセージは妥当性検査が行われません。
Out WebSphere MQ キューからメッセージが正常に取り出された場合に、メッセージがルーティングされる出力ターミナル。
Catch 例外がダウンストリームでスローされ、ノードによってキャッチされた場合に、メッセージがルーティングされる出力ターミナル。

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

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

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

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

プロパティー M C デフォルト 説明
キュー名 はい はい   このノードが、このメッセージ・フローで処理するために (MQGET を使用して) メッセージを取り出す WebSphere MQ 入力キューの名前。この WebSphere MQ キューを、メッセージ・フローをデプロイするブローカーのホストとして機能するキュー・マネージャーに対して事前定義する必要があります。

MQInput ノードの拡張プロパティーについては、次の表に説明されています。それらのプロパティーを設定することによって、メッセージの処理方法 (トランザクション特性など) を指定できます。これらのプロパティーの多くは MQGET 呼び出しのオプションにマップされます。

プロパティー M C デフォルト 説明
トランザクション・モード はい いいえ はい このプロパティーは、着信メッセージを同期点下で受信するかどうかを制御します。有効な値は、「自動」「はい」、および「いいえ」です。
  • 「自動」を選択すると、着信メッセージは、持続のマークが付けられている場合は同期点下で受信され、そうでなければ同期点下では受信されません。出力ノードによってその後に送信される派生メッセージのトランザクション特性は、出力ノードが明示的にトランザクション特性をオーバーライドしない限り、着信持続プロパティーによって判別されます。
  • 「はい」を選択すると、着信メッセージが同期点下で受信されます。 メッセージ・フローと同じインスタンスの出力ノードによってその後に送信される派生メッセージは、出力ノードが明示的にトランザクションをオーバーライドしない限り、トランザクションとして送信されます。
  • 「いいえ」を選択すると、着信メッセージが同期点下で受信されません。メッセージ・フローの出力ノードによってその後に送信される派生メッセージは、出力ノードがメッセージを同期点下に置くことを指定していない限り、非トランザクションとして送信されます。
順序モード はい いいえ デフォルト 入力キューからメッセージを取り出して処理する順序。有効な値は、「デフォルト」「ユーザー ID 順」、および「キュー順序」です。このプロパティーは、「インスタンス」タブ上のメッセージ・フロー・プロパティー「追加インスタンス」をゼロより大きい値に設定した (つまり、複数のスレッドが入力キューを読み取る) 場合にのみ有効です。 有効な値は以下のとおりです。
  • デフォルト。 キュー属性に定義されている順序でメッセージが取り出されますが、メッセージはメッセージ・フローによって処理されるので、必ずしもこの順序になるわけではありません。
  • ユーザー ID 順。MQMD 内の UserIdentifier が同じであるメッセージが、キュー属性に定義されている順序で取り出され、処理されます。この順序は、メッセージが処理されるときにも必ず維持されます。あるスレッドによって処理される特定の UserIdentifier に関連付けられているメッセージが完全に処理されるまで、そのスレッドまたは別のスレッドが、同じ UserIdentifier を持つ別のメッセージの処理を開始することはできません。他の順序付けは、保存が保証されません。
  • 変更の始まりキュー順序。 メッセージが、キュー属性に定義されている順序で、このノードによって取り出されて処理されます。この順序は、メッセージが処理されるときにも必ず適用されます。 この動作は、メッセージ・フロー・プロパティー「追加インスタンス」がゼロに設定されているときに行われる動作と同じです。 一方、「順序モード」「キュー配列による」に設定してメッセージ・フローを再デプロイすると、既に実行中になっている追加のインスタンスは解放されなくなります。したがって、「順序モード」「キュー配列による」に設定した場合は、メッセージ・フローをいったん停止してから再始動するか、フローの再デプロイ後に実行グループの mqsireload コマンドを実行します。変更の終わり

変更の始まりこのオプションの使用については、WebSphere MQ メッセージ・グループ内のメッセージの受信を参照してください。変更の終わり

論理順序 はい いいえ 選択されている このチェック・ボックスを選択すると、メッセージは、WebSphere MQ で定義された論理順序で受信されます。このオプションは、MQI の MQGMO の MQGMO_LOGICAL_ORDER オプションにマップされます。

このチェック・ボックスのチェックを外した場合、グループの一部として送信されるメッセージは事前に決定された順序で受信されません。 ブローカーがグループ内のメッセージを受信する必要があり、このチェック・ボックスを選択していない場合は、入力メッセージの順序を重要視しないか、またはメッセージ・フローを設計してメッセージを適切に処理する必要があります。

グループの最後のメッセージが受信および処理された後にのみメッセージ処理をコミットする場合は、「メッセージ・グループによるコミット」も選択する必要があります。

このプロパティーのマップ先のオプションの詳細については、WebSphere MQ バージョン 6 インフォメーション・センター・オンライン の「Application Programming Reference」のセクション、または WebSphere MQ ライブラリー Web ページ のバージョン 5.3 ブックを参照してください。

変更の始まりこのオプションの使用については、WebSphere MQ メッセージ・グループ内のメッセージの受信を参照してください。変更の終わり

すべてのメッセージが使用可能 はい いいえ 選択されていない 単一グループ内のすべてのメッセージが使用できるときのみメッセージ検索および処理を行う場合は、「すべてのメッセージが使用可能」を選択します。 このプロパティーは MQI の MQGMO の MQGMO_ALL_MSGS_AVAILABLE オプションにマップされます。 グループ内のメッセージすべての検索が使用できなくても処理を開始できるようにするには、このチェック・ボックスのチェックを外してください。

このプロパティーのマップ先のオプションの詳細については、WebSphere MQ バージョン 6 インフォメーション・センター・オンライン の「Application Programming Reference」のセクション、または WebSphere MQ ライブラリー Web ページ のバージョン 5.3 ブックを参照してください。

一致するメッセージ ID いいえ いいえ   着信メッセージの MQMD 内のメッセージ ID と一致する必要のあるメッセージ ID。MQMD の「MsgId」フィールドのメッセージ ID 値と一致するメッセージ ID のメッセージのみを入力ノードに受信させる場合には、メッセージ ID を入力します。

最大 48 桁までの偶数桁の 16 進数字 (文字 0 から 9A から F、および a から f が有効) を入力します。 入力した一致するメッセージ ID が「MsgId」フィールドのサイズより短い場合、「一致するメッセージ ID」の右側に X'00' 文字が埋め込まれます。このプロパティーは、MQI の MQGMO の MQMO_MATCH_MSG_ID オプションにマップされます。

メッセージ ID が一致することを入力ノードに確認させたくない場合は、このプロパティーはブランクのままにしてください。

このプロパティーのマップ先のオプションの詳細については、WebSphere MQ バージョン 6 インフォメーション・センター・オンライン の「Application Programming Reference」のセクション、または WebSphere MQ ライブラリー Web ページ のバージョン 5.3 ブックを参照してください。

一致する相関 ID いいえ いいえ   着信メッセージの MQMD 内の相関 ID と一致する必要のある相関 ID。MQMD の「CorrelId」フィールドのメッセージ ID 値と一致する相関 ID のメッセージのみを入力ノードに受信させたい場合には、メッセージ ID を入力します。

最大 48 桁までの偶数桁の 16 進数字 (文字 0 から 9A から F、および a から f が有効) を入力します。 入力した ID が「CorrelId」フィールドのサイズより短い場合、右側に X'00' 文字が埋め込まれます。 このプロパティーは MQI の MQGMO の MQMO_MATCH_CORREL_ID オプションにマップされます。

CorrelID が一致することを入力ノードに確認させたくない場合は、このプロパティーはブランクのままにしてください。

このプロパティーのマップ先のオプションの詳細については、WebSphere MQ バージョン 6 インフォメーション・センター・オンライン の「Application Programming Reference」のセクション、または WebSphere MQ ライブラリー Web ページ のバージョン 5.3 ブックを参照してください。

変換 はい いいえ 選択されていない このチェック・ボックスを選択すると、WebSphere MQ は、MQMD に設定された CodedCharSetId および Encoding の値に従って受信するメッセージのデータを変換します。 キューからメッセージを取り出すときに WebSphere MQ でメッセージのデータ変換を行う場合は、「変換」を選択します。このオプションは、BLOB ドメインのメッセージを処理する場合、あるいはユーザー定義パーサーを使用する場合に有用です。パーサーは変換を実行するため、XML または MRM ドメインを使用してメッセージを構文解析する場合は、このオプションを選択しないでください。

入力キューからメッセージを取り出すときに、WebSphere MQ は着信メッセージを、MQMD に指定されたエンコードおよびコード化文字セットに変換します。 この MQMD は入力ノードが MQGET 呼び出しで指定したものです。 ブローカーは、MQGET 呼び出しで MQGMO_CONVERT オプションを使用します。WebSphere MQ 変換の通常ルールが適用されます。 「エンコードの変換」 および 「コード化文字セット ID の変換」 オプションで指定した値は、MQGET 呼び出しの「MsgDesc エンコード」フィールドおよび「CCSID」フィールドで使用されます。 WebSphere MQ は、MQMD 「フォーマット」フィールドが文字データを識別する組み込み WebSphere MQ 値であるか、データ変換出口が WebSphere MQ に存在する場合にのみ、着信メッセージを変換できます。

このプロパティーは MQI の MQGMO の MQGMO_CONVERT オプションにマップされます。

WebSphere MQ がメッセージを変換しないようにするには、チェック・ボックスのチェックを外します。

このチェック・ボックスを選択した場合には、次も指定できます。

  • 変換エンコード。 メッセージ本体内の数値データを変換するためのエンコードを表す番号を入力します。 有効な値は以下のとおりです。
    • Windows platform 546 DOS およびすべての Windows® システム用
    • Linux platformUNIX platform 273 すべての Linux® および UNIX® システム用
    • z/OS platform 785 すべての z/OS® システム用
    エンコードは、次のような状況でのみ使用されます。
    • ユーザー定義の WebSphere MQ データ変換出口がエンコードを使用する場合。
    • 組み込み WebSphere MQ 変換出口がエンコードを使用して、メッセージを任意の事前定義 WebSphere MQ フォーマットに変換する場合。
    誤った値を指定した場合、変換は行われません。
  • 変換コード化文字セット ID。 メッセージ本体内の文字データを変換するための文字セット ID を表す値を入力します。

    誤った値を指定した場合、変換は行われません。

WebSphere MQ データ変換、およびこのオプションの使用を選択する理由の詳細については、WebSphere MQ バージョン 6 インフォメーション・センター・オンライン の「アプリケーション・プログラミング・ガイド」のセクション、または WebSphere MQ ライブラリー Web ページ のバージョン 5.3 ブックを参照してください。「変換エンコード」および「変換コード化文字セット ID」に指定できる値の詳細については、WebSphere MQ バージョン 6 インフォメーション・センター・オンライン の「アプリケーション・プログラミング・リファレンス」のセクション、または WebSphere MQ ライブラリー Web ページ のバージョン 5.3 ブックを参照してください。

変換エンコード いいえ いいえ   メッセージ・データの数値 (整数値で表される) に使用する表現。「変換」を選択した場合にのみ、このプロパティーは有効です。
変換コード化文字セット ID いいえ いいえ   整数値として表されたメッセージ・データの文字データのコード化文字セット ID。「変換」を選択した場合にのみ、このプロパティーは有効です。
メッセージ・グループ別のコミット はい いいえ 選択されていない このプロパティーは、メッセージ・グループの一部であるメッセージを処理する場合、いつトランザクションをコミットするかを制御します。 このチェック・ボックスを選択すると、メッセージ・グループが処理された時にトランザクションがコミットされます。このチェック・ボックスのチェックを外したままにしておく場合、それぞれのメッセージがメッセージ・フローを介して完全に伝搬されるごとに コミットが実行されます。

このプロパティーは「論理順序」を選択した場合のみ関係します。

キューに出力される順序でグループ内のメッセージを検索および処理する必要がある場合には、「順序モード」プロパティーを「キュー順序」に設定します。

z/OS 逐次化トークン いいえ いいえ   z/OS のみ: 逐次化されたアプリケーション・サポート用のユーザー定義トークン。指定する値は、WebSphere MQ MQCNO 構造の有効な ConnTag の規則に準拠している必要があります。WebSphere MQ によって提供される共用リソースへの逐次化されたアクセスを使用する場合は、逐次化トークンを入力します。

逐次化トークンに提供する値は、WebSphere MQ バージョン 6 インフォメーション・センター・オンライン の「アプリケーション・プログラミング・リファレンス」のセクション、または WebSphere MQ ライブラリー Web ページ のバージョン 5.3 ブックで説明されている規則に準拠していなければなりません。

z/OS における逐次化およびキュー共有の詳細については、WebSphere MQ バージョン 6 インフォメーション・センター・オンライン の「概説および計画ガイド」のセクション、または WebSphere MQ ライブラリー Web ページのバージョン 5.3 ブックを参照してください。

トピック いいえ はい   入力メッセージ用のデフォルト・トピック。このプロパティーを使用して、メッセージをパブリッシュ/サブスクライブ・トピックと関連付けることができます。トピック名として任意の文字を入力できます。メッセージが MQInput ノードを移動するときは、入力したトピック名を採用します。 (パブリッシュ/サブスクライブを使用する場合は、トピックにサブスクライブし、MQInput ノードを通ってそのトピック名の下にパブリッシュされたメッセージを参照することができます。) 着信メッセージに MQRFH2 ヘッダーがある場合には、その MQRFH2 ヘッダーの <psc> フォルダーから値を取り込めるため、「トピック」プロパティーの値を設定する必要はありません。例えば、以下のようになっています。
<psc><Topic>stockquote</Topic></psc>
「トピック」プロパティーの値に、MQRFH2 ヘッダーの <Topic> の値とは異なる値を設定すると、MQRFH2 ヘッダーの値が優先されます。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009. All Rights Reserved.
最終更新 : 2009-02-13 10:22:52

ac04560_