解決 MQTT 用戶端無法連接的相關問題

如果 MQTT 用戶端無法連接至遙測通道,則可能有多種原因。

程序

請考量下列原因,來診斷 MQTT 用戶端無法連接的相關問題:

  • 檢查佇列管理程式及遙測 (MQXR) 服務是否在執行中。

    啟動佇列管理程式。 依預設,MQXR 服務應該會隨佇列管理程式一起啟動。 如果您已配置 MQXR 服務控制以進行手動啟動,則可能必須從服務資料夾啟動該服務。 如需啟動 MQXR 服務的相關資訊,請參閱 啟動和停止 MQXR 服務

  • 檢查遙測通道和遙測 (MQXR) 服務是否已正確定義,且在正確執行中。

    您可以手動定義 MQXR 服務,並將佇列管理程式的預設傳輸佇列設為 SYSTEM.MQTT.TRANSMIT.QUEUE,其優先順序高於現有的預設傳輸佇列。 這會讓佇列管理程式適合於 Telemetry。 此外,您可能想要從 Telemetry 歡迎使用頁面來執行「定義配置範例」精靈(若您尚未這樣做的話)。

  • 您是否已撰寫自己的用戶端?

    如果您已撰寫用戶端應用程式,則它是使用 MQTT 第 3 版通訊協定,而不是使用第 5 版通訊協定嗎? 透過執行 MQTT 用戶端公用程式,來嘗試找出問題所在。

  • 您的用戶端 ID 名稱是否有效?

    連接至 IBM® MQ時, MQTT 用戶端 ID 應該少於 23 個字元,且只能包含英文字母、數值字元以及句點 (.)、正斜線 (/)、底線 (_) 和百分比符號 (%)。

  • 您是否已連接 MQTT 用戶端並耗盡 MQTT keep alive 間隔?

    保持作用中屬性是以毫秒為單位的時間間隔,在該時間間隔之後,MQTT 用戶端會由於閒置而切斷連線。 如果 MQXR 服務在保持作用中時間間隔內,未收到來自用戶端的任何通訊,則會切斷與用戶端的連線。

  • 是否有許多 MQTT 用戶端嘗試同時連接至遙測通道?

    每一個遙測通道都具有待辦事項屬性。 這是遙測通道所支援的並行連線要求數目。 請確保未將該值設為小於嘗試連接的 MQTT 用戶端數目。

  • 請檢查 TCP/IP 連線是否仍在作用中。