You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by mjustin <mi...@gmx.net> on 2009/03/12 20:17:28 UTC

Disappearing messages with Stomp and Client Acknowledge

Hello,

while working on the Delphi Stomp client library for ActiveMQ I encountered
a strange thing with CLIENT_ACKNOWLEDGE, which also appears with the Java
Stomp client implementation in version 5.2 and also (but not so frequently)
with 5.3.

For my test, I use the Java messageproducer and create 100 messages in the
TOOL.DEFAULT queue first:

Then, I consume 10 messages at a time using the StompConnection and a
modified StompTest class with this test method from command line (without
JUnit):


    public void testSubscribeWithAutoAck() throws Exception {

        String frame = "CONNECT\n" + "login: system\n" + "passcode:
manager\n\n" + Stomp.NULL;
        stompConnection.sendFrame(frame);

        frame = stompConnection.receiveFrame();
        System.out.println(frame);

        frame = "SUBSCRIBE\n" + "destination:/queue/TOOL.DEFAULT" + "\n" +
"ack:auto\n\n" + Stomp.NULL;
        stompConnection.sendFrame(frame);

        for (int i=0; i < 10; i++) {
          frame = stompConnection.receiveFrame();
	    System.out.println(frame);
        }

        frame = "DISCONNECT\n" + "\n\n" + Stomp.NULL;
        stompConnection.sendFrame(frame);

        System.out.println("Disconnect frame sent");
    }


With ActiveMQ 5.2 (and also my Delphi client), I frequently fail to retrieve
all messages, because suddenly all remaining messages in the queue
disappear.

With ActiveMQ 5.3, I have so far only seen many cases where messages have
been skipped, and they are also no longer visible on the server. But no case
of disappearing of all remaining messages occurred in my small number of
tests, so it looks like something has improved.

With the native Java JMS client, I have never experienced this so it looks
like a Stomp specific issue. I have enabled Stomp trace level logging and
can see that the messages which disappear from the queue are all displayed
in the log as being sent, so they are somewhere (in a buffer?) between the
broker and the client, from the broker's point of view they have been
received, the client however doesn't fetch them from the connection.

Should I report it in JIRA?

Best Regards
Michael Justin
-- 
View this message in context: http://www.nabble.com/Disappearing-messages-with-Stomp-and-Client-Acknowledge-tp22477461p22477461.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.