MQTT 클라이언트 연결에 실패할 경우 문제 해결
MQTT 클라이언트가 텔레메트리 채널에 연결하지 못하는 경우, 여러 가지 원인이 있을 수 있습니다.
프로시저
MQTT 클라이언트 연결 실패의 문제점을 진단하려면 다음 이유를 고려하십시오.
- 큐 관리자 및 텔레메트리(MQXR) 서비스가 실행 중인지 확인하십시오.
큐 관리자를 시작하십시오. 기본적으로 MQXR 서비스는 큐 관리자와 함께 시작됩니다. MQXR 서비스 제어가 수동으로 시작되도록 구성했다면 서비스 폴더에서 서비스를 시작해야 합니다. MQXR 서비스 시작에 대한 자세한 정보는 MQXR 서비스 시작 및 중지의 내용을 참조하십시오.
- 텔레메트리 채널 및 텔레메트리(MQXR) 서비스가 올바르게 정의되어 실행 중인지 확인하십시오.
MQXR 서비스를 수동으로 정의하고 큐 관리자의 기본 전송 큐를
SYSTEM.MQTT.TRANSMIT.QUEUE
로 설정할 수 있습니다. 이 경우, 기존 기본 전송 큐보다 우선합니다. 그러면 큐 관리자가 텔레메트리에 알맞게 됩니다. 또는 텔레메트리 시작 페이지에서 샘플 구성 정의 마법사를 실행하는 것도 좋습니다(아직 실행하지 않은 경우). - 사용자 고유의 클라이언트를 작성했습니까?
이 경우, MQTT v5 프로토콜이 아니라 MQTT v3 프로토콜에 대해 클라이언트 애플리케이션을 작성했습니까? MQTT 클라이언트 유틸리티를 실행하여 문제점을 분리하십시오.
- 올바른 클라이언트 ID 이름이 있습니까?
IBM® MQ에 연결하는 경우, MQTT 클라이언트 ID는 23자 미만이어야 하며 영문자, 숫자 문자, 마침표(.), 슬래시(/), 밑줄(_) 및 퍼센트 부호(%) 문자만 포함해야 합니다.
- MQTT 클라이언트에 연결했으며 MQTT 활성 유지(keepalive) 간격을 소모했습니까?
활성 유지(keepalive) 속성은 이 시간이 지나면 비활성 때문에 MQTT 클라이언트의 연결이 끊어지는 간격(밀리초)입니다. MQXR 서비스가 활성 유지(keepalive) 간격 내에 클라언트로부터 통신을 수신하지 않는 경우, 클라이언트로부터 연결이 끊어집니다.
- 다수의 MQTT 클라이언트가 동시에 텔레메트리 채널에 연결하려고 시도 중입니까?
모든 텔레메트리 채널에는 백로그 속성이 있습니다. 이 속성은 텔레메트리 채널이 지원하는 동시 연결 요청의 수입니다. 연결을 시도하는 MQTT 클라이언트의 수보다 적게 값이 설정되지 않았는지 확인하십시오.
- TCP/IP 연결이 아직 활성 상태인지 확인하십시오.