---
schema_version: "1"
id: 568e2f4a7e5a833850afb2abf9a059fd78534af79f95fc8c8f13ded5b77a9249
title: MQTT Connector のトラブルシューティング
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mqtt3-connector/1.0/mqtt3-connector-troubleshooting.md
canonical_url: https://docs.mulesoft.com/jp/mqtt3-connector/1.0/mqtt3-connector-troubleshooting
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 4e3fb6c0a2cc5f5e0a50a069a0d90ef2288db0427c9f85215f934ac1573f3f72
description: MuleSoft Documentation Site
release: "1.0"
latest: true
---
# MQTT Connector のトラブルシューティング

MQTT 用 Anypoint Connector (MQTT Connector) のトラブルシューティングを行うには、冗長ログの有効化と、スローされる一般的なメッセージの解釈に関する情報を理解しておきます。

## [](#冗長ログの有効化)冗長ログの有効化

コネクタの冗長ログを有効化するには、コネクタと Eclipse Paho ドライバーのログをアクティブ化する必要があります。

### [](#mqtt-connector-の冗長ログの有効化)MQTT Connector の冗長ログの有効化

設定ファイルで冗長ログを有効にする手順は、次のとおりです。

1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。
2. アプリケーションのプロジェクト名を開きます。
3. `src/main/resources`​ パスフォルダーを開きます。
4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。
5. `<Loggers>`​ タグ内に ​`<AsyncLogger>`​ タグを追加します。
    
    ```xml
    			<Loggers>
    				...
    				<AsyncLogger name="com.mulesoft.connectors.mqtt3" level="TRACE"/>
    				...
    			</Loggers>
    ```
6. アプリケーションの変更を保存します。
7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。

### [](#eclipse-paho-ドライバーの冗長ログの有効化)Eclipse Paho ドライバーの冗長ログの有効化

MQTT Connector の基盤となるドライバーである Eclipse Paho では、Java Util Logging が使用されます。アプリケーションのログファイルでドライバーのログメッセージを確認する必要がある場合は、次の手順に従ってアプリケーションに最新の ​`log4j-jul-2.xx.x.jar`​ バージョンを提供します。

1. `{MULE_HOME}/lib/boot`​ にある ​`log4j-core-2.xx.x.jar`​ のファイル名内のバージョンサフィックスを確認して、​`log4j`​ コアモジュールバージョンを識別します。
    
    埋め込み Mule Runtime Engine (Mule) の場合は、​`{AnypointStudio Folder}/Contents/Eclipse/plugins/org.mule.tooling.server.4.3.0.ee_7.3.5.202005112043/mule/lib/boot`​ に似たフォルダーを見つけます。
2. 公開 Maven リポジトリから同じバージョンの ​`log4j-jul-2.xx.x.jar`​ をダウンロードします。たとえば、Mule 4.3.0 の場合は ​`log4j-jul-2.13.1.jar`​ になります。
3. `log4j-jul-2.xx.x.jar`​ を ​`{MULE_HOME}/lib/boot`​ に配置します。
4. [Apache Logging Services](https://logging.apache.org/log4j/log4j-2.2/log4j-jul/index.html)​ サイトで文書化されているロギングレベルのマッピングに従って、Mule アプリケーションで、対応する ​`java.util.logging`​ カテゴリを追加します。次に例を示します。
    
    ```xml
    `<AsyncLogger name="org.eclipse.paho.client.mqttv3.logging.JSR47Logger" level="ALL"/>`
    ```
    
    `level`​ 属性では、Java Util Logging レベルを指定する必要があります。詳細は、 [Apache Logging Services](https://logging.apache.org/log4j/log4j-2.3/log4j-jul/index.html)​ で Java Util Logging レベルの変換テーブルを参照し、その同等の Log4j レベルを確認してください。

## [](#mosquitto-broker-の冗長ログの有効化)Mosquitto Broker の冗長ログの有効化

ロギングを設定するためのメカニズムはブローカーごとに異なります。Mosquitto ブローカーとロギングレベルを設定する手順は、次のとおりです。

1. 公式 Docker イメージを使用して、Mosquitto ブローカーをセットアップします。これを行うには、次のコマンドを実行します。

`docker run -it -p 1883:1883 \ -v /your/local/path/mosquitto.log:/mosquitto/mosquitto.log \ -v /your/local/path/mosquitto.conf:/mosquitto/config/mosquitto.conf eclipse-mosquitto`

このコマンドを使用して、ログファイル ​`mosquitto.log`​ と設定ファイル ​`mosquitto.conf`​ を指定します。

- `mosquitto.log`​ は、ブローカーがログメッセージを書き込むファイルです。
- `mosquitto.conf`​ は、ブローカーの設定ファイルです。

1. `mosquitto.conf`​ 設定ファイルで目的のログレベルを設定します。次に例を示します。
    
    ```text
    # Unencrypted MQTT over TCP
    # for listener at port 1883
    listener 1883
    allow_anonymous true
    # =================================================================
    # Logging
    # =================================================================
    # Route log messages to log file
    log_dest file /mosquitto/mosquitto.log
    # Types of messages to log. Use multiple log_type lines for logging
    # multiple types of messages.
    log_type debug
    log_type error
    log_type warning
    log_type notice
    log_type information
    ```

前述のファイルの最初の 2 行でポート 1883 のリスナーをセットアップします。認証ログイン情報は必須ではありません。

ロギングセクションで、マウントした ​`mosquitto.log`​ ファイルにログを書き込む必要があることと、ブローカーですべてのレベルのメッセージを記録する必要があることを指定します。

テストで何が必要かに応じて、異なる設定を持つさまざまなリスナーを追加できます。次に例を示します。

```text
per_listener_settings true

# Unencrypted MQTT over TCP
listener 1883
allow_anonymous true

# Unencrypted MQTT over TCP
listener 1884
password_file /mosquitto/config/mosquitto.passwd

listener 8080
protocol websockets
allow_anonymous true
```

前述のファイルでは、3 個の個別のリスナーを設定しました。

- ポート 1883 では、MQTT 経由の匿名接続を許可するエンドポイントを指定しました。
- ポート 1884 では、パスワードファイルを指定しました。ブローカーはここで認証用のユーザー名とパスワードが見つかることを期待します。
- ポート 8080 では、WebSockets 接続を許可することを指定しました。

個別の設定を使用して個々の各リスナーを設定するには、まず ​`per_listener_settings true`​ を設定する必要があります。

## [](#一般的なスローの理解)一般的なスローの理解

ここでは、一般的なスローメッセージとその解決方法を示します。

- MQTT3:CONNECTIVITY
    
    メッセージのパブリッシュ中にクライアントがブローカーから切断されました。
- MQTT3:INVALID\_TOPIC
    
    トピックが無効です。たとえば、名前が短すぎるか、名前が長すぎるか、名前に無効な文字が含まれます。
- MQTT3:PERSISTENCE
    
    メッセージのパブリッシュ時に、信頼性の高いメッセージング用の永続的なデータの読み取りまたは書き込み中にエラーが発生しました。
- MQTT3:PUBLISH
    
    メッセージのパブリッシュ中にエラーが発生しました。
- MQTT3:RETRY\_EXHAUSTED
    
    すべての再接続の試行に失敗しました。
- MQTT3:WRITE\_TIMEOUT
    
    サーバーへのメッセージの書き込みを待機している間にクライアントがタイムアウトしてエラーが発生しました。

## [](#関連情報)関連情報

- [MuleSoft ヘルプセンター](https://help.mulesoft.com)
- [Known Issues](https://help.salesforce.com/s/issues)