[ https://issues.apache.org/jira/browse/AMQ-7395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17031728#comment-17031728 ]
Aleksander BARSZCZEWSKI commented on AMQ-7395: ---------------------------------------------- Timothy - you are right, but I think it limits functionality and I think there is no point to not return this headers (along with JMSXGroupSeq maybe) in a MESSAGE frame. Also AFAIK all other headers that are mentioned as SEND headers are returned in MESSAGE. Moreover other headers like priority / correclation-id are also returned in MESSAGE but they are documented only for SEND (same as JMSXGroupID in docs). > 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: 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 > Assignee: Jean-Baptiste Onofré > Priority: Major > > 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. > --- > > What I tracked so far is that this test > [https://github.com/apache/activemq/blob/9abe2c6f97c92fc99c5a2ef02846f62002a671cf/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/Stomp11Test.java#L703] > does not operate on what ActiveMQ sent over STOMP - instead it uses JMS > Consumer to test how message is delivered. > -- This message was sent by Atlassian Jira (v8.3.4#803005)