WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

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

JMS トランスポートを使用するノードに関連して起こる可能性のある問題を取り上げます。

JMS メッセージ・フローで予期しない問題が発生した場合、問題診断の最初のステップとしてアクティビティー・ログを使用します。 アクティビティー・ログは、メッセージ・フロー内および関連する外部リソース内の最近のアクティビティーを示します。 JMS リソースに問題がある場合、その概要が示される可能性があります。 また、イベント・ログを確認して、発生したエラーについての情報を調べることもできます。

あらゆるケースのエラーにおいて、JMS プロバイダーによってスローされた JMS 例外が根本原因である場合は、ブローカー BIP イベント・メッセージに JMS 例外によるテキスト・メッセージが含まれており、診断に役立ちます。

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

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

不良形式のメッセージのために有効なメッセージの処理が中断されないようにするには、ノードのプロパティーを次の表のように構成します。
プロパティー 説明
バックアウト宛先 このプロパティーは、JMS プロバイダーによって設定された JMS メッセージ・プロパティー JMSX_DeliveryCount がバックアウトしきい値を超えている場合にバックアウト・メッセージの送付先となる JMS 宛先を指定します。

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

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

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

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

ブローカー・サービス・トレースに加えて、別のトレース・ログがあります。このトレース・ログは、JMS トランスポートを使用するノードが XA 整合のメッセージ・フロー・トランザクションに参加する場合に発生する可能性のある問題を診断する際に役立ちます。 つまり、メッセージ・フロー内の少なくとも 1 つの JMS ノードで、「トランザクション・モード」プロパティーが「はい」に設定され、「メッセージ・フロー」プロパティーの「整合トランザクション」「はい」に設定されている場合に発生する問題です。

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

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

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

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

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

問題の説明: JMS ノードが初期コンテキスト・ファクトリーまたは JNDI 管理対象オブジェクト (接続ファクトリーや JMS 宛先など) を取得できない場合、メッセージ BIP4640 が発行されます。

修正処置
  1. JNDI バインディングが正しく構築されていること、およびノードで指定された場所で到達可能であることを確認します。
  2. ノードで指定された「接続ファクトリー名」「ソース・キュー」または「宛先キュー」プロパティーの値が JNDI バインディングに存在することを確認します。
  3. バインディングの位置と突き合わせるための正しいキーワードが指定されていることを確認します。
    • 管理対象オブジェクトが .bindings ファイル内に作成されている場合は、「file://」
    • 管理対象オブジェクトが LDAP ディレクトリーに存在する場合は、「ldap://」
    • 管理対象オブジェクトへのアクセスに CORBA が使用される場合は、「iiop://」
  4. バインディングがファイル・ベースのときは、ノード・プロパティーで .bindings ファイル名を指定しないでください。
  5. 初期コンテキスト・ファクトリー・クラス名が JMS プロバイダーの資料で指定されているとおりに正しく設定されていることを確認します。
  6. 初期コンテキスト・ファクトリー・クラス名にファイル・パスが含まれていないことを確認します。
  7. ノード・プロパティーに指定された JMS 宛先 (トピックソース・キュー、または 宛先キュー) が、JNDI 管理対象オブジェクトに含まれることを確認します。
  8. mqsichangeproperties コマンドを使用して、JMS プロバイダーの jarsURL プロパティーが正しく設定されていることを確認します。 値を検証するには、次のコマンドを使用します。
    mqsireportproperties MB8BROKER -c JMSProviders -o JMSProvider –r
JMS ノードは、JNDI 管理対象オブジェクトの取得を試行し続けます。 問題があれば修正して、バインディングを再構築します。 JMS ノードは、変更を自動的に検出して、開始しようとします。
  • バインディングを再構築することによって問題が解決した場合、JMS ノードは変更を自動的に検出し、開始を試みます。
  • ノード・プロパティーを更新することによって問題が解決した場合、フローが正常に接続されるようにするためには、フローを再デプロイしておく必要があります。
  • JMSProviders 構成可能サービスのプロパティーを更新することによって問題が解決した場合、変更を有効にするには、実行グループを再始動する必要があります。

問題の説明: JMS ノードは、JMS プロバイダーに接続できない場合、メッセージ BIP4648 を発行します。

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

問題の説明: JMS ノードは、JMS 宛先を取得できない場合、メッセージ BIP4642 を発行します。

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

問題の説明: JMS 入力ノードは、接続失敗後または JMS プロバイダー再始動後、JMS プロバイダーへの再接続を試みません。

修正処置: 従来のポーリング・モデルではなく、JMS クライアント上でプッシュするモデルを使用して JMS プロバイダーが実装されている場合、JMS プロバイダーは、ブローカー接続で receive() を呼び出すときに例外をスローしない場合があります。 この問題を解決するには、この JMS プロバイダーに適用される JMSProvider 構成可能サービスの jmsAsyncExceptionHandling プロパティーを、TRUE に設定します。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:45:44


参照トピック参照トピック | バージョン 8.0.0.5 | ac24877_