このトピックには、以下のセクションが含まれています。
JMSInput ノードを使用して、JMS 宛先からメッセージを受け取ります。 JMS 宛先は、JMS プロバイダーへの接続を介してアクセスされます。 JMSInput ノードは JMS メッセージ・コンシューマーと同じように機能して、 Java Message Service Specification、バージョン 1.1 (Java Message Service Specification, version 1.1) で定義された 6 つのメッセージ・タイプのすべてを受け取ることができます。 メッセージは、JMS 仕様で説明されているメソッド呼び出しを使用して受け取られます。
ワークベンチでは、JMSInput ノードは次のアイコンで表されます。
JMSInput ノードは、JMS メッセージ・ツリーと共に、メッセージを受け取り、伝搬します。 JMSInput ノードのプロパティーを設定すると、JMS メッセージの受信方法を制御できます。
JMSInput ノードは、次のメッセージ・ドメインのメッセージを処理します。
JMS プロバイダーへの接続から受け取ったメッセージを処理するメッセージ・フローは、 常に JMSInput ノードで開始する必要があります。 JMSInput ノードで開始されるメッセージ・フローに出力ノードを組み込む場合には、 サポートされるいずれかの出力ノード (ユーザー定義の出力ノードを含む) を使用できます。 JMSOutput ノードを組み込む必要はありません。 ただし、JMSOutput ノードを組み込まない場合、JMSMQTransform ノードを組み込んで、出力ノードが予期する形式にメッセージを変換する必要があります。
JMS メッセージを伝搬させてサブフローとして使用するメッセージ・フローを作成する場合には、 標準入力ノードを使用することはできず、JMSInput ノードのインスタンスを最初のノードとして使用して、 サブフロー用の In ターミナルを作成する必要があります。
分散プラットフォームでは、java .jar ファイルおよび JMS プロバイダー・クライアントの ネイティブ・ライブラリーをブローカー共用クラス・ディレクトリーにコピーします。 例えば、Windows では、C:¥Documents and Settings¥All Users¥Application Data¥IBM¥MQSI¥shared-classes などです。 これにより、JMS ノードの java クラスが正しく設定されることを確認できます。
z/OS では、共用クラスのディレクトリーはありません。 その代わりに、それぞれの JMS プロバイダー java .jar ファイルを、 ブローカーの PDS (区分データ・セット) の BIPPROF メンバー内にあるクラス・パスに指定する必要があります。 その後、LIBPATH を任意のネイティブ・ライブラリーに更新してから、BIPGEN JCL ジョブをサブミットしてブローカー ENVFILE を更新します。
JMSInput ノードのインスタンスをメッセージ・フローに入れると、JMSInput ノードを構成することができます。 エディター・ビューでノードを右クリックし、 「プロパティー」をクリックします。 ノードの基本プロパティーが、プロパティー・ダイアログに表示されます。
デフォルト値が定義されていないすべての必須プロパティーには、プロパティー・ダイアログでアスタリスクのマークが付きます。
以下のように JMSInput ノードを構成します。
デフォルト値は com.sun.jndi.fscontext.RefFSContextFactory であり、 これは WebSphere MQ JMS プロバイダー用の、ファイル・ベースの初期コンテキスト・ファクトリーを定義します。
JMS プロバイダーの初期コンテキスト・ファクトリーの名前を識別するには、JMS プロバイダーの資料を参照してください。
「ロケーション JNDI バインディング」の値を入力するとき、 それが以下の指示に従っていることを確認してください。
JNDI 管理対象オブジェクトのバインディング・ファイルの作成方法については、 JMS プロバイダーに付属の資料を参照してください。
XML、XMLNS、XMLNSC、JMS、MIME、および BLOB パーサーの場合、「メッセージ・セット」はブランクのままにしてください。
XML、XMLNS、XMLNSC、JMS、MIME、IDOC、および BLOB パーサーの場合、「メッセージ・タイプ」はブランクのままにしてください。
XML、XMLNS、XMLNSC、JMSMap、JMSStream、MIME、および BLOB パーサーの場合、「メッセージ形式」はブランクのままにしてください。
入力ノードがアプリケーション・プロパティーに基づいて選択しないようにする場合は、 このプロパティーをブランクのままにしてください。 メッセージ・セレクターの構成方法については、『JMS メッセージ・セレクター』を参照してください。
入力ノードが JMSTimeStamp に基づいて選択しないようにする場合は、 このプロパティーをブランクのままにしてください。
メッセージ優先順位として有効な値は、0 (最低) から 9 (最高) までです。 例えば、5 を入力して優先順位 5 のメッセージを受け取ることができます。さらに、セレクターを修飾することも可能で、例えば > 4 を入力すると優先順位が 4 以上のメッセージを受け取り、BETWEEN 4 AND 8 と入力すると優先順位の範囲が 4 から 8 までの間のメッセージを受け取ります。
入力ノードが JMSPriority に基づいて選択しないようにする場合は、 このプロパティーをブランクのままにしてください。
特定のメッセージ ID を入力するか、または条件セレクターを入力します。> WMBRK123456 と入力するとメッセージ ID が WMBRK123456 よりも大きいメッセージが戻されます。
入力ノードが JMSMessageID に基づいて選択しないようにする場合は、 このプロパティーをブランクのままにしてください。
入力ノードが JMS プロバイダーによって再送されていないメッセージだけを受け入れる場合、 FALSE を入力します。
入力ノードが JMS プロバイダーによって再送されたメッセージだけを受け入れる場合、 TRUE を入力します。
入力ノードが JMSRedelivered に基づいて選択しないようにする場合は、 このプロパティーをブランクのままにしてください。
特定の相関 ID を入力するか、または条件ストリングを入力します。 例えば、WMBRKABCDEFG は相関 ID がこの値と一致するメッセージを戻します。
入力ノードが JMSCorrelationID に基づいて選択しないようにする場合は、 このプロパティーをブランクのままにしてください。
詳細については、メッセージの妥当性検査およびMRM ドメインのメッセージの妥当性検査プロパティーを参照してください。
この値を「即時」に変更すると、 部分構文解析はオーバーライドされて、メッセージ内のすべてのものが構文解析および妥当性検査されます。 ただし、「構成」が「選択」または「メッセージ」に指定された複合タイプで、この時点で解決できないものは除きます。
設定を「完全」に変更すると、 部分構文解析はオーバーライドされて、メッセージ内のすべてのものが構文解析および妥当性検査されます。 「構成」が「選択」または「メッセージ」に指定された複合タイプで、この時点で解決できないものでは 妥当性検査障害が生じます。
「XMLNSC コンパクト・パーサーを XMLNS ドメインに使用」したい場合、 そのチェック・ボックスにチェックを入れます。
「混合内容保存モード」、「コメント保存モード」、および「処理命令保存モード」では、ドロップダウン・ボックスに以下の選択項目があります。
「キャンセル」をクリックすると、ダイアログを閉じてプロパティーに対して行った変更をすべて破棄します。
正常に受信したメッセージごとに、JMSInput ノードはそのメッセージを出力ターミナルにルーティングします。 これが失敗する場合、メッセージが再試行されます。 ノードの BackoutThreshold 属性によって定義されている再試行しきい値の有効期限に達した場合、 メッセージは failure ターミナルにルーティングされます。
ノードを failure ターミナルに接続し、この状態を処理することができます。 ノードを failure ターミナルに接続しなかった場合、メッセージはバックアウト宛先に書き込まれます。 バックアウト宛先が指定されていない場合、エラー・メッセージが発行されて、 ノードは以降の入力の処理を停止します。 エラー・メッセージは、bip4669 です。
メッセージ・フロー内のどこかで例外がスローされた後、JMSInput ノードによってメッセージがキャッチされる場合、メッセージは catch ターミナルにルーティングされます。 ノードを catch ターミナルに接続しなかった場合、その問題が解決されるかまたはバックアウトしきい値に到達するまで、ノードはそのメッセージを再配送するためにバックアウトします。
バックアウト宛先を定義することが必要です。 バックアウト宛先を定義しない場合、ノードは bip4669 エラー・メッセージを発行して、 以降の入力の処理を停止します。
メッセージ・フローに JMSInput ノードを組み込む場合、 「トランザクション・モード」で設定した値が、 メッセージを同期点下で受信するかどうかを定義します。
JMS プロバイダーは、トランザクション・サポートに必要な追加の jar ファイルを提供できます。 JMS プロバイダーの資料を参照してください。 例えば、分散 (z/OS ではない) プラットフォームで、 WebSphere MQ JMS プロバイダーは追加の jar ファイル com.ibm,mqetclient.jar を提供します。 この jar は、ブローカーの shared_classes ディレクトリーにも追加する必要があります。 このトピック内の『JMS プロバイダーのクライアントを JMS ノードで使用可能にする』を参照してください。
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ここで、
Name は、JMS プロバイダーのリソース・マネージャーを識別する、インストール済み環境によって定義された名前です。
SwitchFile は、ブローカーの bin ディレクトリーで提供される、JMSSwitch ライブラリーへのファイル・システム・パスです。
オプション・パラメーターは、コンマ区切りで定位置です。 そのため、存在しないパラメーターはコンマで表す必要があります。
install_dir/classes/xarecovery.jar
install_dir/bin
XA は、WebSphere MQ バージョン 5.3、CSD12、および WebSphere MQ バージョン 6 フィックスパック 1 まで、 ブローカーおよびプロバイダーに同じキュー・マネージャーを使用できません。
JMS プロバイダーの同期点制御は、ブローカーのキュー・マネージャーの RRS 同期点調整によって管理されます。 .ini ファイルを変更する必要はありません。
JMSInput ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
Failure | エラーが発生した場合にメッセージがルーティングされる出力ターミナル。 「妥当性検査」プロパティーが設定されている場合でも、このターミナルに伝搬されるメッセージは妥当性検査が行われません。 |
Out | WebSphere MQ キューからメッセージが正常に取り出された場合に、 メッセージがルーティングされる出力ターミナル。 |
Catch | 例外がダウンストリームでスローされ、ノードによってキャッチされた場合に、メッセージがルーティングされる出力ターミナル。 |
以下の表でノードのプロパティーを説明します。M の見出しの列は、 プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、 プロパティー・ダイアログにアスタリスクのマークが付きます)。C の見出しの列は、 プロパティーが構成可能 かどうかを示します (メッセージ・フローを bar ファイルに追加してデプロイするとき、 値を変更できます)。
JMSInput ノードの基本プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
初期コンテキスト・ファクトリー | はい | com.sun.jndi.fscontext.RefFSContextFactory | これが JNDI ネーム・スペースの開始点です。
JMS アプリケーションは初期コンテキストを使用して、JMS プロバイダーの接続ファクトリーおよびキューまたはトピック・オブジェクトを取得および検索します。
デフォルト値は、WebSphere MQ Java が JMS プロバイダーとして使用されるときのものと同じです。 |
|
ロケーション JNDI バインディング | はい | バインディング・ファイルのシステム・パスまたは LDAP ロケーション。 | ||
接続ファクトリー名 | はい | JMSInput ノードによって JMS プロバイダーへの接続を作成するために使用される、接続ファクトリーの名前。 | ||
バックアウト宛先 | いいえ | メッセージ内のエラーのためにメッセージ・フローがメッセージを処理できないときに、JMSInput ノードによって使用される宛先。 | ||
バックアウトしきい値 | いいえ | 0 | 再配送された入力メッセージがバックアウト宛先にいつ入れられるかを制御する値。 |
JMSInput ノードのデフォルト・プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
メッセージ・ドメイン | いいえ | いいえ | 着信メッセージの構文解析に使用されるドメイン。 | |
メッセージ・セット | いいえ | いいえ | 着信メッセージが定義されているメッセージ・セットの名前または ID。 | |
メッセージ・タイプ | いいえ | いいえ | 着信メッセージの名前。 | |
メッセージ形式 | いいえ | いいえ | 着信メッセージの物理フォーマットの名前。 |
JMSInput ノードの Pub/Sub プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
サブスクリプション・トピック | いいえ | いいえ | ノードがサブスクライブされたトピックの名前。 | |
永続サブスクリプション ID | いいえ | いいえ | 永続サブスクリプション・トピックの ID。 |
JMSInput ノードの Point to Point プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ソース・キュー | ノードが着信メッセージを受け取るキューの名前。 |
JMSInput ノードのメッセージ選択プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
アプリケーション・プロパティー | いいえ | アプリケーションのプロパティー値に応じてメッセージをフィルターに掛けるメッセージ・セレクター。 | ||
タイム・スタンプ | いいえ | JMSTimestamp に応じてフィルターに掛けるメッセージ・セレクター。 | ||
デリバリー・モード | いいえ | メッセージ・デリバリー・モードに応じてメッセージをフィルターに掛けるメッセージ・セレクター。 | ||
優先順位 | いいえ | メッセージ優先順位に応じてメッセージをフィルターに掛けるメッセージ・セレクター。 | ||
メッセージ ID | いいえ | メッセージ ID に応じてメッセージをフィルターに掛けるメッセージ・セレクター。 | ||
相関 ID | いいえ | 相関 ID に応じてメッセージをフィルターに掛けるメッセージ・セレクター。 |
JMSInput ノードの拡張プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
トランザクション・モード | はい | いいえ | 「なし」 | このプロパティーは、着信メッセージを外部同期点の下、ローカル同期点の下、 または同期点外のいずれで受信するかを決めるために使用されます。 有効な値は、「なし」、「ローカル」、および「グローバル」です。 |
JMSInput ノードの妥当性検査プロパティーについては、次の表に説明されています。
これらのプロパティーの詳細については、MRM ドメインのメッセージの妥当性検査プロパティーを参照してください。プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
妥当性検査 | はい | はい | 「なし」 | このプロパティーは、妥当性検査を行うかどうかを決めます。 有効な値は、「なし」、「内容」、および「内容と値」です。 |
失敗処置 | はい | いいえ | 例外 | このプロパティーは、妥当性検査が失敗した場合の動作を決めます。 「妥当性検査」を「内容」または「内容と値」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」、「ローカル・エラー・ログ」、「例外」、および「例外リスト」です。 |
すべての値制約を含める | はい | いいえ | 選択されている | このプロパティーは編集できません。 チェック・ボックスが選択されていることにより示されるデフォルトのアクションは、基本値制約検査が「内容と値」妥当性検査に含まれるということです。 |
修正 | はい | いいえ | 「なし」 | このプロパティーは編集できません。 |
JMSInput ノードの汎用メッセージ・オプションのプロパティーについては、 次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
構文解析のタイミング | はい | いいえ | 「要求時」 | このプロパティーは、入力メッセージを構文解析する時を制御します。
有効な値は、「要求時」、「即時」、および「完全」です。
このプロパティーの詳細については、要求時の構文解析を参照してください。 |
JMSInput ノードの XMLNSC パーサー・オプションのプロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 | はい | 選択されていない | 「いいえ」 | ![]() ![]() |
混合内容保存モード | はい | いいえ | 「なし」 | このプロパティーは、XMLNSC パーサーが入力メッセージ内に混合テキストを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 有効な値は、「なし」および「すべて」です。「すべて」を選択すると、 混合テキストに対してエレメントが作成されます。 「なし」を選択すると、混合テキストは無視されて、エレメントは作成されません。 |
コメント保存モード | はい | いいえ | 「なし」 | このプロパティーは、XMLNSC パーサーが入力メッセージ内にコメントを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 有効な値は、「なし」および「すべて」です。「すべて」を選択すると、 コメントに対してエレメントが作成されます。 「なし」を選択すると、コメントは無視されて、エレメントは作成されません。 |
処理命令保存モード | はい | いいえ | 「なし」 | このプロパティーは、XMLNSC パーサーが入力メッセージ内に処理命令を検出したとき、これらのメッセージ・ツリー内にエレメントを作成するかどうかを制御します。 有効な値は、「なし」および「すべて」です。「すべて」を選択すると、 処理命令に対してエレメントが作成されます。 「なし」を選択すると、処理命令は無視されて、エレメントは作成されません。 |
JMSInput ノードの説明プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |