JMSOutput ノードを使用して、JMS 宛先にメッセージを送信します。
このトピックには、以下のセクションが含まれています。
JMSOutput ノードは JMS メッセージ・プロデューサーとして機能して、Java Message Service Specification、バージョン 1.1 (Java Message Service Specification, version 1.1) で定義された 6 つのメッセージ・タイプのすべてをパブリッシュすることができます。 メッセージは、JMS 仕様で説明されているメソッド呼び出しを使用してパブリッシュされます。
JMSOutput ノードはパレットの JMS ドロワーに含まれていて、ワークベンチ では次のアイコンによって表されます。
JMS プロバイダーへの接続から受け取ったメッセージを処理するメッセージ・フローは、常に JMSInput ノードで開始する必要があります。 JMSOutput ノードをメッセージ・フロー内に含める場合、JMSInput ノードを含める必要はありませんが、JMSInput ノードを組み込まない場合 MQJMSTransform ノードを組み込んで、JMSOutput ノードで規定されている形式にメッセージを変換する必要があります。
JMS メッセージを伝搬して、サブフローとして使用するメッセージ・フローを作成する場合、JMSOutput ノードのインスタンスを最終ノードとして使用して、そのサブフロー用の Out ターミナルを作成します。
SET OutputRoot.JMSTransport.Transport_Folders.Message_MetaData.PayloadType=Payload value
JMS メッセージ・ツリーおよびペイロード値について詳しくは、JMS Transport 全体でのメッセージの表記を参照してください。
多数の JMSProvider 用の構成可能サービスが定義されています。 事前定義サービスのうちの 1 つを選択できますが、新規プロバイダーまたは既存プロバイダーのうちの 1 つのための新しいサービスを作成することもできます。
mqsireportproperties brokerName -c AllTypes -o AllReportableEntityNames -r
プロバイダーのプロパティーを表示するには mqsireportproperties コマンドを使用し、プロパティーを設定または変更するには mqsichangeproperties コマンドを使用します。
メッセージの送信側が受信側に対してメッセージへの応答を希望する場合があります。その場合、JMSOutput メッセージは出力メッセージを応答として扱い、要求メッセージの JMSReplyTo プロパティーから得られた値に応じてそれをルーティングします。MbMessage の JMSReplyTo プロパティーの値を、例えば Compute ノードまたは JavaCompute ノードを使って変更することができます。このアクションにより、JMSOutput ノードからのメッセージの動的ルーティングが可能になります。 ノードは、MbMessage ツリーの JMSReplyTo フィールドに設定される JMS 宛先名にメッセージを送信します。
queue://QM_mn2/myJMSQueue4この場合の値は、WebSphere MQ JMS プロバイダーの JMS 宛先の、JMS プロバイダー固有の表記になります。
jndi:¥¥jmsQ4jmsQ4 は、JNDI 管理対象オブジェクトの名前です。
この方式を使用すると、JNDI で管理対象オブジェクトを検索する必要が生じるため、パフォーマンスに若干の影響を及ぼす可能性があります。
JMSOutput ノードが出力メッセージに JMSReplyTo プロパティーを動的に設定できるようにするには、「基本」 タブの 「宛先の応答」 フィールドをブランクのままにし、Compute ノードまたは JavaCompute ノードを使って MbMessage に JMSReplyTo 値を設定します。
ノードは JNDI 管理対象オブジェクトの名前 (「パブリケーション・トピック」または「宛先キュー」のどちらかに指定したもの) を解決し、その JMS 宛先にメッセージを送信します。
メッセージ・フローに JMSOutput ノードを組み込む場合、「トランザクション・モード」で設定した値が、メッセージを同期点下で送信するかどうかを定義します。
install_dir/bin/ JMSSwitch.dll XAOpenString=Initial Context,location JNDI,Optional_parms ThreadOfControl=THREAD
install_dir/bin/ JMSSwitch.dll XAOpenString=Initial Context,location JNDI,Optional_parms ThreadOfControl=THREAD
XAResourceManager: Name=Jms_Provider_Name SwitchFile=/install_dir/bin/JMSSwitch.so XAOpenString=Initial Context,location JNDI,Optional_parms ThreadOfControl=THREADここで、
オプション・パラメーターはコンマで区切られていて、定位置です。 そのため、存在しないパラメーターはコンマで表す必要があります。
install_dir/classes/xarecovery.jar
install_dir/bin
詳しくは、WebSphere MQ バージョン 6 インフォメーション・センター・オンラインの「System Administration Guide」セクション、あるいは WebSphere MQ ライブラリー Web ページのバージョン 5.3 ブックを参照してください。
ブローカーと JMS プロバイダーの両方で同じキュー・マネージャーを使用するには、インストールされている WebSphere MQ が、必要最低レベルのバージョン 5.3 CSD12
JMS プロバイダーの同期点制御は、ブローカーのキュー・マネージャーの RRS 同期点調整によって管理されます。.ini ファイルを変更する必要はありません。
JMSOutput ノードの In ターミナルを、ルーティングされるアウトバウンド・メッセージの元になるノードに接続します。
メッセージをさらに処理する場合、エラーを処理する場合、あるいはメッセージを追加の宛先に送信する場合は、JMSOutput ノードの Out ターミナルをメッセージ・フローの別のノードに接続します。
JMSOutput ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。ノードのプロパティーを「プロパティー」ダイアログに表示するには、ノードをダブルクリックするか、またはノードを右クリックしてから「プロパティー」をクリックします。 デフォルト値が定義されていないすべての必須プロパティーには、アスタリスクのマークが付きます。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | エラーが発生した場合にメッセージがルーティングされる出力ターミナル。 「妥当性検査」プロパティーが設定されている場合でも、このターミナルに伝搬されるメッセージは妥当性検査が行われません。 |
Out | WebSphere MQ キューからメッセージが正常に取り出された場合に、 メッセージがルーティングされる出力ターミナル。 |
Catch | 例外がダウンストリームでスローされ、ノードによってキャッチされた場合に、メッセージがルーティングされる出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能かどうかを示します (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できます)。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ、JMSOutput。 | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
初期コンテキスト・ファクトリー | はい | はい | com.sun.jndi.fscontext. RefFSContextFactory | このプロパティーが JNDI ネーム・スペースの開始点です。
JMS アプリケーションは初期コンテキストを使用して、JMS プロバイダーの接続ファクトリーおよびキューまたはトピック・オブジェクトを取得および検索します。
「初期コンテキスト・ファクトリー」値を入力します。 JMS アプリケーションは初期コンテキストを使用して、JMS プロバイダーの JNDI 管理対象オブジェクトを取得および検索します。 デフォルト値は com.sun.jndi.fscontext.RefFSContextFactory であり、これは WebSphere MQ JMS プロバイダー用の、ファイル・ベースの初期コンテキスト・ファクトリーを定義します。 JMS プロバイダーの初期コンテキスト・ファクトリーの名前を識別するには、JMS プロバイダーの資料を参照してください。 |
ロケーション JNDI バインディング | いいえ | はい | バインディング・ファイルのシステム・パスまたは LDAP ロケーション。
バインディング・ファイルには、JMSOutput ノードで使用される JNDI 管理対象オブジェクトの定義が含まれています。 「ロケーション JNDI バインディング」の値を入力するとき、
それが以下の指示に従っていることを確認してください。
JNDI 管理対象オブジェクトのバインディング・ファイルの作成方法については、JMS プロバイダーに付属の資料を参照してください。 |
|
接続ファクトリー名 | いいえ | はい | JMSOutput ノードによって JMS プロバイダーへの接続を作成するために使用される、接続ファクトリーの名前。この名前は、バインディング・ファイル内にすでに存在している必要があります。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
新規相関 ID | いいえ | はい | メッセージ用の新規の相関 ID を生成するのに JMSOutput ノードが必要な場合、「新規相関 ID」を選択します。 チェック・ボックスをクリアしたままにした場合は、メッセージ・ツリーの JMSTransport_Header_Values セクション内の JMSCorrelationID フィールドから、出力メッセージの相関 ID が取り込まれます。 | |
トランザクション・モード | はい | いいえ | なし | このプロパティーは、着信メッセージを同期点下で受信するかどうかを制御します。
|
デリバリー・モード | いいえ | はい | 非持続 | このプロパティーは、JMS プロバイダーがメッセージに使用する持続モードを制御します。有効な値は以下のとおりです。
|
メッセージ有効期限 (ms) | いいえ | はい | 0 | このプロパティーは、JMS プロバイダーが出力 JMS メッセージを保持する期間をミリ秒単位で制御します。デフォルト値の 0 は、メッセージの有効期限が切れないことを示します。 |
メッセージ優先順位 | いいえ | はい | 4 | このプロパティーはメッセージに相対重要度を割り当て、受信 JMS クライアント・アプリケーションまたは JMSOutput ノードによるメッセージ選択に使用できます。 メッセージ優先順位として有効な値は、0 (最低優先順位) から 9 (最高優先順位) までです。デフォルト値は、中間の優先順位を示す 4 です。 0 から 4 までの範囲の優先順位は、通常の配信に関連したものです。5 から 9 までの範囲の優先順位は、急ぎの配信のための目盛りです。 |