Connecting telemetry devices to a queue manager

Telemetry devices connect to a queue manager using an MQTT v3 client. The MQTT v3 client uses TCP/IP to connect to a TCP/IP listener called the telemetry (MQXR) service.

As an alternative to connecting telemetry devices directly to an MQTT server, you can connect the devices to an MQTT daemon for devices. The daemon is an advanced MQTT V3 client application that can also act as an MQTT edge server. Telemetry devices, and other MQTT clients (including other MQTT daemons for devices), can connect to an MQTT daemon for devices. The daemon for devices pools the device connections, and makes a single connection to the telemetry (MQXR) service. You can connect daemons in a hierarchy, increasing the number of devices that can be indirectly connected to IBM® MQ by many orders of magnitude.
Note: The daemon for devices is no longer available. For an alternative solution, see the eclipse.org Mosquitto project (https://eclipse.org/mosquitto).

Many telemetry devices pool their inputs into 2 MQTT daemons for devices. These in turn are pooled into another MQTT daemon for devices, which passes the pooled messages to IBM MQ. The incoming MQTT messages are received into MQ is through a telemetry (MQXR) service.

When you connect a telemetry device or a daemon for devices to a queue manager, the MQTT client initiates a TCP/IP connection using the MqttClient.connect method. Like IBM MQ clients, an MQTT client must be connected to the queue manager to send and receive messages. The connection is made at the server using a TCP/IP listener, installed with IBM MQ Telemetry, called the telemetry (MQXR) service. Each queue manager runs a maximum of one telemetry (MQXR) service.

The telemetry (MQXR) service uses the remote socket address set by each client in the MqttClient.connect method to allocate the connection to a telemetry channel. A socket address is the combination of TCP/IP host name and port number. Multiple clients that use the same remote socket address are connected to the same telemetry channel by the telemetry (MQXR) service.

If there are multiple queue managers on a server, split the telemetry channels between the queue managers. Allocate the remote socket addresses between the queue managers. Define each telemetry channel with a unique remote socket address. Two telemetry channels must not use the same socket address.

If the same remote socket address is configured for telemetry channels on multiple queue managers, the first telemetry channel to connect, wins. Subsequent channels connecting on the same address fail.

If there are multiple network adapters on the server, split the remote socket addresses between telemetry channels. The allocation of socket addresses is entirely arbitrary, as long as any specific socket address is configured on only one telemetry channel.

Configure IBM MQ to connect MQTT clients using the wizards provided in the IBM MQ Telemetry supplement for IBM MQ Explorer. Alternatively, follow the instructions in Configuring a queue manager for telemetry on Linux® and AIX® and Configuring a queue manager for telemetry on Windows to configure telemetry manually.