JMS トランスポートを使用するノードに関連して起こる可能性のある問題を取り上げます。
JMS メッセージ・フローで予期しない問題が発生した場合、問題診断の最初のステップとしてアクティビティー・ログを使用します。 アクティビティー・ログは、メッセージ・フロー内および関連する外部リソース内の最近のアクティビティーを示します。 JMS リソースに問題がある場合、その概要が示される可能性があります。 また、イベント・ログを確認して、発生したエラーについての情報を調べることもできます。
あらゆるケースのエラーにおいて、JMS プロバイダーによってスローされた JMS 例外が根本原因である場合は、ブローカー BIP イベント・メッセージに JMS 例外によるテキスト・メッセージが含まれており、診断に役立ちます。
JMS 入力ノードがメッセージを処理できない場合、またはメッセージが XA 整合トランザクションの一部としてロールバックされている場合、そのメッセージはソース宛先にバックアウトされます。 その後、メッセージは入力ノードに再送されます。
プロパティー | 説明 |
---|---|
バックアウト宛先 | このプロパティーは、JMS プロバイダーによって設定された JMS メッセージ・プロパティー JMSX_DeliveryCount がバックアウトしきい値を超えている場合にバックアウト・メッセージの送付先となる JMS 宛先を指定します。 JMS 宛先は、ノードによって使用されているメッセージ・モデルに適用可能でなければなりません。 例えば、サブスクリプション・トピックがノード上で構成されている場合、JMS 宛先もトピックでなければなりません。 |
バックアウトしきい値 | このプロパティーは、バックアウト宛先に送信されるメッセージを制御する整数値を指定します。 しきい値 3 は、JMSX_DeliveryCount プロパティーの値が 3 を超えるメッセージを入力ノードが受け取った場合、そのメッセージはバックアウト宛先に送られ、ソース宛先から除去されることを示します。 バックアウトしきい値プロパティーの構成を参照してください。 |
この問題は z/OS® には適用されません。
ブローカー・サービス・トレースに加えて、別のトレース・ログがあります。このトレース・ログは、JMS トランスポートを使用するノードが XA 整合のメッセージ・フロー・トランザクションに参加する場合に発生する可能性のある問題を診断する際に役立ちます。 つまり、メッセージ・フロー内の少なくとも 1 つの JMS ノードで、「トランザクション・モード」プロパティーが「はい」に設定され、「メッセージ・フロー」プロパティーの「整合トランザクション」が「はい」に設定されている場合に発生する問題です。
XAJMS_TRACEFILE = c:¥JMSSwitchLog
上記の例では、キュー・マネージャーの開始プロセス ID が 2596 である JMSSwitchLog2596.txt というファイルが生成されます。
これらのトレース・ファイルはどちらも、追加のフォーマット設定を必要としません。
問題の説明: JMS ノードが初期コンテキスト・ファクトリーまたは JNDI 管理対象オブジェクト (接続ファクトリーや JMS 宛先など) を取得できない場合、メッセージ BIP4640 が発行されます。
mqsireportproperties MB8BROKER -c JMSProviders -o JMSProvider –r
問題の説明: JMS ノードは、JMS プロバイダーに接続できない場合、メッセージ BIP4648 を発行します。
問題の説明: JMS ノードは、JMS 宛先を取得できない場合、メッセージ BIP4642 を発行します。
問題の説明: JMS 入力ノードは、接続失敗後または JMS プロバイダー再始動後、JMS プロバイダーへの再接続を試みません。
修正処置: 従来のポーリング・モデルではなく、JMS クライアント上でプッシュするモデルを使用して JMS プロバイダーが実装されている場合、JMS プロバイダーは、ブローカー接続で receive() を呼び出すときに例外をスローしない場合があります。 この問題を解決するには、この JMS プロバイダーに適用される JMSProvider 構成可能サービスの jmsAsyncExceptionHandling プロパティーを、TRUE に設定します。