activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Juraj Kuruc (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (AMQ-1797) persistent messages for durable subscribers are not purged from disc storage
Date Tue, 02 Dec 2008 13:12:05 GMT

    [ 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 12/2/08 5:11 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 goes 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

Using AMQ 5.2. stable release is even not possible run this test - after couple hundred messages
one of durable subscriber get stuck (see https://issues.apache.org/activemq/browse/AMQ-2021
) .


      was (Author: durokuruc):
    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 goes 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

Using AMQ 5.2. stable release is even not possible run this test - after couple hundred messages
one of durable subscriber get stuck .

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


Mime
View raw message