Acknowledging prefetched messages using client acknowledge mode
---------------------------------------------------------------
Key: AMQ-3450
URL: https://issues.apache.org/jira/browse/AMQ-3450
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Reporter: Hariharan
We have a situation in front of us and its explained as below:
1. We have durable subscriber subscribed to a topic.
2. This durable subscriber is a perl script which is run by a daemon.
3. The perl script uses stomp to connect to the broker.
4. The perl script wakes up every 5 mins, checks for messages in the topic and
processes them in a batch by pre-fetching the messages.
5. The subscriber uses a client acknowledgement and acknowledges only the last
message of the batch.
6. We are using AMQ 5.5 with kahaDB persistence.
Now what we see is,
1. Even though the messages are processed in a batch and the last message is
acknowledged the inflight count does not come down.
2. Enqueue count, Dequeue count and Dispatch count do not match.
3. The journal files are not getting cleaned up.
I do understand that the journal files would be cleaned up once the references
to the messages are lost or removed (i.e. the messages are consumed). But does
it have to do anything with the various count attributes I see on the topic?
Also should I expect the inflight count to come down to 0 if client crashes and
then consumes all messages after come back live?
I also see that dequeue count stays at 0 even when the dispatch count and the
inflight counts change. I believe dequeue count has got a direct relation with
messages getting removed from the topic.
Please let me know if there could be any other reason that could cause the
journal files to stay back.
Thank you
Hari
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira