WebSphere® MQ Enterprise Transport を使用してブローカーに接続し、MQI および AMI アプリケーション・プログラミング・インターフェースを使用するクライアントからのメッセージを受信するには、MQGet ノードを使用します。
また MQGet ノードを使用して、ブローカーのキュー・マネージャーに定義された WebSphere MQ メッセージ・キューに以前に入れられていたメッセージを検索することもできます。
このトピックには、以下のセクションが含まれています。
MQGet ノードでは、指定されたキューからメッセージを読み取り、メッセージの処理環境を確立します。 適切な場合には、入力キューを WebSphere MQ クラスター・キューまたは共有キューとして定義することができます。
メッセージ・フロー内の最初のノードとしてだけ使用できる MQInput ノードとは異なり、MQGet ノードはメッセージ・フロー内の任意の場所で使用できます。 MQGet ノードからの出力メッセージ・ツリーは、入力ツリーと MQGET 呼び出しからの結果ツリーとを結合して構成されます。 MQGet ノードのプロパティーを設定すると、メッセージの受信方法を制御できます。例えば、メッセージをトランザクションの制御下で処理するように指示することができ、さらに、結果ツリーが作成されているときに、入力メッセージを受信するたびにデータ変換を実行するように要求することもできます。
MQGet ノードは、パレットの 「WebSphere MQ」ドロワーに含まれていて、ワークベンチ内では、次のアイコンによって表されます。
MQGet ノードのインスタンスをメッセージ・フローに入れると、JMSReply ノードを構成することができます。詳しくは、メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。ノードのプロパティーを「プロパティー」ダイアログに表示するには、ノードをダブルクリックするか、またはノードを右クリックしてから「プロパティー」をクリックします。
値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、アスタリスクが表示されます。
MQGet ノードを構成します。
<mcd><Msd>MRM</Msd><Set>DHM4UO906S001</Set><Type>receiptmsg1</Type> <Fmt>XML</Fmt></mcd>
MQRFH2 ヘッダーの値とは異なる値を設定すると、MQRFH2 ヘッダーの値が優先されます。
XML、XMLNS、XMLNSC、JMS、MIME、および BLOB パーサーの場合、「メッセージ・セット」はブランクのままにしてください。
XML、XMLNS、XMLNSC、JMS、IDOC、MIME、および BLOB パーサーの場合、「メッセージ・タイプ」はブランクのままにしてください。
XML、XMLNS、XMLNSC、JMS、MIME、および BLOB パーサーの場合、「メッセージ形式」はブランクのままにしてください。
この値を「即時」に変更すると、 部分構文解析はオーバーライドされて、メッセージ内のすべてのものが構文解析および妥当性検査されます。 ただし、構成が「選択」または「メッセージ」に指定された複合タイプで、この時点で解決できないものは除きます。 この値を「完全」に変更すると、 部分構文解析はオーバーライドされて、メッセージ内のすべてのものが構文解析および妥当性検査されます。 構成が「選択」または「メッセージ」に指定された複合タイプで、この時点で解決できないものでは妥当性検査障害が生じます。
入力ツリーから伝搬したメッセージに応答を挿入するために、 メッセージ・ツリー内に新規ノードを作成するための新規フィールド・リファレンスを含む、 任意の有効な ESQL フィールド・リファレンス (このリファレンスには式を含めることができます) を入力できます。 例えば、OutputRoot.XMLNS.ABC.DEF および Environment.GotReply は有効なフィールド・リファレンスです。 詳細については、MQGet ノードを使用する要求-応答シナリオを参照してください。
キュー・メッセージのビット・ストリングが構文解析されてメッセージ・ツリーの内容が作成されるとき、ノードの「入力メッセージの構文解析」プロパティーに指定したメッセージ・プロパティーが使用されます。
任意の有効な ESQL フィールド・リファレンスを入力することができます (「出力データのロケーション」プロパティーについての説明を参照してください)。 このロケーションに配置されるデータは常に、本体が BLOB エレメントの、完全な結果ツリーとなります。 「結果データのロケーション」 は、警告データには使用されません。
詳細については、メッセージの妥当性検査および妥当性検査プロパティーを参照してください。
メッセージ・フローに MQGet ノードを組み込んで構成する際には、特定の条件下でプロパティーをオーバーライドすることもできます。例えば、メッセージの別の部分で識別されるキューや、データベース・レコードから取り出されるキューから読み取ることもできます。
MQGet ノード・プロパティーに関する設定値をオーバーライドして、メッセージをさらに動的に処理できるようにするには、メッセージ・フロー中の MQGet ノードの前に Compute または JavaCompute ノードを組み込んでください。新しい出力メッセージを作成するようにこのノードを構成し、フィールドを LocalEnvironment ツリーに追加して、変更するプロパティーの新規値を定義してください。
例えば、以下の ESQL ステートメントを組み込んで、フロー中に Compute ノードを追加し、MQGet ノードの新規キュー名を定義して、メッセージに関する読み取りを行います。
SET LocalEnvironment.MQ.GET.QueueName = 'new_queue';
LocalEnvironment.MQ.GET. は、MQGet ノードに関係するすべてのフィールドの相関名として使用します。
メッセージをさらに処理する場合、エラーを処理する場合、あるいはメッセージを追加の宛先に送信する場合は、このノードの Out、Warning、Failure、および No Message 出力ターミナルをメッセージ・フローの別のノードに接続します。
詳しくは、failure ターミナルの接続を参照してください。
MQGet ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | メッセージ・フローによって処理されているメッセージを受け入れる入力ターミナル。 |
Warning | キューからメッセージを取得しようとしてノード内にエラー (警告を示す CC が付加) が発生した場合に、 出力ツリーが伝搬される出力ターミナル。 メッセージの MQMD 部分は構文解析されますが、メッセージの他の部分は構文解析されていない BLOB エレメントです。 ターミナルが接続されていない場合、この警告は廃棄され、ノードからの出力の伝搬はまったくありません。 |
Failure | キューからメッセージを取得しようとしてノード内にエラー (警告よりも深刻なエラーを示す CC が付加) が発生した場合に、 入力メッセージがルーティングされる出力ターミナル。 |
Out | WebSphere MQ キューからメッセージが正常に取り出された場合に、メッセージがルーティングされる出力ターミナル。 |
メッセージなし | キューにメッセージが存在しない場合、入力メッセージがルーティングされる出力ターミナル。No Message ターミナルに伝搬される出力メッセージは、「生成モード」、「メッセージのコピー」、および「ローカル環境のコピー」プロパティーの値に従って、入力メッセージのみで構成されます。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (値を入力することが必要なら、アスタリスクのマークが付きます)。C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できます)。
MQGet ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ、MQGet。 | ノードの名前。 |
簡略説明 | いいえ | いいえ | ブランク | ノードの簡単な説明 |
詳細説明 | いいえ | いいえ | ブランク | メッセージ・フロー内のノードの目的を説明するテキスト |
MQGet ノードの基本プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
キュー名 | はい | はい | なし | このノードが、メッセージを取り出す WebSphere MQ メッセージ・キューの名前。 |
MQGet ノードの「入力メッセージの構文解析」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
メッセージ・ドメイン | いいえ | いいえ | なし | キュー・メッセージの構文解析に使用されるドメイン。 |
メッセージ・セット | いいえ | いいえ | なし | キュー・メッセージが定義されているメッセージ・セットの名前または ID。 |
メッセージ・タイプ | いいえ | いいえ | なし | キュー・メッセージの名前。 |
メッセージ形式 | いいえ | いいえ | なし | キュー・メッセージの物理形式の名前。 |
MQGet ノードの「パーサー・オプション」のプロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
構文解析のタイミング | いいえ | いいえ | 「要求時」 | このプロパティーは、キュー・メッセージをいつ解析するかを制御します。
有効な値は、「要求時」、「即時」、および 「完全」 です。 このプロパティーに関する詳しい説明については、要求時の構文解析を参照してください。 |
MQRFH2C コンパクト・パーサーを MQRFH2 ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、MQRFH2 パーサーではなく、MQRFH2C コンパクト・パーサーを MQRFH2 ヘッダーに使用するかどうかを制御します。 |
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNS ドメイン内のメッセージに XMLNSC コンパクト・パーサーを使用するかどうかを制御します。 このプロパティーを設定した場合に、入力 MQRFH2 ヘッダーまたは「入力メッセージの構文解析」プロパティー「メッセージ・ドメイン」を XMLNS にすると、出力ターミナルに接続されているノードの XMLNSC の下にメッセージ・データが表示されます。 |
混合内容の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーがキュー・メッセージ・メッセージ内で混合テキストを検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、混合テキスト用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、混合テキストは無視されて、エレメントは作成されません。 |
コメントの保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーがキュー・メッセージ・メッセージ内でコメントを検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、コメント用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、コメントは無視されて、エレメントは作成されません。 |
処理命令の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーがキュー・メッセージ内で処理命令を検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、処理命令用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、処理命令は無視されて、エレメントは作成されません。 |
MQGet ノードの拡張プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
トランザクション・モード | いいえ | いいえ | はい | このプロパティーは、着信メッセージを同期点下で受信するかどうかを制御します。有効な値は、「自動」、「はい」、および 「いいえ」 です。 |
生成モード | いいえ | いいえ | メッセージ | このプロパティーは、入力ツリーからのメッセージのどの部分がコピーされるかを制御します。 有効な値は、「メッセージ」、「LocalEnvironment」、「メッセージと LocalEnvironment」、および「なし」です。 |
メッセージのコピー | いいえ | いいえ | なし | このプロパティーは、入力ツリーからのメッセージのどの部分がコピーされるかを制御します。 有効な値は、「なし」、「ヘッダーのコピー」、および「メッセージ全体のコピー」です。 |
ローカル環境のコピー | いいえ | いいえ | LocalEnvironment 全体のコピー | このプロパティーは、ローカル環境がどのように出力メッセージにコピーされるかを制御します。
メッセージ・フロー内のノードごとに、これを「LocalEnvironment 全体のコピー」に設定すると、ローカル環境の新しいコピーがツリー内に作成されて、前のノードのローカル環境の内容がそこに取り込まれます。
したがって、ノードによってローカル環境が変更されても、上流のノードは、それぞれ独自のコピーを保有しているので、そのような変更を認知しません。このような動作は、FlowOrder ノードを使用する場合や、Compute ノード上で propagate コマンドを使用する場合に問題になる可能性があります。
このプロパティーを「なし」に設定すると、各ノードがそれぞれ独自のローカル環境のコピーを生成するのではなく、前のノードから渡されたローカル環境が使用されます。 したがって、ノードがローカル環境を変更した場合、その変更は上流のノードで認知されます。 |
待機間隔 (ms) | はい | いいえ | 1000 | キュー・メッセージをメッセージ・キューから取得できるまで待機する最大時間をミリ秒で示します。 |
最小メッセージ・バッファー・サイズ (KB) | はい | いいえ | 4 | 取得バッファーの最小サイズをキロバイトで示します。このプロパティーの最小値は、1 キロバイトです。 |
MQGet ノードの「要求」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
入力 MQMD のロケーション | いいえ | いいえ | MQGET に使用する MQMD が位置する入力メッセージ・アセンブリー内の場所。 デフォルトの場所は InputRoot.MQMD です。 | |
入力 MQ パラメーターのロケーション | いいえ | いいえ | WebSphere MQ パラメーター (初期バッファー・サイズや MQGMO オーバーライドなど) が位置する、入力メッセージ・アセンブリー内の場所。 デフォルトの場所は InputLocalEnvironment.MQ.GET です。 | |
相関 ID で取得 | いいえ | いいえ | 選択されていない | このチェック・ボックスを選択すると、指定の相関 ID があるメッセージだけが取得されます。 |
メッセージ ID で取得 | いいえ | いいえ | 選択されていない | このチェック・ボックスを選択すると、指定のメッセージ ID があるメッセージだけが取得されます。 |
完全入力 MQMD の使用 | いいえ | いいえ | 選択されていない | このチェック・ボックスを選択すると、提供したすべての MQMD フィールドが使用されます。選択しない場合には、メッセージ ID と相関 ID のみが使用されます。 |
MQGet ノードの「結果」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
出力データのロケーション | いいえ | いいえ | OutputRoot | このプロパティーは、出力データが配置される場所を指定します。 このフィールドをブランクのままにした場合、デフォルトとして OutputRoot が使用されます。 |
結果データのロケーション | いいえ | いいえ | ResultRoot | このプロパティーは、どのサブツリー (キュー・メッセージの) を使用するかを指定します。このフィールドをブランクのままにした場合、デフォルトとして ResultRoot が使用されて、キュー・メッセージ全体が使用されます。 例えば、ResultRoot.MQMD.ReplyToQ を指定した場合は、そのサブツリーだけが使用されます。 |
出力 MQ パラメーターのロケーション | いいえ | いいえ | このプロパティーは、出力 WebSphere MQ パラメーターが配置される場所を指定します。 このフィールドをブランクのままにした場合、デフォルトとして OutputLocalEnvironment.MQ.GET が使用されます。 更新された値が下流のノードで可視となるようにするために、 「生成モード」を「LocalEnvironment」が含まれるように設定する必要があります。 デフォルトの場所は、OutputLocalEnvironment.MQ.GET です。 | |
警告データのロケーション | いいえ | いいえ | OutputRoot | このプロパティーは、MQGET から警告コードが戻された場合に、出力データが配置される場所を指定します。 このフィールドをブランクのままにした場合、デフォルトとして OutputRoot が使用されます。 |
MQGet ノードの「妥当性検査」プロパティーについては、次の表に説明されています。
これらのプロパティーの詳細については、妥当性検査プロパティーを参照してください。プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
妥当性検査 | いいえ | はい | なし | このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は、「なし」、「内容」、 「内容と値」、および「継承」です。 |
失敗時の処置 | いいえ | いいえ | 例外 | このプロパティーは、妥当性検査が失敗した場合の動作を制御します。 「妥当性検査」を「内容」または「内容と値」に設定した場合にのみ、このプロパティーを設定できます。有効な値は、「ユーザー・トレース」、「ローカル・エラー・ログ」、「例外」、および「例外リスト」です。 |
すべての値制約を含める | いいえ | いいえ | True | このプロパティーは編集できません。基本値制約検査が「内容と値」妥当性検査に含まれます。 |
固定 | いいえ | いいえ | なし | このプロパティーは編集できません。 |