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」ドロワーに含まれていて、ワークベンチ内では、次のアイコンによって表されます。
サンプルは、Message Brokers Toolkit と統合されているインフォメーション・センターを使用する場合にのみ表示できます。
MQInput ノードは、Out ターミナルに正常に取り出される各メッセージをルーティングします。 このアクションが失敗する場合、メッセージが再試行されます。(入力キューの BackoutThreshold 属性によって定義されているように) バックアウト・カウントが超過した場合、メッセージは Failure ターミナルにルーティングされます。ノードをこのターミナルに接続し、この状態を処理することができます。 Failure ターミナルに接続しなかった場合、メッセージはバックアウト・キューに書き込まれます。
メッセージ・フロー内でさらに例外がスローされた後、このノードによってメッセージがキャッチされる場合、メッセージは Catch ターミナルにルーティングされます。 Catch ターミナルに接続しなかった場合、その問題が解決されるまで、メッセージはこのノードでループし続けます。
メッセージがノードを介してループし続けないようにするために、バックアウト・キューまたは送達不能キュー (DLQ) を定義する必要があります。
MQGET バッファー・サイズは、ブローカーによって内部的にインプリメントされ、変更することはできません。次の説明は単なる情報として提供されているものに過ぎません。内部インプリメンテーションは変更される可能性があるので、メッセージ・フローを開発する際、これに頼ってはなりません。
MQInput ノードは、初期化時に最初の MQGET のデフォルト・バッファーのサイズを 4 KB に設定します。MQInput ノードはメッセージのサイズをモニターし、次のようにバッファーのサイズを増減させます。
例えば、ノードが受信した最初のメッセージが 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 順」、および「キュー順序」です。このプロパティーは、「インスタンス」タブ上のメッセージ・フロー・プロパティー「追加インスタンス」をゼロより大きい値に設定した (つまり、複数のスレッドが入力キューを読み取る) 場合にのみ有効です。
有効な値は以下のとおりです。
|
論理順序 | はい | いいえ | 選択されている | このチェック・ボックスを選択すると、メッセージは、WebSphere MQ で定義された論理順序で受信されます。このオプションは、MQI の MQGMO の MQGMO_LOGICAL_ORDER オプションにマップされます。
このチェック・ボックスのチェックを外した場合、グループの一部として送信されるメッセージは事前に決定された順序で受信されません。 ブローカーがグループ内のメッセージを受信する必要があり、このチェック・ボックスを選択していない場合は、入力メッセージの順序を重要視しないか、またはメッセージ・フローを設計してメッセージを適切に処理する必要があります。 グループの最後のメッセージが受信および処理された後にのみメッセージ処理をコミットする場合は、「メッセージ・グループによるコミット」も選択する必要があります。 このプロパティーのマップ先のオプションの詳細については、WebSphere MQ バージョン 6 インフォメーション・センター・オンライン の「Application Programming Reference」のセクション、または WebSphere MQ ライブラリー Web ページ のバージョン 5.3 ブックを参照してください。
|
すべてのメッセージが使用可能 | はい | いいえ | 選択されていない | 単一グループ内のすべてのメッセージが使用できるときのみメッセージ検索および処理を行う場合は、「すべてのメッセージが使用可能」を選択します。
このプロパティーは 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 から 9、A から 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 から 9、A から 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 がメッセージを変換しないようにするには、チェック・ボックスのチェックを外します。 このチェック・ボックスを選択した場合には、次も指定できます。
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 ヘッダーの値が優先されます。 |