I'm experiencing the same issue, both on ActiveMQ 4.1.1 and 5.2.0. Two questions: 1) It seems like broker is accepting the ACK and erroneously replying with the ERROR message. Is that correct? 2) Is this a bug and an intentional design to disallow STOMP clients from handle messages concurrently?
Any insight is appreciated. Thanks, Roger On Mon, Oct 22, 2007 at 3:42 AM, Sebastjan Trepca <tre...@gmail.com> wrote: > Hi all, > > I'm having problems with acknowledge order in ActiveMQ 4.1.1 using > STOMP protocol. I'm using a queue with async mode on. > > I'm also using these headers: > > SUBSCRIBE > activemq.dispatchAsync:'true' > activemq.noLocal:'true', > activemq.retroactive:'true', > activemq.prefetchSize:1000, > activemq.maximumPendingMessageLimit:1000, > > MESSAGE > expires:0, > persistent:'true', > priority:0, > > > > The problem occurs when I try to acknowledge messages in different > order then they were sent. > > So if producer sends messages with IDs: > 1 > 2 > 3 > > > I have to acknowledge them in the same order: > 1 > 2 > 3 > > Or else I get this error: > > ERROR org.apache.activemq.transport.stomp.ProtocolException: > Unexpected ACK received for message-id > [ID:localhost-47986-1193059223135-3:5:-1:1:26055] > at > org.apache.activemq.transport.stomp.ProtocolConverter.onStompAck(ProtocolConverter.java:242) > at > org.apache.activemq.transport.stomp.ProtocolConverter.onStompCommad(ProtocolConverter.java:141) > at > org.apache.activemq.transport.stomp.StompTransportFilter.onCommand(StompTransportFilter.java:71) > at > org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84) > at > org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137) > at java.lang.Thread.run(Thread.java:619) > > Is this a feature or a bug? Do I need to set some extra settings? > > Thanks, Sebastjan >