Command and control not working as expected when receiving warning in enmasse/qpid broker
See original GitHub issueWe are experiencing issues with the command and control functionality. We currently have 2 devices which connect to the hono mqtt adapter (version 1.0.1). From time to time, the subscription is not done properly which results in following warnings on the broker of enmasse:
2019-11-21T16:17:31.827Z WARN [server] AMQ222165: No Dead Letter Address configured for queue control/tenant/device in AddressSettings
2019-11-21T16:17:31.828Z WARN [server] AMQ222166: No Expiry Address configured for queue control/tenant/device in AddressSettings
For the sake of completeness: the device is in fact a gateway (in the old sense of the word where other devices have a via property in which the gateway is configured) but subscribes to hono with it’s own address. I don’t know the exact reason yet, but when I see the warnings in the broker, the command and control messages (sent to control/tenant/device) are not received in the adapter. When I restart the adapter and reconnect the devices and I’m not getting the warnings, command and control works just fine. Whenever I’m getting the warnings, the commands are not received by hono. I can’t seem to figure out in which cases I’m getting the warnings. Things I’ve done in order to reproduce this:
- Restart device (results in reconnect of the device)
- Restart the mqtt adapter (results in both devices reconnecting at the ‘same’ time). Most of the times (not always) this results in 1 device being able to receive commands and the other not.
- Restart the mqtt adapter while the devices are not connected. Reconnect the devices one by one results in (apparantly) better odds of not receiving the warning.
As stated, I’m not sure how to reproduce this. The only thing I’m sure of is the fact that we do not receive commands when the warning is thrown by the enmasse/qpid broker.
Any ideas?
Issue Analytics
- State:
- Created 4 years ago
- Comments:6 (6 by maintainers)
Top GitHub Comments
That was the issue! Thanks for responses @sophokles73 and @calohmn.
The command messages are not meant to be brokered, so I think you should use a different address type for the command addresses in EnMasse, namely the
anycast
type. Aside from being a brokered address type, thetopic
type you mentioned would also not fit because it’s a multicast type (each message being forwarded to all subscribers). As of now we only use the anycast pattern in Hono.