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