[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.
Cheers,
Lionel
More information about the rabbitmq-discuss
mailing list