JMS ノードのトラブルシューティング

JMS ノードで起こる可能性のある問題を検討します。

エラーのすべての場合で、元になる原因が JMS プロバイダーによってスローされた JMSException であれば、ブローカー bip イベント・メッセージには診断に役立つ JMSException からのテキスト・メッセージが含まれます。

不良形式のメッセージの管理

JMSInput ノードがメッセージを処理できない場合、 またはメッセージがグローバル・トランザクションの一部としてロールバックされている場合、 そのメッセージはソース宛先にバックアウトされます。その後、メッセージは JMSInput ノードに再送されます。

不良形式のメッセージが有効なメッセージの処理を中断しないようにするため、 ノードのプロパティーを以下のように構成できます。

バックアウト宛先 このプロパティーは、JMS プロバイダーによって設定される JMS メッセージ・プロパティー JMSX_DeliveryCount がバックアウトしきい値を超過した場合に、バックアウト・メッセージが経路指定される JMS 宛先を指定します。

JMS 宛先は、ノードによって使用されているメッセージ・モデルに適用可能でなければなりません。 例えば、サブスクリプション・トピックがノード上で構成されている場合、JMS 宛先もトピックでなければなりません。

バックアウトしきい値 このプロパティーは、メッセージのバックアウト宛先への送信を制御する整数値を指定します。しきい値の 3 は、JMSInput ノードが JMSX_DeliveryCount プロパティーの値が 3 を超過するメッセージを受け取る場合、そのメッセージはバックアウト宛先に送られてソース宛先から除去されることを示します。

グローバルに調整されたトランザクションを使用する際の問題の診断

ブローカーの サービス・トレース に加えて、JMSInput または JMSOutput ノードがグローバルなメッセージ・フロー・トランザクションに参加するときに発生することのある問題を診断するための、他のトレース・ログも提供されています。つまり、メッセージ・フロー内の 1 つ以上の JMSInput または JMSOutput ノードで、「トランザクション・モード」プロパティーが 「グローバル」 に設定され、メッセージ・フロー・プロパティーの「整合トランザクション」「はい」 に設定されています。

トレース・ログを取り込むには、以下のステップを実行します。
  1. ブローカーのキュー・マネージャーで使用可能な XAJMS_TRACEFILE と呼ばれる環境変数を定義します。
  2. 環境変数の値を設定します。 この値は、トレース・ログの場所およびファイル名を表す文字ストリングとなります。 例えば、Windows の場合、この変数は以下のように構成できます。
    XAJMS_TRACEFILE = c:¥JMSSwitchLog
  3. ブローカーのキュー・マネージャーが開始すると、JMS プロバイダーによって未確定と判断された 以前のブローカー・トランザクションを解決するリカバリー・ステップを実行します。 このキュー・マネージャー処理は、このステージで 2 つのトレース・ログを書き込みます。 2 つのトレース・ログとは、以下のものです。
    • XAJMS_TRACEFILE valuePID.txtPID はキュー・マネージャーの開始プロセスのプロセス ID です。このファイルは、ブローカーの JMSSwitch ライブラリーから生成されます。JMS トランザクション特性 を参照してください。

      変数に上記の例の値を使用すると、JMSSwitchLog2596.txt というファイルが生成されます。 キュー・マネージャーの開始プロセス ID は 2596 です。

    • XAJMS_TRACEFILEXARecoveryTrace.txt。これは JMS プロバイダーに接続するブローカーのリカバリー・コンポーネントによって生成されます。
  4. ブローカーのキュー・マネージャーがリカバリーを完了した後、ブローカーは XAJMS_TRACEFILE valuePID.txt と呼ばれるファイルを開始および作成します。PID は、キュー・マネージャーの開始プロセスのプロセス ID です。このファイルは、ブローカーの JMSSwitch ライブラリーから生成されます。 詳しくは、JMS トランザクション特性を参照してください。

これらのトレース・ファイルはどちらも、追加のフォーマット設定を必要としません。

この問題は Z/OS には適用されません。

JNDI 管理対象オブジェクトの問題

問題の説明: JMSInput または JMSOutput ノードが、 Initial Context Factory または接続ファクトリーや JMS 宛先などの JNDI 管理対象オブジェクトを取得できないため、BIP4640 メッセージが発行されました。

修正処置
  1. JNDI バインディングが正しく構築されていること、およびノードに指定された場所で到達可能であることを検証します。
  2. 初期コンテキスト接続ファクトリー名、および ソース・キュー または 宛先キュー に対してノードに指定された値が、JNDI バインディングに存在することを調べます。
  3. バインディングの位置と突き合わせるための正しいキーワードが指定されていることを確認します。
    • 管理対象オブジェクトが .bindings ファイル内に作成されている場合は、「file://」
    • 管理対象オブジェクトが LDAP ディレクトリーに存在する場合は、「ldap://」
    • 管理対象オブジェクトへのアクセスに corba が使用されている場合は、「iiop://」
  4. バインディングがファイル・ベースのときは、ノード・プロパティーに .bindingsファイル名を指定しないでください。
  5. 初期コンテキスト・ファクトリー名にファイル・パスが含まれないことを確認します。
  6. ノード・プロパティーに指定された JMS 宛先 (トピックソース・キュー、または 宛先キュー) が、JNDI 管理対象オブジェクトに含まれることを確認します。
  7. 分散プラットフォームでは、JMS プロバイダーの Java .jar ファイルがブローカー共用クラス・ディレクトリーに置かれていることを確認します。または z/OS では、これらの .jar ファイルがブローカー CLASSPATH およびブローカー LIBPATH に定義されたネイティブ・ライブラリーに定義されていることを確認します。
JMS ノードは、JNDI 管理対象オブジェクトを取得するための試行を続けます。 問題があれば修正して、バインディングを再構築します。 JMS ノードは、変更を自動的に検出して、開始しようとします。

問題の説明: JMSInput または JMSOutput ノードは、JMS プロバイダーに接続できないので、BIP4648 メッセージが発行されました。

修正処置:
  1. JMS プロバイダー・サーバーが実行していることを確認します。 オフラインの場合、サーバーを開始します。
  2. JMS プロバイダー・サーバーがブローカー環境から使用可能であることを確認します。
  3. 分散プラットフォームでは、JMS プロバイダーの Java .jar ファイルがブローカー共用クラス・ディレクトリーに置かれていることを確認します。または z/OS では、これらの .jar ファイルがブローカー CLASSPATH およびブローカー LIBPATH に定義されたネイティブ・ライブラリーに定義されていることを確認します。
JMS ノードは、JMS プロバイダーへの接続の試行を続けます。問題を訂正すると、JMS ノードは変更を自動的に検出して、プロバイダーへの接続を試行します。

問題の説明: JMSInput または JMSOutput ノードは、JMS 宛先を取得できないので、BIP4642 メッセージが発行されました。

修正処置
  1. BIP イベント・メッセージに含まれていることのある、JMS 例外メッセージに記述された問題の原因を調査します。
  2. 関連するノード・プロパティー (トピックソース・キュー、または 宛先キュー) に定義された JMS 宛先の名前が、JNDI 管理対象オブジェクトに正しく定義されていることを確認します。
  3. JMS 宛先に対する、JMS プロバイダーによって使用される基礎となるシステム・リソースが、 正しく構成されていることを確認します。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:42:59

ac24877_