[
https://issues.apache.org/activemq/browse/AMQ-1797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=47080#action_47080
]
durokuruc edited comment on AMQ-1797 at 11/5/08 8:56 AM:
-----------------------------------------------------------
I've tested AMQ 5.2 SNAPSHOT for this fix with partial success. There isn't any
problem every message from Topic is acknoledged but solution doesn't work when
some of messages are regulary received by durable subscribers and some of them
are redeliverd till they get to ActiveMQ.DLQ due to exceeding max redelivery
count.
To duplicate error see attached zip .
-TopicRedeliver creates two separetes durable consumers, which consumes every
odd message and recover session if message number is even. Parameter
"jms.redeliveryPolicy.maximumRedeliveries=1" causes that after first redelivery
message is going to dead letter queue.
-DlqConsumer consumes messages from ActiveMQ.DLQ
-TopicProducer sends messages to testTopic
Reproducing steps:
1. run DlqConsumer
2. run TopicRedeliver
3. run TopicProducer
Results:
1.
%ACTIVEMQ_HOME%/data/journal dir contains several data-x files. More messages
you send more data-x files stays in mentioned dir and consumes disc
space.(however some of them are deleted this behaviour isn't predictible)
Something is going obviously wrong because all messages are consumed from
destinations (testTopic and ActiveMQ.DLQ).
2.
Size of ActiveMQ.DLQ shown in jConsole is possitive number, despite that
DlqConsumer doesn't consume messages anymore.
3.
If TopicRedeliver and DlqConsumer are restarted, any further sending of
messages may causes folowing exception:
ERROR RecoveryListenerAdapter - Message id
ID:sk1d069c-4253-1225900870814-0:0:1:1:42 could not be recovered from the data
store - already dispatched
was (Author: durokuruc):
-TopicRedeliver creates two separetes durable consumers, which consumes
every odd message and recover session if message number is even. Parameter
"jms.redeliveryPolicy.maximumRedeliveries=1" causes that after first redelivery
message is going to dead letter queue.
-DlqConsumer consumes messages from ActiveMQ.DLQ
-TopicProducer sends messages to testTopic
-textMessageFile.txt is file which text is sent by producer (place it on
classpath)
> persistent messages for durable subscribers are not purged from disc storage
> ----------------------------------------------------------------------------
>
> Key: AMQ-1797
> URL: https://issues.apache.org/activemq/browse/AMQ-1797
> Project: ActiveMQ
> Issue Type: Bug
> Components: Message Store
> Affects Versions: 5.1.0
> Environment: WinXP,
> java version "1.6.0_05"
> Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
> Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)
> Reporter: Juraj Kuruc
> Assignee: Rob Davies
> Fix For: 5.2.0
>
> Attachments: Storage_cleanup_Redelivery_test.zip,
> textMessageFile.txt, TopicConsumers.java, TopicProducer.java
>
>
> I have some problems with multiple durable subscribers while persistent
> delivery is used.
> Message should be deleted from disc storage (periodically) after all
> interested subscribers have received it. In case there was one durable
> subscriber everything woks just fine. However when I tested this scenerio
> with two durable subscribers on topic, the messages were never deleted (disc
> usage is continously consumed and never purged).
> Test case description:
> -using default activemq.xml configuration file from binary distribution
> -TopicConsumers.java creates two separetes durable consumers
> -textMessageFile.txt is file which text is sent by producer (place it on
> classpath)
> Result:
> -all messages there were send were also received by both subscribers
> -after more then 100k messages data directory is about 1GB.
> -restarting activemq with so big persistent storage takes very long time
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.