JMSInput ノードを使用して、JMS 宛先からメッセージを受け取ります。JMS 宛先は、JMS プロバイダーへの接続を介してアクセスされます。
このトピックには、以下のセクションが含まれています。
JMSInput ノードは JMS メッセージ・コンシューマーと同じように機能して、Java Message Service Specification、バージョン 1.1 (Java Message Service Specification, version 1.1) で定義された 6 つのメッセージ・タイプのすべてを受け取ることができます。メッセージは、JMS 仕様で説明されているメソッド呼び出しを使用して受け取られます。
JMSInput ノードはパレットの JMS ドロワーに含まれていて、ワークベンチ では次のアイコンによって表されます。
JMS プロバイダーへの接続から受け取ったメッセージを処理するメッセージ・フローは、 常に JMSInput ノードで開始する必要があります。 JMSInput ノードで開始されるメッセージ・フローに出力ノードを組み込む場合には、 サポートされるいずれかの出力ノード (ユーザー定義の出力ノードを含む) を使用できます。JMSOutput ノードを組み込む必要はありません。 ただし、JMSOutput ノードを組み込まない場合、JMSMQTransform ノードを組み込んで、出力ノードが予期する形式にメッセージを変換する必要があります。
JMS メッセージを伝搬させてサブフローとして使用するメッセージ・フローを作成する場合には、標準入力ノードを使用することはできず、JMSInput ノードのインスタンスを最初のノードとして使用して、サブフロー用の In ターミナルを作成する必要があります。
export MQSI_LIBPATH32=$MQSI_LIBPATH32:/usr/mqm/lib:/usr/mqm/java/lib
多数の JMS プロバイダー用の構成可能サービスが定義されています。事前定義サービスのうちの 1 つを選択できますが、新規プロバイダーまたは既存プロバイダーのうちの 1 つのための新しいサービスを作成することもできます。
mqsireportproperties brokerName -c AllTypes -o AllReportableEntityNames -r
プロバイダーのプロパティーを表示するには mqsireportproperties コマンドを使用し、プロパティーを設定または変更するには mqsichangeproperties コマンドを使用します。
正常に受信したメッセージごとに、JMSInput ノードはそのメッセージを Out ターミナルにルーティングします。このアクションが失敗する場合、メッセージが再試行されます。ノードの 「バックアウトしきい値」プロパティーによって定義されている再試行しきい値の有効期限に達した場合、メッセージは Failure ターミナルにルーティングされます。 ノードを Failure ターミナルに接続し、この状態を処理することができます。
障害パス内で例外が起きた場合、試行回数が「バックアウトしきい値」の 2 倍になるまで、そのパスが再試行されます。 その限度を超えた場合、メッセージは「バックアウト宛先」に入れられます。
ノードを Failure ターミナルに接続しなかった場合、メッセージは「バックアウト宛先」に書き込まれます。 「バックアウト宛先」を定義しなかった場合、ノードは BIP4669 エラー・メッセージを発行して、以降の入力の処理を停止します。
メッセージ・フロー内のどこかで例外が生成された後、JMSInput ノードによってメッセージがキャッチされる場合、メッセージは Catch ターミナルにルーティングされます。ノードを Catch ターミナルに接続しなかった場合、その問題が解決されるかまたはバックアウトしきい値に到達するまで、ノードはそのメッセージをバックアウトして再配送します。「バックアウト宛先」を定義しない場合、ノードは BIP4669 エラー・メッセージを発行して、以降の入力の処理を停止します。
メッセージ・フローに JMSInput ノードを組み込む場合、「トランザクション・モード」で設定した値が、メッセージを同期点下で受信するかどうかを定義します。
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 またはバージョン 6.0 フィックスパック 1) であることを確認してください。
ブローカーと JMS プロバイダーの両方に同一のキュー・マネージャーを使用するには、WebSphere MQ インストールが必要な最低限のレベルであることを確認してください。XA がブローカーとプロバイダー両方に対して同一のキュー・マネージャーを使用するには、WebSphere MQ バージョン 6.0 フィックスパック 1 以上が必要です。
JMS プロバイダーの同期点制御は、ブローカーのキュー・マネージャーの RRS 同期点調整によって管理されます。.ini ファイルを変更する必要はありません。
JMSInput ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。ノードのプロパティーを「プロパティー」ダイアログに表示するには、ノードをダブルクリックするか、またはノードを右クリックしてから「プロパティー」をクリックします。 デフォルト値が定義されていないすべての必須プロパティーには、アスタリスクのマークが付きます。
ターミナル | 説明 |
---|---|
Failure | エラーが発生した場合にメッセージがルーティングされる出力ターミナル。 「妥当性検査」プロパティーが設定されている場合でも、このターミナルに伝搬されるメッセージは妥当性検査が行われません。 |
Out | 正常に取り出された場合に、メッセージがルーティングされる出力ターミナル。 |
Catch | 例外がダウンストリームで生成され、ノードによってキャッチされた場合に、 メッセージがルーティングされる出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できます)。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ、JMSInput。 | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
初期コンテキスト・ファクトリー | はい | はい | com.sun.jndi.fscontext. RefFSContextFactory | JNDI ネーム・スペースの開始点。
「初期コンテキスト・ファクトリー」値を入力します。 JMS アプリケーションは初期コンテキストを使用して、JMS プロバイダーの JNDI 管理対象オブジェクトを取得および検索します。 デフォルト値は com.sun.jndi.fscontext.RefFSContextFactory であり、これは WebSphere MQ JMS プロバイダー用の、ファイル・ベースの初期コンテキスト・ファクトリーを定義します。 JMS プロバイダーの初期コンテキスト・ファクトリーの名前を識別するには、JMS プロバイダーの資料を参照してください。 |
ロケーション JNDI バインディング | はい | はい | バインディング・ファイルのシステム・パスまたは LDAP ロケーション。
バインディング・ファイルには、JMSInput ノードで使用される JNDI 管理対象オブジェクトの定義が含まれています。 「ロケーション JNDI バインディング」の値を入力するとき、それが以下の指示に従っていることを確認してください。
JNDI 管理対象オブジェクトのバインディング・ファイルの作成方法については、JMS プロバイダーの資料を参照してください。 |
|
接続ファクトリー名 | はい | はい | JMSInput ノードによって JMS プロバイダーへの接続を作成するために使用される、接続ファクトリーの名前。この名前は、バインディング・ファイル内にすでに存在している必要があります。 | |
バックアウト宛先 | いいえ | はい | エラーによりメッセージ・フローがメッセージを処理できないとき、 そしてメッセージを入力の宛先から除去する必要があるときに、JMSInput ノードが入力メッセージをこの宛先に送ります。 バックアウト宛先名は、バインディング・ファイル内に存在している必要があります。 | |
バックアウトしきい値 | いいえ | はい | 0 | 再配送された入力メッセージがバックアウト宛先にいつ入れられるかを制御する値。例えば、この値が 3 の場合、JMS プロバイダーはメッセージの入力宛先への配送を 3 回試行します。3 回目の配送の試行後に、メッセージは入力宛先から除去されて、バックアウト宛先に送られます。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
トランザクション・モード | はい | いいえ | なし | このプロパティーは、着信メッセージを外部同期点の下、ローカル同期点の下、または同期点外のいずれで受信するかを制御します。
|