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. 環境変数の値を設定します。 これはトレース・ログの場所およびファイル名を表す文字ストリングとなります。 例えば、ウィンドウ上でこの変数は以下のように構成できます。
    XAJMS_TRACEFILE = c:¥JMSSwitchLog
  3. ブローカーのキュー・マネージャーが開始すると、JMS プロバイダーによって未確定と判断された 以前のブローカー・トランザクションを解決するリカバリー・ステップを実行します。 このキュー・マネージャー処理は、このステージで 2 つのトレース・ログを出力します。 2 つのトレース・ログとは、以下のものです。
    • <XAJMS_TRACEFILE value><PID>.txtPID はキュー・マネージャーの開始プロセスのプロセス ID です。このファイルは、ブローカーの JMSSwitch ライブラリーから生成されます。 詳しくは、JMS トランザクション特性を参照してください。

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

    • <XAJMS_TRACEFILE><XARecoveryTrace>.txt。これは JMS プロバイダーに接続するブローカーのリカバリー・コンポーネントによって生成されます。
  4. ブローカーのキュー・マネージャーがリカバリーを完了した後、 ブローカーは <XAJMS_TRACEFILE value><PID>.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, 2006 最終更新: 08/21/2006
ac24877_