MQTT クライアントが接続に失敗する場合の問題の解決
MQTT クライアントが遠隔測定チャネルに接続できない場合は、いくつもの原因が考えられます。
手順
MQTT クライアントが接続に失敗する問題を診断するには、以下の原因を考慮に入れてください。
- キュー・マネージャーおよび遠隔測定 (MQXR) サービスが実行中であることを確認してください。
キュー・マネージャーを開始します。デフォルトでは、キュー・マネージャーと一緒に MQXR サービスが開始するはずです。MQXR サービス制御を手動で開始するように構成した場合には、「サービス」フォルダーから、このサービスを開始する必要があります。MQXR サービスの開始について詳しくは、MQXR サービスの開始および停止を参照してください。
- 遠隔測定チャネルと遠隔測定 (MQXR) サービスが正しく定義されて実行されていることを確認してください。
MQXR サービスを手動で定義して、キュー・マネージャーのデフォルト送信キューを
SYSTEM.MQTT.TRANSMIT.QUEUE
に設定できます。この設定は、既存のデフォルト送信キューよりも優先されます。 これにより、キュー・マネージャーが Telemetry に適したものになります。あるいは、Telemetry ウェルカム・ページから「サンプル構成の定義」ウィザードを実行することを検討してもよいでしょう (まだ実行していない場合)。 - 独自のクライアントを作成しましたか?
そうであれば、MQTT v5 プロトコルではなく v3 プロトコルを使用するクライアント・アプリケーションを作成しましたか? MQTT クライアント・ユーティリティーを実行することによって問題を切り分けてみてください。
- クライアント ID 名は有効ですか?
IBM® MQ に接続する際、MQTT クライアント ID は 23 文字未満でなければならず、英字、数字、ピリオド (.)、スラッシュ (/)、下線 (_)、パーセント記号 (%) のみで構成されている必要があります。
- MQTT クライアントを接続した後に MQTT キープアライブ間隔が経過しましたか?
キープアライブ属性は、非アクティブのために MQTT クライアントが切断されるまでの間隔です (ミリ秒単位)。 MQXR サービスは、キープアライブ間隔内にクライアントからの通信を何も受信しなければ、クライアントから切断します。
- 多数の MQTT クライアントが同時に遠隔測定チャネルに接続しようとしていますか?
どの遠隔測定チャネルにも、バックログ属性があります。これは、遠隔測定チャネルがサポートする同時接続要求数です。 接続しようとする MQTT クライアントの数よりも小さい数に値が設定されていないことを確認してください。
- TCP/IP 接続が現在もアクティブであることを確認してください。