[ 
https://issues.apache.org/jira/browse/AMQ-6054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15018017#comment-15018017
 ] 

Christopher L. Shannon commented on AMQ-6054:
---------------------------------------------

Are you using KahaDB? I recommend that you submit a test case to demonstrate 
this issue so we can see if there is something specific about your 
configuration that is causing this because this is a very common use case and 
there are many tests to make sure that this works properly.  One example is the 
test class DurableSubscriptionOfflineTestBase (and all children classes) which 
test various cases of durables being able to be consumed after being offline 
and after a broker restart.

The KahaDB index keeps track of durable subscriptions and and which messages 
were acked so it should be able to recover messages on restart.

> Durable subscriber cannot receive the existing messages after AMQ restarts
> --------------------------------------------------------------------------
>
>                 Key: AMQ-6054
>                 URL: https://issues.apache.org/jira/browse/AMQ-6054
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.12.1
>         Environment: Redhat Linux
>            Reporter: Nevin Chen
>         Attachments: Web Console Snapshot.png
>
>
> *How to Reproduce*
> 1. Make a durable subscription to a topic from a JMS client.
> 2. Disconnect the JMS client.
> 3. Send a message to the subscribed topic from another JMS client.
> 4. Restart AMQ.
> 5. When the duarable re-connects to AMQ, it cannot receive the message sent 
> in step 3.
> *Cause Analysis*
> The message is saved in the persistent store successfully. However, when the 
> message is marshalled by the class MessageMarshaller, the field 
> regionDestination is not marshalled and saved to persistent store. When the 
> message is recovered from persistent store after restart, the 
> regionDestination filed of Message is empty so it is unknown which topic this 
> message belongs to.
> *Possible Cause*
> In the method 
> org.apache.activemq.broker.region.Topic.activate(ConnectionContext context, 
> final DurableTopicSubscription subscription), the 
> subscription.isRecoveryRequired() check is always false. The message cannot 
> go to the subscription.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to