Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

From the Chariot UI navigate to the Alerts in the left menu bar. Select Types and enable the alerts for MQTT_DISCONNECT

...

If we can see in the logs that the MQTT broker is continually forcefully disconnecting an existing connection to allow another client with the same Client ID to connect, as shown below, you have Colliding Client IDs. If not, we have a Colliding Edge Node IDs issue.



Anchor

...

ResolvingCollidingClientID

...

ResolvingCollidingClientID
Resolving Colliding Client ID

To resolve the colliding Client IDs you will need to review your system configurations on the physical Edge Nodes identified and remove the conflicts.

...

We will use the logging associated with your Chariot or MQTT Engine instance to determine the physical or virtual Edge Nodes with duplicate Group and Node IDs.


Anchor
ChariotEdgeNode
ChariotEdgeNode
Chariot

From the Chariot UI navigate to the Alerts in the left menu bar. Select Types and enable the alerts for SPARKPLUG_GROUP_EDGE_COLLISION

Under Live Alerts, we can see in the logs the Edge Node ID along with the Client IDs causing the collisions.

The next step is to review and update as necessary the configuration for each of the listed Client IDs. If using MQTT Transmission, see here for how to identify the Client IDs from Ignition Designer.

Image Added


Anchor
MQTTEngineEdgeNode
MQTTEngineEdgeNode
MQTT Engine

From the Ignition UI connected to your instance of MQTT Engine, navigate to Status > Diagnostic > Logs.

Tip
Read the user manual Diagnostic - Logs explaining how to use the Logs console in Ignition 

Set the debug level for the com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugBPayloadHandler logger to TRACE and set the filter of the Logs view to SparkplugBPayloadHandler.

You will see errors logged indicating that data messages (type of DDATA) are not being handled correctly along with rebirth requests to the duplicate Edge Node ID.


Image Added


Expanding the Failed to handle DDATA message exposes the sequence number error we would expect in this scenario. 

Image Added


Set the debug level for the io.moquette.spi.impl.ProtocolProcessor logger to TRACE and in the filter search for the NBIRTH messages for the duplicate Edge Node ID. In this example the filter will be for Lakeside/NBIRTH/Finished Goods. Now we can see which Client IDs are responding to the requests. 

The next step is to review and update as necessary the configuration for each of the listed Client IDs. If using MQTT Transmission, see here for how to identify the Client IDs from Ignition Designer.

Image Added

Anchor
DesignerClientIDs
DesignerClientIDs
Finding Client IDs using Ignition Designer


Anchor
ResolvingCollidingEdgeNodes
ResolvingCollidingEdgeNodes
Resolving Colliding Edge Nodes