Azure Injector Not Sending DBIRTH for New Device (without a full refresh of the injector)

I’m encountering an issue with the Azure Injector setup in my Ignition environment and would appreciate some clarification.

Setup:

  • I have configured the Azure Injector on a central Ignition gateway to send data to an Azure Event Hub.

  • On an Ignition Edge gateway, I added a new device under an existing Node.

  • This new device is successfully auto-discovered on the central Ignition via MQTT Transmission, Distribution, and Engine.

Problem:

Even though the new device is added under a tag path that the Azure Injector is configured to publish, no DBIRTH message is sent for the new device.
Triggering a write to “Discover Edge Nodes” does not result in a DBIRTH being sent.
However, if I manually click “Refresh” in the Azure Injector, the DBIRTH is sent, and the data appears in Event Hub.

Questions:

  1. Is it expected behavior that adding a new device under an existing node requires a full refresh of the Azure Injector to trigger a DBIRTH?

  2. Does performing a refresh risk data loss for other tags/devices, even if Store and Forward is enabled?

Best regards
Karl

Before I answer your direct questions, I should note that I’m not sure how the auto publishing in Transmission is working. Transmission does detect these changes, but it should never publish anything based on those changes without some sort of intervention, such as a refresh.

I should also note that ‘Discover Edge Nodes’ will only pick up new Edge Node folders that have been created. It will not pick up new folders and tags under existing Edge Nodes.

On you questions:

  1. If the device was added under an existing Edge Node, a full refresh, or an ‘edge node refresh’ will do it. See below for the tags involved:


    If the Edge Node didn’t previously exist, a ‘discover edge nodes’ click will bring in the new Edge Node and Device.

  2. Yes, loss of data is possible. The underlying tag listener briefly stops as the tag tree gets built out again. There is synchronization to make sure tag change events are not missed from the first one detected for each tag. Depending on the number of tags, it can take a bit of time to get to all of them. As a result, changes that occur before each tag config is read will be missed and not pushed.

1 Like