JMSInput ノードを使用して、JMS 宛先からメッセージを受け取ります。 JMS 宛先は、JMS プロバイダーへの接続を介してアクセスされます。
このトピックには、以下のセクションが含まれています。
JMSInput ノードは JMS メッセージ・コンシューマーと同じように機能して、Java™ Message Service Specification、バージョン 1.1 で定義された 6 つのメッセージ・タイプのすべてを受け取ることができます。 メッセージは、JMS 仕様で説明されているメソッド呼び出しを使用して受け取られます。
JMSInput ノードはパレットの JMS ドロワーに含まれていて、WebSphere® Message Broker Toolkit では次のアイコンによって表されます。
サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
JMSInput ノードは、JMS メッセージ・ツリーと共に、メッセージを受け取り、伝搬します。 JMSInput ノードのプロパティーを設定すると、JMS メッセージの受信方法を制御できます。
JMS プロバイダーへの接続から受け取ったメッセージを処理するメッセージ・フローは、 常に JMSInput ノードで開始する必要があります。 JMSInput ノードで開始されるメッセージ・フローに出力ノードを組み込む場合には、サポートされるいずれかの出力ノード (ユーザー定義の出力ノードを含む) を使用できます。JMSOutput ノードを組み込む必要はありません。 ただし、JMSOutput ノードを組み込まない場合、JMSMQTransform ノードを組み込んで、出力ノードが予期する形式にメッセージを変換する必要があります。
JMS メッセージを伝搬させてサブフローとして使用するメッセージ・フローを作成する場合には、標準入力ノードを使用することはできず、JMSInput ノードのインスタンスを最初のノードとして使用して、サブフロー用の In ターミナルを作成する必要があります。
多数の JMS プロバイダー用の構成可能サービスが定義されています。 事前定義サービスのうちの 1 つを選択できますが、新規プロバイダーまたは既存プロバイダーのうちの 1 つのためのサービスを作成することもできます。 事前定義サービスは構成可能サービスのプロパティーにリストされています。
プロバイダーのプロパティーを表示するには mqsireportproperties コマンドを使用し、プロパティーを設定または変更するには mqsichangeproperties コマンドを使用します。
正常に受信したメッセージごとに、JMSInput ノードはそのメッセージを Out ターミナルにルーティングします。 このアクションが失敗する場合、メッセージが再試行されます。 ノードの 「バックアウトしきい値」プロパティーによって定義されている再試行しきい値の有効期限に達した場合、メッセージは Failure ターミナルにルーティングされます。 ノードを Failure ターミナルに接続し、この状態を処理することができます。
例外が障害パス内で起きていて、メッセージがトランザクションである場合、試行回数が「バックアウトしきい値」の 2 倍になるまで、そのパスが試行されます。 その限度を超えると、メッセージはバックアウト宛先に経路指定されます。 例外が障害パス内で起きていて、メッセージがトランザクションではない場合、メッセージは直接バックアウト宛先に経路指定されます。 ノードを Failure ターミナルに接続しなかった場合、メッセージは直接バックアウト宛先に経路指定されます。 バックアウト宛先を定義していない場合、メッセージはロールバックされます。
ブローカーまたは実行グループの再始動後に処理が再開されない場合は、ノード・プロパティーに指定されているパーサーが誤っているなど、原因についてデプロイメント・ログを確認してください。 問題を訂正し、メッセージ・フローを再デプロイしてください。 メッセージ自体が無効な場合は、入力キューからメッセージを除去して、処理を再開してください。
メッセージ・フロー内のどこかで例外が生成された後、JMSInput ノードによってメッセージがキャッチされる場合、メッセージは Catch ターミナルにルーティングされます。 ノードを Catch ターミナルに接続しなかった場合、その問題が解決されるかまたはバックアウトしきい値に達するまで、ノードはそのトランザクション・メッセージをバックアウトして再配送します。 しきい値に達した場合、メッセージはバックアウト宛先に経路指定されます。 ノードを Catch ターミナルに接続しておらず、メッセージがトランザクションではない場合、メッセージは直接バックアウト宛先に経路指定されます。 バックアウト宛先を定義していない場合、メッセージはロールバックされます。
メッセージ・フローに JMSInput ノードを組み込む場合、「トランザクション・モード」で設定した値が、メッセージを同期点下で受信するかどうかを定義します。 整合 JMS トランザクションの構成を参照してください。
JMSInput ノードを構成して、非トランザクション JMS メッセージの受信に関するバッチ肯定応答を送信できます。 バッチ・メッセージ処理のための JMSInput ノードの構成を参照してください。
JMSInput ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。 デフォルト値が定義されていないすべての必須プロパティーには、アスタリスクのマークが付きます。
ターミナル | 説明 |
---|---|
Failure | エラーが発生した場合にメッセージがルーティングされる出力ターミナル。 「妥当性検査」プロパティーが設定されている場合でも、このターミナルに伝搬されるメッセージは妥当性検査が行われません。 |
Out | 正常に取り出された場合に、メッセージがルーティングされる出力ターミナル。 |
Catch | 例外がダウンストリームで生成され、ノードによってキャッチされた場合に、 メッセージがルーティングされる出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ、JMSInput | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
ソース・キュー | いいえ | はい | 選択されている | ノードが着信メッセージを受け取るキューの名前。 ノードがキューから読み取れられる (Point-to-Point) 場合には、「ソース・キュー」を選択してからソース・キューの名前を入力します。これは、バインディング・ファイルにリストされた JMS キューです。 このプロパティーは、「サブスクリプション・トピック」とは相互に排他的です。 | sourceQueueName |
サブスクリプション・トピック | いいえ | はい | 選択されていない | ノードがサブスクライブされたトピックの名前。
ノードがサブスクリプション・トピックから読み取られる (パブリッシュ/サブスクライブ) 場合には、「サブスクリプション・トピック」を選択してからサブスクリプション・トピック名を入力します。
|
トピック (topic) |
永続サブスクリプション ID | いいえ | はい | 永続サブスクリプション・トピックの ID。
ノードが永続サブスクリプション・トピックからパブリケーションを受け取る予定である場合、永続サブスクリプション ID を入力します。
|
durableSubscriptionID |
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
JMS プロバイダー名 | はい | いいえ | WebSphere MQ | リストから JMS ベンダー名を選択するか、または独自に選択した名前を入力します。 リストから名前を選択すると、「初期コンテキスト・ファクトリー」プロパティーが、関連する Java クラスを使用して自動的に更新されます。 独自の JMS プロバイダー名を使用する場合、「初期コンテキスト・ファクトリー」 の値も入力する必要があります。その名前は、メッセージ・フローのデプロイ先のブローカーに対して定義されている構成可能サービスの名前に一致しなければなりません。 あるいは、JMSProviders 構成可能サービスを指定することができます。 | |
初期コンテキスト・ファクトリー | いいえ | はい | com.sun.jndi.fscontext. RefFSContextFactory | JNDI ネーム・スペースの開始点。 JMS アプリケーションは初期コンテキストを使用して、JMS プロバイダーの接続ファクトリーおよびキューまたはトピック・オブジェクトを取得および検索します。 「JMS プロバイダー名」のリストから JMS プロバイダー名を選択すると、関連する Java クラスに基づいて「初期コンテキスト・ファクトリー」プロパティーが自動的に更新されます。 独自の JMS プロバイダー名を使用する場合、「初期コンテキスト・ファクトリー」 の値も入力する必要があります。 デフォルト値は com.sun.jndi.fscontext.RefFSContextFactory であり、これは WebSphere MQ JMS プロバイダー用の、ファイル・ベースの初期コンテキスト・ファクトリーを定義します。 独自の JMS プロバイダーを使用するようにノードを設定した場合に、mqsichangeproperties 定義の対応する構成可能サービス・プロパティーで InitialContextFactory 属性を設定すると、この属性によってノードの設定が指定変更されます。 |
initialContextFactory |
ロケーション JNDI バインディング | いいえ | はい | バインディング・ファイルのシステム・パスまたは LDAP ロケーション。 バインディング・ファイルには、JMSInput ノードで使用される JNDI 管理対象オブジェクトの定義が含まれています。 「ロケーション JNDI バインディング」の値を入力するとき、それが以下の指示に従っていることを確認してください。
JNDI 管理対象オブジェクトのバインディング・ファイルの作成方法については、JMS プロバイダーの資料を参照してください。 独自の JMS プロバイダーを使用するようにノードを設定した場合に、mqsichangeproperties 定義の対応する構成可能サービス・プロパティーで jndiBindingsLocation 属性を設定すると、この属性によってノードの設定が指定変更されます。 |
locationJndiBindings | |
接続ファクトリー名 | いいえ | はい | JMSInput ノードによって JMS プロバイダーへの接続を作成するために使用される、接続ファクトリーの名前。 この名前は、バインディング・ファイル内に存在している必要があります。 「接続ファクトリー名」は JMS QueueConnectionFactory または JMS TopicConnectionFactory にすることができますが、ノードによって使用されるメッセージ・モデルと一致している必要があります。 また、汎用の JMS ConnectionFactory を指定することもできます。これは JMS キューまたは JMS トピック宛先の両方に対して使用できます。 | connectionFactoryName | |
バックアウト宛先 | いいえ | はい | エラーによりメッセージ・フローがメッセージを処理できないとき、 そしてメッセージを入力の宛先から除去する必要があるときに、JMSInput ノードが入力メッセージをこの宛先に送ります。 バックアウト宛先名は、バインディング・ファイル内に存在している必要があります。 | backoutDestination | |
バックアウトしきい値 | いいえ | はい | 0 | 再配送された入力メッセージがバックアウト宛先にいつ入れられるかを制御する値。 例えば、この値が 3 の場合、JMS プロバイダーはメッセージの入力宛先への配送を 3 回試行します。 3 回目の配送の試行後に、メッセージは入力宛先から除去されて、バックアウト宛先に送られます。 バックアウトしきい値プロパティーの構成を参照してください。 |
JMSInput ノードの「入力メッセージの構文解析」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
メッセージ・ドメイン | いいえ | いいえ | BLOB | メッセージの構文解析に使用されるドメイン。 フィールドがブランクの場合、デフォルトは BLOB になります。 |
メッセージ・モデル | いいえ | いいえ | 選択されていない | メッセージが定義されているメッセージ・モデル・スキーマ・ファイルの名前またはロケーション。 このリストには、選択したメッセージ・ドメインに使用可能なすべてのメッセージ・モデル・スキーマ・ファイルが取り込まれます。 |
メッセージ | いいえ | いいえ | 選択されていない | メッセージ・モデル・スキーマ・ファイル内のメッセージ・ルートの名前またはロケーション。 このリストには、選択したメッセージ・モデルで定義された、利用可能なすべてのメッセージが取り込まれます。 |
物理形式 | いいえ | いいえ | 選択されていない | メッセージの物理フォーマットの名前。 MRM または IDOC パーサーを使用する場合は、リストから着信メッセージの物理形式を選択します。 このリストには、選択されたメッセージ・モデル用に定義したすべての物理形式が含まれます。 「メッセージ・ドメイン」プロパティーを DataObject に設定した場合、このプロパティーを XML または SAP ALE IDoc に設定できます。 外部ソースからのビット・ストリームを構文解析してメッセージ・ツリーを生成する必要がある場合には、このプロパティーを SAP ALE IDoc に設定してください。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
構文解析のタイミング | いいえ | いいえ | 要求時 | このプロパティーは、入力メッセージを構文解析する時を制御します。 有効な値は以下のとおりです。
「解析のタイミング」は、デフォルトによって、「要求時」に設定されます。これにより、メッセージの構文解析が遅延されます。 メッセージが即時に解析されるようにするには、要求時の構文解析を参照してください。 |
XML スキーマ・データ・タイプを使用してツリーを構築する | いいえ | いいえ | 選択されていない | このプロパティーは、XML スキーマから取得されたデータ・タイプを使って、XMLNSC パーサーがメッセージ・ツリー内に構文エレメントを作成するかどうかを制御します。 XMLNSC パーサーの作動方法についての詳細は、XMLNSC ドメインでのメッセージの操作を参照してください。 |
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNS ドメイン内のメッセージに XMLNSC コンパクト・パーサーを使用するかどうかを制御します。 このプロパティーを設定した場合に、入力 MQRFH2 ヘッダーまたは「入力メッセージの構文解析」プロパティー「メッセージ・ドメイン」を XMLNS にすると、出力ターミナルに接続されているノードの XMLNSC の下にメッセージ・データが表示されます。 |
混合内容の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内に混合テキストを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、混合テキスト用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、混合テキストは無視されて、エレメントは作成されません。 |
コメントの保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内にコメントを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、コメント用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、コメントは無視されて、エレメントは作成されません。 |
処理命令の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内に処理命令を検出したとき、これらのメッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、処理命令用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、処理命令は無視されて、エレメントは作成されません。 |
不透明エレメント | いいえ | いいえ | ブランク | XMLNSC パーサーによって不透明解析される入力メッセージ内のエレメントのリストを指定するときに、このプロパティーを使用します。 不透明解析が実行されるのは、妥当性検査が使用不可に設定されている場合のみ (つまり、「妥当性検査」が「なし」の場合) です。妥当性検査が使用可能な場合、「不透明エレメント」で指定される項目は無視されます。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
アプリケーション・プロパティー | いいえ | いいえ | アプリケーションのプロパティー値に応じてメッセージをフィルター操作するメッセージ・セレクター。 発信元の JMS クライアント・アプリケーションによって設定されたメッセージ・プロパティーに基づいて JMS プロバイダーがメッセージをフィルターに掛ける必要がある場合、「アプリケーション・プロパティー」のセレクター・ストリングを入力して、プロパティー名と選択条件 (例えば、OrderValue > 200) の両方を指定します。 入力ノードがアプリケーション・プロパティーに基づいて選択しないようにする場合は、「アプリケーション・プロパティー」をブランクのままにしてください。 |
|
タイム・スタンプ | いいえ | いいえ | JMSTimestamp に応じてメッセージをフィルター操作するメッセージ・セレクター。 JMS プロバイダーが、特定の時期に生成されたメッセージをフィルター操作する必要がある場合、「タイム・スタンプ」 のセレクター・ストリングを入力します。この値は、修飾されていない Java ミリ秒で、例えば 105757642321 となります。 セレクターを =、BETWEEN や AND などの演算子で修飾します。 入力ノードが JMSTimeStamp に基づいて選択しないようにする場合は、「タイム・スタンプ」をブランクのままにしてください。 |
|
デリバリー・モード | いいえ | いいえ | すべて | メッセージ・デリバリー・モードに応じてメッセージをフィルター操作するメッセージ・セレクター。 JMS プロバイダーが、JMS メッセージ内の JMSDeliveryMode ヘッダー値に基づいてメッセージをフィルター操作する必要がある場合、「デリバリー・モード」のオプションをリストから選択します。
|
優先順位 | いいえ | いいえ | メッセージ優先順位に応じてメッセージをフィルター操作するメッセージ・セレクター。 JMS プロバイダーが、JMS メッセージ内の JMSPriority ヘッダー値に基づいてメッセージをフィルター操作する必要がある場合、「優先順位」のセレクター・ストリングを入力します。 「優先順位」として有効な値は、0 (最低) から 9 (最高) までです。 例えば、= 5 を入力すると優先順位 5 のメッセージを受け取り、> 4 を入力すると優先順位が 4 より上のメッセージを受け取り、BETWEEN 4 AND 8 と入力すると優先順位が 4 から 8 までの範囲のメッセージを受け取ります。 入力ノードが JMSPriority に基づいて選択しないようにする場合は、「優先順位」をブランクのままにしてください。 |
|
メッセージ ID | いいえ | いいえ | メッセージ ID に応じてメッセージをフィルター操作するメッセージ・セレクター。 JMS プロバイダーが、JMSMessageID ヘッダー値に基づいてメッセージをフィルター操作する必要がある場合、「メッセージ ID」のセレクター・ストリングを入力します。 例えば、>WMBRK123456 と入力すると、メッセージ ID が WMBRK123456 よりも大きいメッセージが戻されます。 入力ノードが JMSMessageID に基づいて選択しないようにする場合は、「メッセージ ID」をブランクのままにしてください。 |
|
再送 | いいえ | いいえ | JMS プロバイダーが、JMSRedelivered ヘッダーに基づいてメッセージをフィルター操作する必要がある場合、「再送」 のセレクター・ストリングを入力します。
|
|
相関 ID | いいえ | いいえ | 相関 ID に応じてメッセージをフィルター操作するメッセージ・セレクター。 JMS プロバイダーが、JMSCorrelationID ヘッダー値に基づいてメッセージをフィルター操作する必要がある場合、「相関 ID」 のセレクター・ストリングを入力します。 例えば、= WMBRKABCDEFG は相関 ID がこの値と一致するメッセージを戻します。 入力ノードが JMSCorrelationID に基づいて選択しないようにする場合は、「相関 ID」をブランクのままにしてください。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
トランザクション・モード | はい | いいえ | いいえ | このプロパティーは、メッセージを JMS トランザクション下で受信するかどうかを制御します。 有効な値は Yes および No です。
|
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
妥当性検査 | いいえ | はい | なし | このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は以下のとおりです。
「内容」または「内容と値」を選択した場合、「障害アクション」リストからオプションを選択します。 |
validateMaster |
失敗時の処置 | いいえ | いいえ | 例外 | このプロパティーは、妥当性検査が失敗した場合の動作を制御します。 「妥当性検査」を「内容」または「内容と値」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は以下のとおりです。
|
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |