Azure / azure-iot-protocol-gateway

Azure IoT protocol gateway enables protocol translation for Azure IoT Hub
Other
224 stars 152 forks source link

mqtt-dup property handling #113

Open Draczech opened 6 years ago

Draczech commented 6 years ago

Setup Description

In my company's setup we use set of services (written in Java + Spring) running as Docker swarm containers. One of these services takes care of processing messages from IoT Hub, augmenting them and dispatching them to their respective destinations (mostly Service Bus queues).

When an event is read from IoT Hub, it is read by Event Processor Host and all of its application properties are copied while system properties are ignored apart from sender device ID.

When a message is sent to the receiver's queue, the Spring's JmsTemplate is used and BytesMessage is created with the payload and properties read from the initial event's application properties as well as properties collected during message augmentation are assigned to it as String properties.

Problem Description

Sometimes when trying to send the message via JMS tools to the Service Bus queue we get following JMSException:

Identifier contains invalid JMS identifier character '-': 'mqtt-dup'

I haven't found the specific messages causing this problem, but I presume that the mqtt-dup is used as value of the DupProperty and this property is assigned not as system property of an event, but as application property. Then this property slips through during reading the event from IoT Hub and causes incompatibility issues with JMS when trying to apply it to a JMS message.

I only found such property value used in iot protocol gateway code so that is why ask here if such problem is reald or if I should search for the root of the issue elsewhere. Thanks for any comment on this!

Draczech commented 6 years ago

This issue was caused by the problem in azure-iot-sdk-csharp library and is now reported properly as issue 329 there. If you don't find any relevant connection to it in this project, feel free to close this issue. Thanks