[rabbitmq-discuss] STOMP & message-id

Lionel Cons lionel.cons at cern.ch
Mon Aug 22 13:54:01 BST 2011

Tony Garnock-Jones writes:
 > STOMP mentions "message-id" for MESSAGE and ACK and NACK only. It doesn't
 > say anything about SEND.

It's true that the spec is silent about the meaning of "message-id" in SEND.

However, this is not a rhetorical question: a simple STOMP shovel will
read MESSAGE frames in and (re)write them as SEND frames.

The spec does include:

 | An application MAY add any arbitrary user defined headers to the SEND
 | frame. User defined headers are typically used to allow consumers to
 | filter messages based on the application defined headers using a
 | selector on a SUBSCRIBE frame. The user defined headers MUST be passed
 | through in the MESSAGE frame.

Is a user supplied "message-id" considered as "user defined headers"
so to be passed through? This is not clear...

 > I'm not sure this is a bug. It's certainly something that'd be difficult to
 > change, because of the way STOMP 1.1 is defined and the way RabbitMQ wants
 > to use the message ID field. In particular, there's no real way to let
 > people use their own user-supplied message-id values in an ACK or NACK
 > frame.

IMHO, if RabbitMQ indeed relies on the message-id field, it should
overwrite it and document this behaviour. This way, a user supplied
"message-id" won't create anymore a message that cannot be ack'ed.



More information about the rabbitmq-discuss mailing list