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
>

Reply via email to