[
https://issues.apache.org/jira/browse/AMQ-7395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksander BARSZCZEWSKI updated AMQ-7395:
-----------------------------------------
Affects Version/s: 5.15.9
> JMSXGroupID header is not attached to message sent to STOMP/ws client.
> ----------------------------------------------------------------------
>
> Key: AMQ-7395
> URL: https://issues.apache.org/jira/browse/AMQ-7395
> Project: ActiveMQ
> Issue Type: Bug
> Components: AMQP, STOMP
> Affects Versions: 5.15.6, 5.15.9
> Environment: MacOS + Docker:
> docker run -p 61616:61616 -p 61614:61614 -p 8161:8161 -it -v
> conf:/opt/activemq/conf -v data:/opt/activemq/data rmohr/activemq
>
> Tested with Node.js [https://www.npmjs.com/package/@stomp/stompjs] stompjs
> client and with WireShark to debug raw messages sent from broker to client.
> Reporter: Aleksander BARSZCZEWSKI
> Priority: Minor
>
> I am connecting to ActiveMQ with STOMP over websocket. When I publish
> message(s) with JMSXGroupID the header is correctly set on message(s)
> (visible in GUI). The grouping algorithm also works correctly (messages from
> same group are directed to single consumer - I tested this). However
> JMSXGroupID header (and any other header containing group) is not attached
> to message sent from broker to client. On the other hand any custom
> user-defined headers (like "custom-header") are correctly both set on message
> sent by producer and received by consumer.
> Here is dump of raw message (using WireShark) sent form broker to client. It
> should have JMSXGroupID but it's missing.
> MESSAGE
> content-length:14
> expires:0
> destination:/queue/test
> ack:ID\c449700d2a71d-41667-1580831329460-10\c2
> subscription:sub-0
> priority:4
> custom-header:XXXX2
> message-id:ID\c449700d2a71d-41667-1580831329460-3\c9\c-1\c1\c2
> persistent:true
> timestamp:1580832022431
> test message 2
>
> This causes issue that when consumer/subscription has activemq.prefetchSize >
> 1 then it's not possible process messages from same groups on consumer side
> in correct order (assuming here that consumer "manually" ACKs each message
> ack: client-individual).
>
> Example case:
> MSG1: group = A
> MSG2: group = A
> MSG3: group = B
> MSG4: group = B
>
> When prefetchSize = 4 and consumer receives those 4 messages "at once" (let's
> say there is only one consumer so it receives all groups) then it's not
> possible by consumer to guess which of those messages can be processed and
> ACKed in parallel and which sequentially.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)