Risoluzione dei problemi in caso di mancata connessione da parte del client MQTT

Se il client MQTT non è in grado di connettersi a un canale di telemetria, i motivi potrebbero essere diversi.

Procedura

Considerare i seguenti motivi per diagnosticare il problema con un client MQTT che non riesce a connettersi:

  • Verificare che il gestore code e il servizio di telemetria (MQXR) siano in esecuzione.

    Avviare il gestore code. Per impostazione predefinita, il servizio MQXR deve essere avviato con il gestore code. Se è stato configurato il controllo del servizio MQXR per l'avvio automatico, potrebbe essere necessario avviare il servizio dalla cartella Servizi. Per ulteriori informazioni sull'avvio del servizio MQXR, consultare Avvio e arresto del servizio MQXR.

  • Verificare che il canale di telemetria e il servizio di telemetria (MQXR) siano definiti e in esecuzione nel modo corretto.

    È possibile definire manualmente il servizio MQXR e impostare la coda di trasmissione predefinita del gestore code su SYSTEM.MQTT.TRANSMIT.QUEUE, che ha la precedenza su una coda di trasmissione predefinita esistente. Questo fa sì che il gestore code sia adatto alla telemetria. In alternativa, è possibile eseguire la procedura guidata Definisci configurazione di esempio dalla pagina di benvenuto di Telemetry, se non è già stato fatto.

  • Il client è stato scritto?

    Se sì, l'applicazione client è stata scritta con il protocollo MQTT v3 invece del protocollo v5? Cercare di isolare il problema mediante l'esecuzione del programma di utilità del client MQTT.

  • Si dispone di un nome dell'identificativo client valido?

    Quando si stabilisce una connessione a IBM® MQ, l'identificativo client MQTT deve avere una lunghezza inferiore ai 23 caratteri e contenere solo caratteri alfabetici, caratteri numerici e i caratteri punto (.), barra (/), segno di sottolineatura (_), e segno di percentuale (%).

  • È stato eseguito il collegamento al client MQTT e l'intervallo MQTT keep alive ?

    L'attributo keepalive è l'intervallo in millisecondi dopo il quale il client MQTT viene disconnesso per inattività. Se il servizio MQXR non riceve alcuna comunicazione dal client nell'intervallo keep alive, si disconnette dal client.

  • Un grande numero di client MQTT sta cercando di connettersi contemporaneamente al canale di telemetria?

    Ogni canale di telemetria ha un attributo backlog. Questo è il numero di richieste di connessione concomitanti supportato dal canale di telemetria. Accertarsi che il valore non sia impostato su un numero inferiore al numero di client MQTT che sta cercando di connettersi.

  • Verificare che la connessione TCP/IP sia ancora attiva.