IBM MQ Connector のトラブルシューティング - Mule 4

IBM MQ 用 Anypoint Connector (IBM MQ Connector) のトラブルシューティングを行うには、冗長ログの有効化、肯定応答の問題のトラブルシューティング、MQ の停止したコンシュームメッセージのトラブルシューティング、バインディングモードの使用時の再デプロイメントエラーのトラブルシューティング、一般的なスローメッセージの解釈に関する情報を理解しておいてください。

冗長ログの有効化

場合によって、アプリケーションが失敗した理由が不明で、アプリケーションの MQ サーバーとのインタラクションで何が起こっているかについて理解を深める必要があることもあります。

詳細なログを収集する手順は、次のとおりです。

  • 設定ファイルを使用して、サーバー側のログレベルを引き上げます。

  • JMS Connector と MQ パッケージの冗長ログを有効にします。

    1. Anypoint Studio にアクセスし、​[Package Explorer]​ ビューに移動します。

    2. アプリケーションのプロジェクト名を開きます。

    3. src/main/resources​ パスフォルダーを開きます。

    4. フォルダー内の ​log4j2.xml​ ファイルを開きます。

    5. 次の行がすでに ​log4j2.xml​ ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。

          <AsyncLogger name="com.mulesoft.connectors.ibmmq" level="DEBUG"/>
          <AsyncLogger name="org.mule.jms.commons" level="DEBUG"/>
      xml

肯定応答の問題のトラブルシューティング

メッセージの肯定応答に関してアプリケーションの設定に矛盾が生じる理由はいくつか考えられます。 アプリケーションのセッション肯定応答は次のように設定できます。

  • IMMEDIATE

  • AUTO

  • MANUAL

  • DUPS_OK

セッション肯定応答を ​IMMEDIATE​ に設定すると、メッセージは受信されると直ちに肯定応答されます。​IMMEDIATE​ 肯定応答を ​Ack​ または ​Recovery session​ 操作と組み合わせないでください。

セッション肯定応答を ​AUTO​ に設定すると、イベントが完了したときに ​On New Message​ ソースで肯定応答が制御されるか、イベントの処理中にエラーが発生した場合はセッションが回復します。​AUTO​ 肯定応答のアプリケーションで手動肯定応答またはセッション回復を追加すると、チャネルで操作が重複します。

セッション肯定応答を ​MANUAL​ または ​DUPS_OK​ に設定する場合は、フロー実行のすべてのパスでメッセージ肯定応答またはセッション回復を取得することを確認してください。確認しなかった場合、メッセージがリークし、作業単位の最大深度に達したときにコンシューマーが無応答になる可能性があります。

この問題を解決する手順は、次のとおりです。

フローデザインを詳しく調べて、すべてのメッセージが肯定応答されるか、セッションが回復することを確認してください。

MQ の停止したコンシュームメッセージのトラブルシューティング

通常、MQ の停止したコンシュームメッセージは肯定応答されていない大量のメッセージに関連しています。Mule アプリケーションに ​On New Message​ ソースまたは ​Consume​ 操作とメッセージの手動肯定応答があり、メッセージのすべてのパスに適切な肯定応答またはセッション回復設定があるわけではない場合、Mule アプリケーションでコンシューマーが無応答になる場合があります。

このエラーを解決する手順は、次のとおりです。

ブローカー側で肯定応答されていないメッセージの深度をチェックし、アプリケーションロジックを確認します。

バインディングモード使用時の再デプロイメントエラーのトラブルシューティング

接続にバインディングモードを使用している場合、ドライバーは JNI リソースを読み込みます。JNI リソースは一度しか読み込めないため、アプリケーションを再デプロイすると、エラーがスローされます。

このエラーを解決する手順は、次のとおりです。

ドメインレベルでドライバー連動関係を追加します。これにより、アプリケーションの再デプロイメントが可能になります。

一般的なスローの理解

次に、一般的なスローメッセージとその解釈方法のリストを示します。

  • IBM-MQ:ACK

    処理中のメッセージの肯定応答のコンテキストでエラーが発生しました。
  • IBM-MQ:CONNECTIVITY

    接続が有効ではなくなりました。破棄されますが、アプリケーションの設定で定義されている場合、再接続ポリシーを適用できます。
  • IBM-MQ:CONSUMING

    WMQ からのメッセージのコンシューム中にエラーが発生しました。このエラーは保留中のメッセージが存在していないことに関連している場合もあります。
  • IBM-MQ:DESTINATION_NOT_FOUND

    IBM MQ Connector が宛先を発見または作成できません。
  • IBM-MQ:RETRY_EXHAUSTED

    操作の最大再試行回数に達しました。
  • IBM-MQ:SECURITY

    セキュリティ関連のエラーが原因でスローされた例外。
  • IBM-MQ:TIMEOUT

    要求された操作のタイムアウトを超えました。
  • IBM-MQ:ILLEGAL_BODY

    メッセージ本文が無効であり、サポートされる種別に変換できません。
  • IBM-MQ:PUBLISHING

    対象キューまたはトピックへのパブリッシュ中にエラーが発生しました。