MQTT Transmission: Store & Forward

On each of these questions:

  1. Is there a limit to the size of the Store & Forward data when using the buffer “Disk-Backed” option for History (aside from the practical limit of hard drive space)?

There is no limit. However, as size increases performance and access to the data slows. So, it is possible to run into performance issues related to read/write before you actually run into a hard drive space issue.

  1. Is there a duration limit to the “Store & Forward” buffer (i.e. Max duration of time that the specification can handle for Old data or is it just file size limits)?

There is no limit here either. Data is not dropped unless the size of the buffer is exceeded. When/if it is, the oldest data is dropped first.

  1. Where can I see this buffer file when “Enable History Storage by Default” is selected and History Store is set to “Disk-Backed”?

This will be stored in [ignition-install-dir]/user-lib/cls/data/h2/. It will be a ‘.db’ file with the name you’ve specified in your history store config. I should also note there are ‘MQTT Transmission info tags’ under the MQTT Transmission tag provider showing how much space the history store is using.

  1. If there are more than one MQTT Engines receiving data from an MQTT Transmission module, if one of the Engines disconnects temporarily, does the MQTT Transmission module continue transmitting to the Engine that is still Online while “buffering” (Store & Forward) for the Engine that is Offline?

Sparkplug (and MQTT Transmission) only support a single ‘primary host’ application. So, the above example will only honor one Engine that is the primary host. As a result it will also only store and forward based on the primary host’s connected status. This is something we’d like to fix/improve via the Sparkplug Working Group but it will likely be some time before we get this done.

1 Like