[ 
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.

Reply via email to