Fehlerbehebung, wenn keine Verbindung zum MQTT-Client hergestellt werden kann

Wenn Ihr MQTT-Client keine Verbindung zu einem Telemetriekanal herstellen kann, kann dies eine Reihe von Ursachen haben.

Vorgehensweise

Berücksichtigen Sie die folgenden möglichen Ursachen, um die Probleme mit einem MQTT-Client zu beheben, der keine Verbindung herstellen kann:

  • Stellen Sie sicher, dass der Warteschlangenmanager und der Telemetrieservice (MQXR) aktiv sind.

    Starten Sie den Warteschlangenmanager. Der MQXR-Service sollte standardmäßig mit dem Warteschlangenmanager gestartet werden. Wenn Sie den manuellen Start der MQXR-Serivcesteuerung konfiguriert haben, müssen Sie den Service möglicherweise aus dem Ordner Services starten. Weitere Informationen zum Starten des MQXR-Service finden Sie unter MQXR-Service starten und stoppen.

  • Stellen Sie sicher, dass der Telemetriekanal und der Telemetrieservice (MQXR) definiert sind und ordnungsgemäß ausgeführt werden.

    Sie können den MQXR-Service manuell definieren und die Stanardübertragungswarteschlange des Warteschlangenmanagers auf SYSTEM.MQTT.TRANSMIT.QUEUE setzen, wodurch diese Vorrang vor einer vorhandenen Standardübertragungswarteschlange hat. Dadurch kann der Warteschlangenmanager in Telemetry verwendet werden. Alternativ dazu können Sie den Assistenten Musterkonfiguration definieren in der Telemetry-Begrüßungsseite ausführen, falls dies nicht bereits geschehen ist.

  • Haben Sie Ihren eigenen Client geschrieben?

    Falls ja, haben Sie Ihre Clientanwendung mit dem Protokoll MQTT V3 und nicht mit dem Protokoll der Version 5 geschrieben? Versuchen Sie, den Fehler einzugrenzen, indem Sie das Dienstprogramm für den MQTT-Client ausführen.

  • Haben Sie einen gültigen Namen für die Clientkennung?

    Beim Verbindungsaufbau mit IBM® MQ sollte die MQTT-Client-ID kleiner als 23 Zeichen sein und nur alphabetische Zeichen, numerische Zeichen sowie die Zeichen Punkt (.), Schrägstrich (/), Unterstrich(_) und Prozentzeichen (%) enthalten.

  • Wurde eine Verbindung zu Ihrem MQTT-Client hergestellt und das MQTT-Keepalive-Intervall ausgeschöpft?

    Beim Keepalive-Attribut handelt es sich um das Intervall in Millisekunden, nach dem die Verbindung zum MQTT-Client wegen Inaktivität getrennt wird. Wenn der MQXR-Service innerhalb des Keepalive-Intervalls keine Mitteilung vom Client empfängt, wird die Verbindung zum Client getrennt.

  • Versucht eine große Anzahl von MQTT-Clients gleichzeitig eine Verbindung zu einem Telemetriekanal herzustellen?

    Jeder Telemetriekanal verfügt über ein backlog-Attribut. Dabei handelt es sich um eine Reihe von gleichzeitig bestehenden Verbindungsanforderungen, die der Telemetriekanal unterstützt. Stellen Sie sicher, dass für den Wert keine Zahl festgelegt ist, die kleiner als die Anzahl der MQTT-Clients ist, die eine Verbindung herstellen möchten.

  • Stellen Sie sicher, dass die TCP/IP-Verbindung noch immer aktiv ist.