WebSphere® MQ Enterprise Transport を使用してブローカーに接続し、MQI および AMI アプリケーション・プログラミング・インターフェースを使用するクライアントへメッセージを送信するには、MQOutput ノードを使用します。
このトピックには、以下のセクションが含まれています。
MQOutput ノードは、出力メッセージをメッセージ・フローから WebSphere MQ キューに送達します。 このノードは、MQPUT を使用して、指定する宛先キュー (複数も可) にメッセージを書き込みます。
適切な場合には、キューを WebSphere MQ クラスター・キューまたは共有キューとして定義します。 WebSphere MQ クラスター・キューを使用する場合には、キュー・マネージャー名を空にしておいてください。
MQOutput ノードを構成して、ブローカーのキュー・マネージャーからアクセス可能な任意のキュー・マネージャーで定義された特定の WebSphere MQ キューに、またはメッセージに関連付けられたローカル環境で識別される宛先に、メッセージを書き込むことができます。
他のプロパティーを設定すると、適切な MQPUT オプションを設定できるので、メッセージを送信する方法を制御できます。例えば、メッセージをトランザクション制御下で処理するように要求できます。 さらに WebSphere MQ が必要に応じて、メッセージをキュー・マネージャーでいくつかのセグメントに分けるように指定できます。
サブフローとして使用するメッセージ・フローを作成する場合には、標準出力ノードを使用することはできません。Outputノードのインスタンスを使用して、メッセージを伝搬するサブフロー用の Out ターミナルを作成します。
メッセージ・フローでメッセージを WebSphere MQ キューに送信したくない場合には、サポートされる別の出力ノードを選択します。
MQOutput ノードは、メッセージ・ツリーに MQMD (WebSphere MQ メッセージ記述子) ヘッダーがあるかどうかを確認します。 MQMD ヘッダーがない場合は、MQOutput ノードはメッセージ・ツリーに MQMD ヘッダーを作成し、これに MQMD デフォルト・プロパティーを読み込みます。 MQMD ヘッダーが検出された場合は、MQOutput ノードは、それが WebSphere MQ タイプ・ヘッダーであることを確認します。MQ タイプ・ヘッダーでない場合は、「メッセージ・コンテキスト」プロパティーが「デフォルト」に設定されます。 MQOutput ノードは、メッセージ・ツリー内のその他のトランスポート・ヘッダーを、データとして処理します。 そのようなヘッダーがメッセージ本体の一部として必要でない場合は、変換ノードを使用して、MQOutput ノードの前にメッセージ・ツリーからそれらのヘッダーを削除します。 メッセージ・ツリーが JMS をソースとする場合は、JMSMQTransform ノードを使用して、MQ と互換性があるメッセージ・ツリーを構成できます。 詳細については、JMS メッセージの変換を参照してください。
MQOutput ノードは、パレットの 「WebSphere MQ」ドロワーに含まれていて、WebSphere Message Broker Toolkit 内では、次のアイコンによって表されます。
このノードが使用される方法に関しては、次のサンプルを参照してください。
サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
このノードの使用方法を示す例として、定期的に株価の更新をパブリッシュするようなパブリッシング・アプリケーションを作成したと仮定します。 アプリケーションは MQInput ノード上のブローカーにメッセージを送信し、メッセージ・フローは Publication ノードを通して、パブリケーションを複数のサブスクライバーに対して使用可能にします。 特定の株式に変更が生じるたびに新しい出力メッセージを作成するよう Compute ノードを構成し、このノードを MQOutput ノードに接続して、この株式の価格に変動が生じるたびにこれを記録します。
WrittenDestination = (
MQ = (
z`DestinationData = (
queueName = 'OUT'
queueManagerName = 'MYQUEUEMANAGER'
replyIdentifier = X'4d...2e'
msgId = X'3c...2c'
correlId = X'2a...00'
GroupId = X'3a...00'
)
)
)
In ターミナルを、バインドされるアウトバウンド・メッセージのルーティング元のノードに接続します。
メッセージをさらに処理したり、エラーを処理したり、あるいはメッセージを追加の宛先に送信するために、このノードの Out ターミナルまたは Failure ターミナルをこのメッセージ・フローの別のノードに接続します。
メッセージ・フローで集約を使用する場合には、出力ターミナルを使用する必要があります。
MQMD.Report = 0;
MQMD.PutApplType = MQAT_BROKER;
MQMD.PutDate = Taken from current Timestamp
MQMD.PutTime = Taken from current Timestamp
MQMD.PutApplName = MsgTree.MQMD.ReplyToQMgr (first 28 chars)
MQMD.Version
MQMD.Format
MQMD.Priority
MQMD.Persistence
MQMD.Expiry
MQMD.Encoding
MQMD.CodedCharSetId
MQMD.GroupId
MQMD.MsgSeqNumber
MQMD.Offset
MQMD.MsgFlags
MQMD.OriginalLength
IF MsgTree.MQMD.MsgType = MQMT_REQUEST THEN
MQMD.MsgType = MQMT_REPLY;
IF Nodes Message Context is Default, PassAll or PassIdentity THEN
MQMD.UserIdentifer = MsgTree.MQMD.UserIdentifier;
IF MsgTree.MQMD.Report contains MQRO_PASS_CORREL_ID THEN
MQMD.CorrelId = MsgTree.MQMD.CorrelId;
ELSE
MQMD.CorrelId = MsgTree.MQMD.MsgId;
IF MsgTree.MQMD.Report contains MQRO_PASS_MSG_ID THEN
MQMD.MsgId = MsgTree.MQMD.MsgId;
ELSE
MQMD.MsgId = MQMI_NONE;
出力 MQMD 構造が構成されると、MQOutput ノードの「メッセージ・コンテキスト」は無視され、動作は「すべて設定」と同じになります。
指定変更される値は、出力 MQMD 構造の中でのみ変更されます。メッセージ・ツリー中の MQMD フォルダーは更新されません。
MQOutput ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。
MQOutput ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | メッセージの出力キューへの書き込みに失敗した場合にメッセージがルーティングされる出力ターミナル。 |
Out | メッセージが正常に出力キューに入れられた場合に、メッセージがルーティングされる先の出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力する必要がある場合、アスタリスクのマークが付きます)。C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
MQOutput ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ、MQOutput | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
MQOutput ノードの「基本」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
キュー・マネージャー名 | いいえ | はい | 「キュー名」プロパティーで指定されたこの出力キューを定義する WebSphere MQ キュー・マネージャーの名前を入力します。 指定されたキューが別のキュー・マネージャーで定義されているか、クラスター・キューである場合に限り、「キュー・マネージャー名」プロパティーが必要です。 それがクラスター・キューである場合、どのキュー・マネージャーがメッセージを受信するかについて規定するために、オプションで「キュー・マネージャー名」を指定することもできます。 リモート・キュー・マネージャーでキューが定義されている場合、「キュー・マネージャー名」を指定する必要があります。これは、そのリモート・キュー・マネージャーに関してブローカーのローカル・キュー・マネージャーで定義された伝送キューに一致する必要があります。 |
queueManagerName | |
キュー名 | いいえ | はい | このノードによって定義されている単一の宛先キューへ出力メッセージを送信する場合は、メッセージ・フローが送信するメッセージの送信先の WebSphere MQ 出力キューの名前を入力します。 「宛先モード」プロパティーを「キュー名」に設定した場合、「キュー名」プロパティーの値を指定する必要があります。 「宛先モード」を別の値に設定した場合は、このプロパティーは無視されます。 |
queueName |
MQOutput ノードの「拡張」プロパティーについては、次の表に説明されています。 これらのプロパティーは、メッセージのトランザクション制御と、メッセージをキューに入れる方法を定義します。 これらのプロパティーの多くは MQPUT 呼び出しのオプションにマップされます。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
宛先モード | はい | いいえ | キュー名 | 出力メッセージの送信先のキュー。
|
トランザクション・モード | はい | いいえ | 自動 | このプロパティーは、メッセージをトランザクションとして書き込むかどうかを制御します。
|
持続モード | はい | いいえ | 自動 | このプロパティーは、メッセージを持続的に書き込むかどうかを制御します。
|
新規メッセージ ID | はい | いいえ | 選択されていない | このチェック・ボックスを選択すると、WebSphere MQ が新しいメッセージ ID を生成して、MQMD の「MsgId」フィールドの内容を置き換えます。 このプロパティーは MQI の MQPMO の MQPMO_NEW_MSG_ID オプションにマップされます。 新しい ID を生成する必要がない場合は、チェック・ボックスのチェックを外します。 「要求」タブで「要求」プロパティーを選択した場合、新規メッセージ ID は引き続き生成されます。 このプロパティーをマップするオプションの詳細は、WebSphere MQ バージョン 7 インフォメーション・センター・オンラインの「アプリケーション・プログラミング・リファレンス」セクションを参照してください。 |
新規相関 ID | はい | いいえ | 選択されていない | このチェック・ボックスを選択すると、WebSphere MQ が新しい相関 ID を生成して、MQMD の CorrelId フィールドの内容を置き換えます。
このプロパティーは MQI の MQPMO の MQPMO_NEW_CORREL_ID オプションにマップされます。 新しい ID を生成する必要がない場合は、チェック・ボックスのチェックを外します。 このプロパティーをマップするオプションの詳細は、WebSphere MQ バージョン 7 インフォメーション・センター・オンラインの「アプリケーション・プログラミング・リファレンス」セクションを参照してください。 |
セグメント化可能 | はい | いいえ | 選択されていない | このチェック・ボックスを選択すると、WebSphere MQ が、キュー・マネージャー内でメッセージをいくつかのセグメントに分けます。 セグメント化が発生しないようにするには、チェック・ボックスのチェックを外します。 メッセージ・セグメンテーションの詳細については、WebSphere MQ メッセージ内のメッセージ・セグメントの送信を参照してください。 このプロパティーをマップするオプションの詳細は、WebSphere MQ バージョン 7 インフォメーション・センター・オンラインの「アプリケーション・プログラミング・リファレンス」セクションを参照してください。 |
メッセージ・コンテキスト | はい | いいえ | すべて渡す | このプロパティーは、元のコンテキストの処理方法を制御します。
セキュリティー・プロファイルが、ノードに関連付けられていて、ID の伝搬を実行するように構成されている場合、選択したコンテキストを指定変更して、発信される ID が必ず設定されるようにすることができます。 これらのプロパティーをマップするオプションの詳細は、WebSphere MQ バージョン 7 インフォメーション・センター・オンラインの「アプリケーション・プログラミング・リファレンス」セクションを参照してください。 |
代替ユーザー権限 | はい | いいえ | 選択されていない | このチェック・ボックスを選択した場合、出力メッセージの書き込み時に代替権限が使用され、MQI のオープン・オプション (MQOO) で MQOO_ALTERNATE_USER_AUTHORITY オプションが設定されます。 このチェック・ボックスを選択する場合は、キューを出力のために開く時にこのオプションを指定します。 代替ユーザー情報は、メッセージのコンテキスト情報から取り出されます。 代替ユーザー権限を指定しない場合は、チェック・ボックスのチェックを外します。 チェック・ボックスのチェックを外すと、メッセージが書き込まれる時にブローカー・サービス・ユーザー ID が使用されます。 |
MQOutput ノードの「要求」プロパティーについては、次の表に説明されています。 これらのプロパティーで、生成される各出力メッセージの特性を定義します。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
要求 | はい | いいえ | 選択されていない | このチェック・ボックスを選択した場合、MQMD 内のそれぞれの出力メッセージは要求メッセージ (MQMT_REQUEST) として生成され、メッセージ ID フィールドがクリアされて (MQMI_NONE に設定されて)、新しい ID が WebSphere MQ によって生成されます。
すべての出力メッセージが要求メッセージとしてマークされないように指示するには、このチェック・ボックスのチェックを外します。 「宛先モード」を「キューへ応答」に設定すると、このチェック・ボックスは選択できません。 「新規メッセージ ID」チェック・ボックスが「拡張」タブで選択されていない場合でも、新規メッセージ ID が生成されます。 |
|
応答先キュー・マネージャー | いいえ | はい | 「応答先キュー」に指定された出力キューを定義する WebSphere MQ キュー・マネージャーの名前。 この名前は、それぞれの出力メッセージの MQMD に応答先キュー・マネージャーとして挿入されます。 | replyToQMgr | |
応答先キュー | いいえ | はい | この要求に対する応答が置かれる WebSphere MQ キューの名前。 この名前は、それぞれの出力メッセージの MQMD に応答先キューとして挿入されます。 | replyToQ |
MQOutput ノードの「妥当性検査」プロパティーについては、次の表に説明されています。
これらのプロパティーの詳細については、妥当性検査プロパティーを参照してください。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
妥当性検査 | いいえ | はい | 継承 | このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は、「なし」、「内容と値」、「内容」、および「継承」です。 | validateMaster |
失敗時の処置 | いいえ | いいえ | 例外 | このプロパティーは、妥当性検査が失敗した場合の動作を制御します。 「妥当性検査」を「内容」または「内容と値」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」、「ローカル・エラー・ログ」、「例外」、および「例外リスト」です。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |