Issue Details (XML | Word | Printable)

Key: AMQ-2303
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Dejan Bosanac
Reporter: Dejan Bosanac
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
ActiveMQ

Durable consumers recovery

Created: 24/Jun/09 08:56 AM   Updated: 01/Jul/09 04:06 AM
Return to search
Issue 216 of 2405 issue(s)
<< Previous | AMQ-2303 | Next >>
Component/s: Broker
Affects Version/s: 5.2.0
Fix Version/s: 5.3.0

Time Tracking:
Not Specified

Issue Links:
Related
 


 Description  « Hide
When a broker with a lots of durable consumers goes down and is restarted with forced store recovery, producer fails with the following exception afterwards
2009-06-24 17:54:02,923 [127.0.0.1:55928] ERROR AbstractStoreCursor            - Failed to fill batch
java.lang.IllegalStateException: Message id ID:houdfrazierc.americas.progress.com-55015-1245858822880-1:45:1:1:1 could not be recovered from the data store for: topic://failoverTopic - already dispatched
	at org.apache.activemq.store.amq.RecoveryListenerAdapter.recoverMessageReference(RecoveryListenerAdapter.java:62)
	at org.apache.activemq.store.kahadaptor.KahaReferenceStore.recoverReference(KahaReferenceStore.java:88)
	at org.apache.activemq.store.kahadaptor.KahaTopicReferenceStore.recoverNextMessages(KahaTopicReferenceStore.java:307)
	at org.apache.activemq.store.amq.AMQTopicMessageStore.recoverNextMessages(AMQTopicMessageStore.java:60)
	at org.apache.activemq.broker.region.cursors.TopicStorePrefetch.doFillBatch(TopicStorePrefetch.java:91)
	at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:227)
	at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:99)
	at org.apache.activemq.broker.region.cursors.StoreDurableSubscriberCursor.reset(StoreDurableSubscriberCursor.java:224)
	at org.apache.activemq.broker.region.PrefetchSubscription.dispatchPending(PrefetchSubscription.java:574)
	at org.apache.activemq.broker.region.PrefetchSubscription.add(PrefetchSubscription.java:158)
	at org.apache.activemq.broker.region.DurableTopicSubscription.add(DurableTopicSubscription.java:197)
	at org.apache.activemq.broker.region.policy.SimpleDispatchPolicy.dispatch(SimpleDispatchPolicy.java:49)
	at org.apache.activemq.broker.region.Topic.dispatch(Topic.java:577)
	at org.apache.activemq.broker.region.Topic.doMessageSend(Topic.java:430)
	at org.apache.activemq.broker.region.Topic.send(Topic.java:368)
	at org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:354)
	at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:443)
	at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:224)
	at org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:95)
	at org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:133)
	at org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:455)
	at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:639)
	at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:308)
	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:182)
	at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
	at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
	at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
	at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
	at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
	at java.lang.Thread.run(Thread.java:613)


 All   Comments   Work Log   Change History   Subversion Commits   FishEye   Crucible      Sort Order: Ascending order - Click to sort in descending order
788068 by  Dejan Bosanac (1 file)
24/Jun/09 09:09 AM (5 months, 3 days ago)
Repository Revision Date User Message
AMQ #788068 Wed Jun 24 09:09:17 PDT 2009 dejanb test case for https://issues.apache.org/activemq/browse/AMQ-2303 - durable consumers recovery
Files Changed
MODIFY /activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/DurableConsumerTest.java

Repository Revision Date User Message
AMQ #789283 Mon Jun 29 03:41:30 PDT 2009 dejanb fix for https://issues.apache.org/activemq/browse/AMQ-2303 - durable subsciber recovery
Files Changed
MODIFY /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapter.java
MODIFY /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java
MODIFY /activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/DurableConsumerTest.java

Repository Revision Date User Message
AMQ #790113 Wed Jul 01 03:58:27 PDT 2009 dejanb final fix for https://issues.apache.org/activemq/browse/AMQ-2303 - durable subsciber recovery
Files Changed
MODIFY /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapter.java
MODIFY /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/ReferenceStoreAdapter.java
MODIFY /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQTopicMessageStore.java
MODIFY /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaReferenceStoreAdapter.java
MODIFY /activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/DurableConsumerTest.java
MODIFY /activemq/trunk/activemq-jpa-store/src/main/java/org/apache/activemq/store/jpa/JPAReferenceStoreAdapter.java

Dejan Bosanac added a comment - 01/Jul/09 04:03 AM
Resolved by writing a SubscriptionInfo to the journal when durable consumer subscribes and using this info to recover it at the right moment (instead of the beginning of the recovery).

Dejan Bosanac made changes - 01/Jul/09 04:03 AM
Field Original Value New Value
Resolution Fixed [ 1 ]
Status Open [ 1 ] Resolved [ 5 ]
Dejan Bosanac made changes - 01/Jul/09 04:06 AM
Link This issue is related to AMQ-1797 [ AMQ-1797 ]
790521 by  Dejan Bosanac (1 file)
02/Jul/09 02:38 AM (4 months, 26 days ago)
fixing test for https://issues.apache.org/activemq/browse/AMQ-2303 - 200 consumers is too much for some linux machines, too many open files
trunk/activemq-core/src/test/java/org/apache/activemq/bugs/DurableConsumerTest.java 790521 history download (+1 -1) diffs

Repository Revision Date User Message
AMQ #790521 Thu Jul 02 02:38:49 PDT 2009 dejanb fixing test for https://issues.apache.org/activemq/browse/AMQ-2303 - 200 consumers is too much for some linux machines, too many open files
Files Changed
MODIFY /activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/DurableConsumerTest.java

Create crucible review for all 4 changesets in