You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2013/09/09 18:03:51 UTC

[jira] [Commented] (AMQ-4669) StoreDurableSubscriberCursor cursor is instantiated twice if PendingDurableSubscriberPolicy is explicitly configured, then results in missing TopicStorePrefetch instance in it.

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

Timothy Bish commented on AMQ-4669:
-----------------------------------

Have you tested a later release.  In the 5.9-SNAPSHOT code there is a test case 'ConcurrentProducerDurableConsumerTest' which uses this configuration and the consumer receives its messages without issue.  
                
> StoreDurableSubscriberCursor cursor is instantiated twice if PendingDurableSubscriberPolicy is explicitly configured, then results in missing TopicStorePrefetch instance in it.
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-4669
>                 URL: https://issues.apache.org/jira/browse/AMQ-4669
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.7.0
>            Reporter: Jaewoong Choi
>
> If used, PendingDurableSubscriberPolicy is used twice for StoreDurableSubscriberCursor instantiation, meaning StoreDurableSubscriberCursor is instantiated twice: firstly at TopicRegion#createSubscription and secondly at DurableTopicSubscription#activate invocation.
> The critical side effect by the above is that, TopicStorePrefetch (internal PendingMessageCursor for persistent message store) is created/assigned only to the 1st store cursor, and then this 1st store cursor is replaced by the 2nd one.  And this 2nd cursor is used at runtime but without having TopicStorePrefetch cursor, so subscriptions cannot consume any published message.
> Simply, with the following code, topic durable subscribers never consume any published message.
> {code}
> PolicyEntry policyEntry = new PolicyEntry();
> policyEntry.setPendingDurableSubscriberPolicy(new StorePendingDurableSubscriberMessageStoragePolicy());
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira