WebSphere® MQ Enterprise Transport を使用してブローカーに接続し、MQI および AMI アプリケーション・プログラミング・インターフェースを使用するクライアントからのメッセージを受信するには、MQGet ノードを使用します。
また MQGet ノードを使用して、ブローカーのキュー・マネージャーに定義された WebSphere MQ メッセージ・キューに以前に入れられていたメッセージを検索することもできます。
このトピックには、以下のセクションが含まれています。
MQGet ノードでは、指定されたキューからメッセージを読み取り、メッセージの処理環境を確立します。 適切な場合には、入力キューを WebSphere MQ クラスター・キューまたは共有キューとして定義することができます。
メッセージ・フロー内の最初のノードとしてだけ使用できる MQInput ノードとは異なり、MQGet ノードはメッセージ・フロー内の任意の場所で使用できます。 MQGet ノードからの出力メッセージ・ツリーは、入力ツリーと MQGET 呼び出しからの結果ツリーとを結合して構成されます。 MQGet ノードのプロパティーを設定すると、メッセージの受信方法を制御できます。例えば、メッセージをトランザクションの制御下で処理するように指示することができ、さらに、結果ツリーが作成されているときに、入力メッセージを受信するたびにデータ変換を実行するように要求することもできます。
MQGet ノードは、パレットの 「WebSphere MQ」ドロワーに含まれていて、WebSphere Message Broker Toolkit 内では、次のアイコンによって表されます。
メッセージ・フロー内のMQGet ノードの使い方については、MQGet ノードを使用する要求-応答シナリオを参照してください。
サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
MQGet ノードのインスタンスをメッセージ・フローに入れると、JMSReply ノードを構成することができます。詳しくは、メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。
値を入力する必要のある (デフォルト値が定義されていないプロパティー) すべての必須プロパティーには、アスタリスクが表示されます。
「参照のみ」プロパティーを設定した場合、メッセージを同期点下で参照することはできないので、「トランザクション・モード」プロパティーに設定された値は無視されます。 ただし、メッセージ・フローの同じインスタンスで出力ノードによって後から伝搬される派生メッセージはすべて、指定された「トランザクション・モード」値に従って、上記で説明した動作に従います。
メッセージ・フローに MQGet ノードを組み込んで構成する際には、特定の条件下でプロパティーをオーバーライドすることもできます。 例えば、メッセージの別の部分で識別されるキューや、データベース・レコードから取り出されるキューから読み取ることもできます。
MQGet ノード・プロパティーに関する設定値をオーバーライドして、メッセージをさらに動的に処理できるようにするには、メッセージ・フロー中の MQGet ノードの前に Compute または JavaCompute ノードを組み込んでください。 出力メッセージを作成するようにこのノードを構成し、フィールドをローカル環境ツリーに追加して、変更するプロパティーの新規値を定義してください。
SET LocalEnvironment.MQ.GET.QueueName = 'new_queue';
LocalEnvironment.MQ.GET. は、MQGet ノードに関係するすべてのフィールドの相関名として使用します。
設定 | 説明 |
---|---|
QueueName | この設定は、MQGet ノードの「キュー名」プロパティーをオーバーライドします。次に例を示します。
|
InitialBufferSize | この設定は、MQGet ノードの「メッセージ・バッファーの最小サイズ」プロパティーをオーバーライドします。次に例を示します。
|
MQGMO.* | この設定は、MQGet ノードによって使用される MQGET メッセージ・オプションをオーバーライドします。次に例を示します。
このオーバーライドは柔軟性を目的としたものですが、MQGMO は指定されたとおりに使用されるので、注意して使用する必要があります。
ノード・プロパティーなどのローカル環境のオーバーライドは考慮されていません。 MQGMO 構造について詳しくは、WebSphere MQ バージョン 7 インフォメーション・センター・オンラインを参照してください。 |
メッセージをさらに処理する場合、エラーを処理する場合、あるいはメッセージを追加の宛先に送信する場合は、このノードの Out、Warning、Failure、および No Message 出力ターミナルをメッセージ・フローの別のノードに接続します。
詳しくは、failure ターミナルの接続を参照してください。
ターミナル | 説明 |
---|---|
In | メッセージ・フローによって処理されているメッセージを受け入れる入力ターミナル。 |
Warning | キューからメッセージを取得しようとしてノード内にエラー (警告を示す CC が付加) が発生した場合に、 出力ツリーが伝搬される出力ターミナル。 メッセージの MQMD 部分は構文解析されますが、メッセージの他の部分は構文解析されていない BLOB エレメントです。 ターミナルが接続されていない場合、この警告は廃棄され、ノードからの出力の伝搬はまったくありません。 |
Failure | キューからメッセージを取得しようとしてノード内にエラー (警告よりも深刻なエラーを示す CC が付加) が発生した場合に、 入力メッセージがルーティングされる出力ターミナル。 |
Out | WebSphere MQ キューからメッセージが正常に取り出された場合に、メッセージがルーティングされる出力ターミナル。 |
メッセージなし | キューにメッセージが存在しない場合、入力メッセージがルーティングされる出力ターミナル。 No Message ターミナルに伝搬される出力メッセージは、「生成モード」、「メッセージのコピー」、および「ローカル環境のコピー」プロパティーの値に従って、入力メッセージのみで構成されます。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (値を入力することが必要なら、アスタリスクのマークが付きます)。C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ、MQGet | ノードの名前。 |
簡略説明 | いいえ | いいえ | ブランク | ノードの簡単な説明 |
詳細説明 | いいえ | いいえ | ブランク | メッセージ・フロー内のノードの目的を説明するテキスト |
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
キュー名 | はい | はい | なし | このノードが、メッセージを取り出す WebSphere MQ メッセージ・キューの名前。 このキューを、 メッセージ・フローをデプロイするブローカーのホストとして機能するキュー・マネージャーに対して事前定義する必要があります。 このキューが有効なキューではない場合、ノードは例外を生成して、入力メッセージは Failure ターミナルに伝搬されます。 |
queueName |
MQGet ノードの「入力メッセージの構文解析」プロパティーについては、次の表に説明されています。
<mcd><Msd>MRM</Msd><Set>DHM4UO906S001</Set><Type>receiptmsg1</Type>
<Fmt>XML</Fmt></mcd>
MQRFH2 ヘッダーの値とは異なる値を設定すると、MQRFH2 ヘッダーの値が優先されます。プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
メッセージ・ドメイン | いいえ | いいえ | BLOB | メッセージの構文解析に使用されるドメイン。 フィールドがブランクの場合、デフォルトは BLOB になります。 |
メッセージ・モデル | いいえ | いいえ | 選択されていない | メッセージが定義されているメッセージ・モデル・スキーマ・ファイルの名前またはロケーション。 このリストには、選択したメッセージ・ドメインに使用可能なすべてのメッセージ・モデル・スキーマ・ファイルが取り込まれます。 |
メッセージ | いいえ | いいえ | 選択されていない | メッセージ・モデル・スキーマ・ファイル内のメッセージ・ルートの名前またはロケーション。 このリストには、選択したメッセージ・モデルで定義された、利用可能なすべてのメッセージが取り込まれます。 |
物理形式 | いいえ | いいえ | 選択されていない | メッセージの物理フォーマットの名前。 MRM または IDOC パーサーを使用する場合は、リストから着信メッセージの物理形式を選択します。 このリストには、選択されたメッセージ・モデル用に定義したすべての物理形式が含まれます。 「メッセージ・ドメイン」プロパティーを DataObject に設定した場合、このプロパティーを XML または SAP ALE IDoc に設定できます。 外部ソースからのビット・ストリームを構文解析してメッセージ・ツリーを生成する必要がある場合には、このプロパティーを SAP ALE IDoc に設定してください。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
構文解析のタイミング | いいえ | いいえ | 要求時 | このプロパティーは、キュー・メッセージをいつ解析するかを制御します。 有効な値は、「要求時」、「即時」、および「完全」です。 デフォルトでは、このプロパティーは「要求時」 に設定されます。これにより、メッセージの構文解析が遅延されます。 メッセージが即時に解析されるようにするには、要求時の構文解析を参照してください。 |
MQRFH2C コンパクト・パーサーを MQRFH2 ヘッダーに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、MQRFH2 パーサーの代わりに、MQRFH2C コンパクト・パーサーを MQRFH2 ヘッダーに使用するかどうかを制御します。 MQRFH2C パーサーが使用されるようにするには、「MQRFH2 ヘッダーには MQRFH2C コンパクト・パーサーを使用」を選択します。 デフォルトでは、このチェック・ボックスはクリアされていて、コンパクト・パーサーが使用されないことを示します。 |
XML スキーマ・データ・タイプを使用してツリーを構築する | いいえ | いいえ | 選択されていない | このプロパティーは、XML スキーマから取得されたデータ・タイプを使って、XMLNSC パーサーがメッセージ・ツリー内に構文エレメントを作成するかどうかを制御します。 「妥当性検査」タブ上の「妥当性検査」プロパティーを「内容」 または 「内容と値」 に設定した場合にのみ、このプロパティーを選択できます。 XMLNSC の詳細については、XMLNSC ドメインでのメッセージの操作を参照してください。 |
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNS ドメイン内のメッセージに XMLNSC コンパクト・パーサーを使用するかどうかを制御します。 このプロパティーを設定した場合に、入力 MQRFH2 ヘッダーまたは「入力メッセージの構文解析」プロパティー「メッセージ・ドメイン」を XMLNS にすると、出力ターミナルに接続されているノードの XMLNSC の下にメッセージ・データが表示されます。 |
混合内容の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーがキュー・メッセージ・メッセージ内で混合テキストを検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、混合テキスト用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、混合テキストは無視されて、エレメントは作成されません。 |
コメントの保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーがキュー・メッセージ・メッセージ内でコメントを検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、コメント用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、コメントは無視されて、エレメントは作成されません。 |
処理命令の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーがキュー・メッセージ内で処理命令を検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、処理命令用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、処理命令は無視されて、エレメントは作成されません。 |
不透明エレメント | いいえ | いいえ | ブランク | XMLNSC パーサーによって不透明解析されるキュー・メッセージ内のエレメントのリストを指定するときに、このプロパティーを使用します。 不透明解析が実行されるのは、妥当性検査が使用不可に設定されている場合のみ (つまり、「妥当性検査」が「なし」の場合) です。妥当性検査が使用可能な場合、「不透明エレメント」で指定される項目は無視されます。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
トランザクション・モード | いいえ | いいえ | はい | このプロパティーは、着信メッセージを同期点下で受信するかどうかを制御します。 このメッセージの処理方法についてのトランザクション特性を定義するには、リストから「トランザクション・モード」の値を選択します。
|
生成モード | いいえ | いいえ | メッセージ | このプロパティーは、入力ツリーからのメッセージのどの部分がコピーされるかを制御します。 リストから「生成モード」の値を選択して、出力メッセージに入っているどのコンポーネントが MQGet ノード内で生成され、どのコンポーネントが 入力メッセージから取得されるかを定義します。
|
メッセージのコピー | いいえ | いいえ | なし | このプロパティーは、入力ツリーからのメッセージのどの部分がコピーされるかを制御します。 「生成モード」を「メッセージ」または「メッセージと LocalEnvironment」のどちらかに設定した場合、「メッセージのコピー」の値をリストから選択して、メッセージのどの部分が MQGet ノード内で生成され、どの部分が 入力メッセージから取得されるかを定義します。
|
ローカル環境のコピー | いいえ | いいえ | LocalEnvironment 全体のコピー | このプロパティーは、ローカル環境がどのように出力メッセージにコピーされるかを制御します。 「生成モード」 を 「LocalEnvironment」 または 「メッセージと LocalEnvironment」 のどちらかに設定した場合、「ローカル環境のコピー」 の値をリストから選択して、ローカル環境のどの部分が MQGet ノード内で生成され、どの部分が入力メッセージから取得されるかを定義します。
|
待機間隔 (ms) | はい | いいえ | 1000 | キュー・メッセージをメッセージ・キューから取得できるまで待機する最大時間をミリ秒で示します。 「待機間隔 (ミリ秒)」プロパティーの値を指定して、 MQGET 呼び出しからメッセージを受け取るための待機時間をミリ秒単位で設定します。 0 を選択すると待機間隔が無効になり、メッセージの待機時間はなくなります。 「待機間隔 (ms)」を負の値にすることはできません。 値を指定しない場合、デフォルト値の 1000 ミリ秒が使用されます。 |
最小メッセージ・バッファー・サイズ (KB) | はい | いいえ | 4 | 取得バッファーの最小サイズをキロバイト単位で示します。
このプロパティーの最小値は、1 キロバイトです。 このプロパティーの値を指定して、MQGET 呼び出しのための初期バッファーのサイズを指定します。 このバッファーは自動的に拡張して任意のサイズのメッセージを受け入れますが、メッセージが大きくなる可能性がある場合は、適切な値を指定して、バッファーをサイズ変更する頻度を低くしてください。 値を指定しない場合、バッファーのサイズは 4 キロバイトになります。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
入力 MQMD のロケーション | いいえ | いいえ | InputRoot.MQMD | MQGET に使用する MQMD が位置する入力メッセージ・アセンブリー内の場所。 デフォルトの場所は InputRoot.MQMD です。 |
入力 MQ パラメーターのロケーション | いいえ | いいえ | InputLocalEnvironment.MQ.GET | WebSphere MQ パラメーター (初期バッファー・サイズや MQGMO オーバーライドなど) が位置する、入力メッセージ・アセンブリー内の場所。 デフォルトの場所は InputLocalEnvironment.MQ.GET です。 |
相関 ID で取得 | いいえ | いいえ | 選択されていない | このチェック・ボックスを選択すると、指定の相関 ID があるメッセージだけが取得されます。 「相関 ID で取得」を選択した場合、検索するメッセージの「CorrelId」フィールドは 「入力 MQMD のロケーション」の「CorrelId」フィールドと一致する必要があります。 デフォルトでは、このチェック・ボックスはクリアされています。 「CorrelId」フィールドを MQCI_NONE に設定すると、「相関 ID で取得」を選択しなかった場合と同じ効果があります。 |
メッセージ ID で取得 | いいえ | いいえ | 選択されていない | このチェック・ボックスを選択すると、指定のメッセージ ID があるメッセージだけが取得されます。 「メッセージ ID で取得」を選択した場合、検索するメッセージの「MsgId」フィールドは 「入力 MQMD のロケーション」の「MsgId」フィールドと一致する必要があります。 デフォルトでは、このチェック・ボックスはクリアされています。 |
すべての入力 MQMD フィールドの使用 | いいえ | いいえ | 選択されていない | 「すべての入力 MQMD フィールドの使用」を選択した場合、「入力 MQMD のロケーション」のすべての MQMD フィールドが、メッセージの検索で使用されます。 MQMD ビット・ストリームが「入力 MQMD のロケーション」にある場合、ビット・ストリーム内のすべてのフィールドが使用されます。 検索されるメッセージの MQMD が、これらのフィールドに一致することを確認してください。 デフォルトでは、このチェック・ボックスはクリアされています。 入力 MQMD を指定しない場合、デフォルトの MQMD が使用されます。 入力 MQMD を指定する場合、以下の変更の後でデフォルトの MQMD が使用されます。
|
参照のみ | いいえ | いいえ | 選択されていない | このプロパティーは、メッセージが読み取られたら、キューから除去するかどうかを制御します。 このチェック・ボックスを選択すると、メッセージは読み取られても、キューから除去されません。 「参照のみ」を選択し、メッセージが読み取られるときに、キューに保存されるように指定します。 |
参照カーソルのリセット | いいえ | いいえ | 選択されていない | このプロパティーを設定できるのは、「参照のみ」を選択した場合に限られます。 「参照カーソルのリセット」を選択すると、
ノードは MQ キューの開始から参照します (つまり、MQGMO_BROWSE_FIRST MQ 取得オプションが指定されます)。 このプロパティーを選択しない場合は、ノードは MQ キューの現行カーソル位置から参照します (つまり、MQGMO_BROWSE_NEXT MQ 取得オプションが指定されます)。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
出力データのロケーション | いいえ | いいえ | OutputRoot | このプロパティーは、出力データが配置される場所を指定します。 このフィールドをブランクのままにした場合、デフォルトとして OutputRoot が使用されます。
出力メッセージ・ツリー内でキュー・メッセージのビット・ストリングから構文解析されたエレメントが保管される開始位置を入力してください。 このロケーションにあるすべてのエレメントは削除されて、デフォルト動作では入力ツリー・メッセージがキュー・メッセージに置き換わります。 入力ツリーから伝搬したメッセージに応答を挿入するために、 メッセージ・ツリー内にノードを作成するための新規フィールド・リファレンスを含む、 任意の有効な ESQL フィールド・リファレンス (このリファレンスには式を含めることができます) を入力できます。 例えば、OutputRoot.XMLNS.ABC.DEF および Environment.GotReply は有効なフィールド・リファレンスです。 詳細については、MQGet ノードを使用する要求-応答シナリオを参照してください。 キュー・メッセージのビット・ストリングが構文解析されてメッセージ・ツリーの内容が作成されるとき、ノードの「入力メッセージの構文解析」プロパティーに指定したメッセージ・プロパティーが使用されます。 |
結果データのロケーション | いいえ | いいえ | ResultRoot | このプロパティーは、どのサブツリー (キュー・メッセージの) を使用するかを指定します。 このフィールドをブランクのままにした場合、デフォルトとして ResultRoot が使用されて、キュー・メッセージ全体が使用されます。 例えば、ResultRoot.MQMD.ReplyToQ を指定した場合は、そのサブツリーだけが使用されます。 このプロパティーを設定して、キュー・メッセージ内のどのサブツリーが出力メッセージ内に入れられるかを制御します。 例えば、キュー・メッセージから MQMD だけが必要であれば、ResultRoot.MQMD を使用します。その後、このサブツリーは、「出力データのロケーション」で指定したロケーションに配置されます。 |
出力 MQ パラメーターのロケーション | いいえ | いいえ | OutputLocalEnvironment.MQ.GET | このプロパティーは、出力 WebSphere MQ パラメーターが配置される場所を指定します。 このフィールドをブランクのままにした場合、デフォルトとして OutputLocalEnvironment.MQ.GET が使用されます。 更新された値が下流のノードで可視となるようにするために、
「生成モード」を「LocalEnvironment」が含まれるように設定する必要があります。 デフォルトの場所は、OutputLocalEnvironment.MQ.GET です。 このプロパティーを設定して、CC (完了コード)、RC (理由コード)、Browsed 標識、および他の WebSphere MQ パラメーター (MQGET 呼び出しで使用される MQMD など) が、出力ツリー内のどこに配置されるかを制御します。 |
警告データのロケーション | いいえ | いいえ | OutputRoot | このプロパティーは、MQGET から警告コードが戻された場合に、出力データが配置される場所を指定します。 このフィールドをブランクのままにした場合、デフォルトとして OutputRoot が使用されます。 このプロパティーを設定して、MQGET 呼び出しが警告コードを戻すときにキュー・メッセージがどこに配置されるかを制御します。 任意の有効な ESQL フィールド・リファレンスを入力することができます (「出力データのロケーション」プロパティーについての説明を参照してください)。 このロケーションに配置されるデータは常に、本体が BLOB エレメントの、完全な結果ツリーとなります。 「結果データのロケーション」 は、警告データには使用されません。 |
出力メッセージ・アセンブリーへのメッセージ内容の組み込み | いいえ | いいえ | 選択されている | このプロパティーは、出力メッセージ・アセンブリーには結果データまたは警告データを必要としないことを指定します。 このチェック・ボックスを選択すると、ノードはキュー上でメッセージを、その内容を完全に読み取ったり構文解析したりせずに入手または参照します。 「出力メッセージ・アセンブリーにメッセージの内容を組み込む」を選択しても、メッセージの内容が出力ツリーに組み込まれるとは限りません。なぜなら、組み込まれるかどうかは、「生成モード」プロパティーのような他のノード・プロパティーによって決まるからです。 「出力メッセージ・アセンブリーにメッセージの内容を組み込む」のチェックを外して、出力メッセージ・アセンブリーには結果データまたは警告データを必要としないことを指定します。 このアクションはキュー上のメッセージを、内容を読み取ったり構文解析したりせずに、入手または参照します。 |
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
妥当性検査 | いいえ | はい | なし | このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は、「なし」、「内容」、 「内容と値」、および「継承」です。 | validateMaster |
失敗時の処置 | いいえ | いいえ | 例外 | このプロパティーは、妥当性検査が失敗した場合の動作を制御します。 「妥当性検査」を「内容」または「内容と値」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」、「ローカル・エラー・ログ」、「例外」、および「例外リスト」です。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |