JMSInput ノード

JMSInput ノードを使用して、JMS 宛先からメッセージを受け取ります。JMS 宛先は、JMS プロバイダーへの接続を介してアクセスされます。

このトピックには、以下のセクションが含まれています。

目的

JMSInput ノードは JMS メッセージ・コンシューマーと同じように機能して、Java Message Service Specification、バージョン 1.1 (Java Message Service Specification, version 1.1) で定義された 6 つのメッセージ・タイプのすべてを受け取ることができます。メッセージは、JMS 仕様で説明されているメソッド呼び出しを使用して受け取られます。

JMSInput ノードはパレットの JMS ドロワーに含まれていて、ワークベンチ では次のアイコンによって表されます。

JMSInput ノード・アイコン

メッセージ・フロー内での JMSInput ノードの使用

以下のサンプルには、JMSInput ノードが使用されるメッセージ・フローが含まれます。 このサンプルは、JMSInput ノードの使用方法を示す例です。 サンプルは、Message Brokers Toolkit と統合されているインフォメーション・センターを使用する場合にのみ表示できます。

JMS プロバイダーへの接続から受け取ったメッセージを処理するメッセージ・フローは、 常に JMSInput ノードで開始する必要があります。 JMSInput ノードで開始されるメッセージ・フローに出力ノードを組み込む場合には、 サポートされるいずれかの出力ノード (ユーザー定義の出力ノードを含む) を使用できます。JMSOutput ノードを組み込む必要はありません。 ただし、JMSOutput ノードを組み込まない場合、JMSMQTransform ノードを組み込んで、出力ノードが予期する形式にメッセージを変換する必要があります。

JMS メッセージを伝搬させてサブフローとして使用するメッセージ・フローを作成する場合には、標準入力ノードを使用することはできず、JMSInput ノードのインスタンスを最初のノードとして使用して、サブフロー用の In ターミナルを作成する必要があります。

変更の始まりデフォルトの 64 ビット・ホスト環境で 32 ビット実行グループを使用する際には、MQSI_LIBPATH32 上でWebSphere® MQ JMS Java™ ライブラリー・パスを設定しなければなりません。以下に例を示します。
export MQSI_LIBPATH32=$MQSI_LIBPATH32:/usr/mqm/lib:/usr/mqm/java/lib
変更の終わり
制約事項: JMSInput ノードは、パブリケーション・トピックを受け取る際、最初にメッセージ・フロー・プロパティー 「追加のインスタンス」 をゼロに制限して、パブリケーションを重複して受信しないようにします。

JMS プロバイダーのクライアントを JMS ノードで使用可能にする

多数の JMS プロバイダー用の構成可能サービスが定義されています。事前定義サービスのうちの 1 つを選択できますが、新規プロバイダーまたは既存プロバイダーのうちの 1 つのための新しいサービスを作成することもできます。

1 つ以上の定義された構成可能サービスを表示するには、mqsireportproperties コマンドを使用します。 以下の例は、単一のブローカーに使用できるすべての構成可能サービスを表示します。
mqsireportproperties brokerName -c AllTypes -o AllReportableEntityNames -r 
  • WebSphere MQ JMS プロバイダーを使用する場合、ブローカー・システム上のデフォルト・ロケーションに WebSphere MQ がインストールされていれば、プロパティーはすでに設定済みになっているので、何も変更する必要はありません。
  • WebSphere MQ JMS プロバイダーを使用する場合に、WebSphere MQ を別の (デフォルト以外の) ロケーションにインストールしているか、または他の定義サービスのうちの 1 つを使用したければ、ブローカー・システム上のサービス JAR ファイルのロケーションを指示するように jarsURL プロパティーを設定する必要があります。

    プロバイダーのプロパティーを表示するには mqsireportproperties コマンドを使用し、プロパティーを設定または変更するには mqsichangeproperties コマンドを使用します。

  • JMS プロバイダーに対して何もサービスが定義されていない場合や、既存の JMS プロバイダーに対して別のサービスを作成する場合、mqsicreateconfigurableservice コマンドを使用して、新規サービスを識別し、そのプロパティーを設定します。
  • ノードを構成するときは、「JMS プロバイダー名」プロパティーに対して事前定義されているサービスのリストから該当するサービスを選択するか、または必要なサービスの名前を入力します。

ターミナルの接続

正常に受信したメッセージごとに、JMSInput ノードはそのメッセージを Out ターミナルにルーティングします。このアクションが失敗する場合、メッセージが再試行されます。ノードの 「バックアウトしきい値」プロパティーによって定義されている再試行しきい値の有効期限に達した場合、メッセージは Failure ターミナルにルーティングされます。 ノードを Failure ターミナルに接続し、この状態を処理することができます。

障害パス内で例外が起きた場合、試行回数が「バックアウトしきい値」の 2 倍になるまで、そのパスが再試行されます。 その限度を超えた場合、メッセージは「バックアウト宛先」に入れられます。

ノードを Failure ターミナルに接続しなかった場合、メッセージは「バックアウト宛先」に書き込まれます。 「バックアウト宛先」を定義しなかった場合、ノードは BIP4669 エラー・メッセージを発行して、以降の入力の処理を停止します。

メッセージ・フロー内のどこかで例外が生成された後、JMSInput ノードによってメッセージがキャッチされる場合、メッセージは Catch ターミナルにルーティングされます。ノードを Catch ターミナルに接続しなかった場合、その問題が解決されるかまたはバックアウトしきい値に到達するまで、ノードはそのメッセージをバックアウトして再配送します。「バックアウト宛先」を定義しない場合、ノードは BIP4669 エラー・メッセージを発行して、以降の入力の処理を停止します。

整合トランザクションの構成

メッセージ・フローに JMSInput ノードを組み込む場合、「トランザクション・モード」で設定した値が、メッセージを同期点下で受信するかどうかを定義します。

  • このプロパティーを「グローバル」に設定した場合、メッセージは外部同期点調整の下 (WebSphere MQ 作業単位内) で受信されます。メッセージ・フローと同じインスタンスの出力ノードによってその後に送信されるメッセージは、出力ノードがこの設定を明示的にオーバーライドしない限り、同期点の下に置かれます。
  • このプロパティーを「ローカル」 に設定した場合、JMSInput ノードのローカル同期点制御の下で受信されます。フロー内の出力ノードによってその後に送信されるメッセージは、個々の出力ノードがメッセージをローカル同期点の下に置くように指定しない限り、ローカル同期点の下には置かれません。
  • このプロパティーを「なし」に設定した場合、メッセージは同期点下で受信されません。フロー内の出力ノードによってその後に送信されるメッセージは、個々の出力ノードがメッセージを同期点の下に置くように指定しない限り、同期点の下には置かれません。
外部同期点下でメッセージを受信する場合には、追加の構成ステップを実行する必要があります。これらのステップを適用する必要があるのは、特定の JMS プロバイダーのブローカーに JMSOutput または JMSInput ノードが最初にデプロイされたときだけです。
  • 分散システムで、ブローカーの外部同期点コーディネーターは WebSphere MQ です。「トランザクション・モード」プロパティーが「グローバル」に設定されたメッセージ・フローをデプロイする前に、グローバルに整合されたトランザクションに加わる各 JMS プロバイダーのリソース・マネージャーに関する追加の定義が付加されるように、キュー・マネージャーの .ini ファイルを変更します。
    • Windows platform Windows® システムで WebSphere MQ バージョン 5 をインストールしてある場合:
      1. WebSphere MQ Services を開始します。
      2. キュー・マネージャー名を右クリックして、「プロパティー」をクリックします。
      3. 「リソース」プロパティー・タブをクリックします。
      4. 「SwitchFile」プロパティーを以下の値に設定します。
        install_dir/bin/ JMSSwitch.dll  
        XAOpenString=Initial Context,location JNDI,Optional_parms
        ThreadOfControl=THREAD 
    • Windows platform Windows システムで WebSphere MQ バージョン 6.0 をインストールしてある場合 :
      1. WebSphere MQ Explorer を開始します。
      2. 左側のペインでキュー・マネージャー名を右クリックして、「プロパティー」をクリックします。
      3. 左側のペインで「XA リソース・マネージャー」をクリックします。
      4. 「SwitchFile」プロパティーを以下の値に設定します。
        install_dir/bin/ JMSSwitch.dll  
        XAOpenString=Initial Context,location JNDI,Optional_parms
        ThreadOfControl=THREAD 
      詳しくは、WebSphere MQ バージョン 6 インフォメーション・センター・オンラインの「System Administration Guide」セクション、あるいは WebSphere MQ ライブラリー Web ページのバージョン 5.3 ブックを参照してください。
    • Linux platformUNIX platform Linux® および UNIX® システムでは、各 JMS プロバイダーごとにキュー・マネージャー .ini ファイルにスタンザを追加します。
      以下に例を示します。
      XAResourceManager:
      Name=Jms_Provider_Name 
      SwitchFile=/install_dir/bin/ JMSSwitch.so
      XAOpenString=Initial Context,location JNDI,Optional_parms
      ThreadOfControl=THREAD
      ここで、
      名前
      JMS プロバイダーのリソース・マネージャーを識別する、インストール済み環境によって定義された名前です。
      SwitchFile
      ブローカーの bin ディレクトリーで提供される、JMSSwitch ライブラリーへのファイル・システム・パスです。
      XAOpenString には以下の値を指定できます。
      • Initial Context は、JMSInput ノードのプロパティー「初期コンテキスト・ファクトリー」に設定される値です。
      • location JNDI は、JMSInput ノードのプロパティー「ロケーション JNDI バインディング」に設定される値です。 この値には、先行キーワードの file://iiop://、または ldap:// の 1 つを組み込む必要があります。
      以下のパラメーターはオプションです。
      • 「LDAP プリンシパル」は、mqsicreatebroker または mqsichangebroker コマンドを使用してブローカーに設定された値と一致します。
      • 「LDAP 信任状」は、mqsicreatebroker または mqsichangebroker コマンドを使用してブローカーに設定された値と一致します。
      • 「リカバリー接続ファクトリー名」は、 バインディング・ファイルで定義された JNDI 管理の接続ファクトリーです。 値が指定されていない場合、recoverXAQCF のデフォルト値をバインディング・ファイルに追加する必要があります。 どちらの場合も、リカバリー接続ファクトリーを初期コンテキスト・ファクトリーに関連した JMS プロバイダーの XA キュー接続ファクトリーとして定義する必要があります。

      オプション・パラメーターは、コンマ区切りで定位置です。 そのため、存在しないパラメーターはコンマで表す必要があります。

      1. ブローカーのキュー・マネージャーの Java CLASSPATH 環境変数を更新して、xarecovery.jar への参照が含まれるようにします。例:
        install_dir/classes/xarecovery.jar
      2. ブローカーのキュー・マネージャーの Java PATH 環境変数を更新して、SwitchFile が存在する bin ディレクトリーを指定するようにします。例:
        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 以上が必要です。

  • z/OS platform z/OS® では、外部同期点マネージャーはリソース・リカバリー・サービス (RRS) です。z/OS 上でサポートされる唯一の JMS プロバイダーは、WebSphere MQ JMS です。 z/OS 上で WebSphere MQ JMS に対してサポートされる唯一のトランスポート・オプションは、バインド・オプションです。

    JMS プロバイダーの同期点制御は、ブローカーのキュー・マネージャーの RRS 同期点調整によって管理されます。.ini ファイルを変更する必要はありません。

ターミナルおよびプロパティー

JMSInput ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。ノードのプロパティーを「プロパティー」ダイアログに表示するには、ノードをダブルクリックするか、またはノードを右クリックしてから「プロパティー」をクリックします。 デフォルト値が定義されていないすべての必須プロパティーには、アスタリスクのマークが付きます。

JMSInput ノードのターミナルについては、次の表に説明されています。
ターミナル 説明
Failure エラーが発生した場合にメッセージがルーティングされる出力ターミナル。 「妥当性検査」プロパティーが設定されている場合でも、このターミナルに伝搬されるメッセージは妥当性検査が行われません。
Out 正常に取り出された場合に、メッセージがルーティングされる出力ターミナル。
Catch 例外がダウンストリームで生成され、ノードによってキャッチされた場合に、 メッセージがルーティングされる出力ターミナル。

以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できます)。

JMSInput ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー M C デフォルト 説明
ノード名 いいえ いいえ ノード・タイプ、JMSInput ノードの名前。
簡略説明 いいえ いいえ   ノードの簡単な説明
詳細説明 いいえ いいえ   メッセージ・フロー内のノードの目的を説明するテキスト
JMSInput ノードの「JMS 接続」プロパティーについては、次の表に説明されています。
プロパティー 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 バインディング」の値を入力するとき、それが以下の指示に従っていることを確認してください。
  • JMSInput ノードを含むメッセージ・フローをデプロイする前に、バインディング・ファイルを作成します。
  • このフィールドには、バインディング・ファイルのファイル名を入力しないでください。
  • 認証の必要な LDAP ロケーションを指定した場合、LDAP プリンシパル (ユーザー ID) および LDAP 信任状 (パスワード) を個別に構成してください。 これらの値は、ブローカー・レベルで構成されます。 これらの値の構成について詳しくは、mqsicreatebroker コマンドおよびmqsichangebroker コマンドを参照してください。
  • ストリング値には、以下のオプションのいずれかの先行キーワードを組み込む必要があります。
    • file://
    • iiop://
    • ldap://

JNDI 管理対象オブジェクトのバインディング・ファイルの作成方法については、JMS プロバイダーの資料を参照してください。

接続ファクトリー名 はい はい   JMSInput ノードによって JMS プロバイダーへの接続を作成するために使用される、接続ファクトリーの名前。この名前は、バインディング・ファイル内にすでに存在している必要があります。
バックアウト宛先 いいえ はい   エラーによりメッセージ・フローがメッセージを処理できないとき、 そしてメッセージを入力の宛先から除去する必要があるときに、JMSInput ノードが入力メッセージをこの宛先に送ります。 バックアウト宛先名は、バインディング・ファイル内に存在している必要があります。
バックアウトしきい値 いいえ はい 0 再配送された入力メッセージがバックアウト宛先にいつ入れられるかを制御する値。例えば、この値が 3 の場合、JMS プロバイダーはメッセージの入力宛先への配送を 3 回試行します。3 回目の配送の試行後に、メッセージは入力宛先から除去されて、バックアウト宛先に送られます。
JMSInput ノードの拡張プロパティーについては、次の表に説明されています。
プロパティー M C デフォルト 説明
トランザクション・モード はい いいえ なし このプロパティーは、着信メッセージを外部同期点の下、ローカル同期点の下、または同期点外のいずれで受信するかを制御します。
  • 着信メッセージを非持続として扱う場合は、「なし」を選択します。この値を選択する場合、メッセージは Session.AUTO_ACKNOWLEDGE フラグを使用して作成された未トランザクションの JMS セッションを使用して受信されます。
  • JMSInput ノードがそのノードによって受信された JMS メッセージのコミットまたはロールバックを、メッセージ・フロー内で作業を行う DB2®WebSphere MQ などの他のリソースとの間で調整する必要がある場合には、「ローカル」 を選択します。 この値を選択する場合、ノードはトランザクションの JMS セッションを使用します。
  • JMSInput ノードがブローカーの外部同期点コーディネーターによって管理されるグローバル・メッセージ・フロー・トランザクションに参加する必要がある場合には、「グローバル」 を選択します。外部同期点コーディネーターは、ブローカーの分散システム上のキュー・マネージャー、および z/OS 上の RRS (リソース・リカバリー・サービス) です。この値を選択する場合、ノードによって受信されたすべてのメッセージは XA JMS セッションを使用してグローバルに調整されます。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009. All Rights Reserved.
最終更新 : 2009-02-13 10:23:00

ac24820_