Custom Properties Reference
allowCustomNamespacesQos1
By default, MQTT Engine subscribes to Custom Namespace topics using QoS 0.
Enabling the allowCustomNamespacesQos1 custom property allows Custom Namespace subscriptions to use QoS 1, providing at-least-once message delivery for non-Sparkplug MQTT topics.
Note
This feature applies only to Custom Namespaces. Sparkplug Host Applications do not support QoS 1 subscriptions.
Version Availability
- Ignition 7: MQTT Engine 3.4.10 or later
- Ignition 8: MQTT Engine 4.0.4 or later
Enable QoS 1 Support
On the MQTT Engine > General configuration page, under Advanced, set Custom Properties to:
{
"allowCustomNamespacesQos1": true
}
After saving the configuration, two additional configuration options become available:
- Clean Session on Servers > Advanced
- QoS 1 on Namespaces > Custom > General > Optional
(Insert image showing the Custom Properties configuration.)
Configure QoS 1 Subscriptions
To enable QoS 1 subscriptions with retained messages:
- Configure a Client ID on Servers > Advanced.
- Clear the Clean Session checkbox.
- Open Namespaces > Custom > General.
- Enable the QoS 1 option.
(Insert image showing the Clean Session option.)
(Insert image showing the QoS 1 checkbox.)
Verification
To verify that a Custom Namespace is subscribing with QoS1:
- Enable DEBUG logging for EngineServersSettings in the Ignition Gateway Logs.
- Save the Custom Namespace configuration.
The log should contain a message similar to:
Subscribing on topic: abc/# with QoS1
Notes
- If Client ID is empty or Clean Session is enabled, the QoS 1 setting is ignored and an error is logged.
- Non-clean sessions and in-flight messages are not persisted to disk. If MQTT Engine or Ignition is restarted, queued messages are not delivered until the client reconnects using the same Client ID.
- Deleting a Custom Namespace configured for QoS 1 unsubscribes MQTT Engine from the MQTT Server. Messages published while the namespace is deleted are not retained for later delivery.