activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Davies <rajdav...@gmail.com>
Subject Re: Duplicate message delivered to consumers on queue with kaha persistence
Date Fri, 05 Oct 2007 05:54:59 GMT
AMQ Store is the combination of the journal (which itself now uses  
Kaha) and Kaha to store message references


cheers,

Rob

http://rajdavies.blogspot.com/



On Oct 4, 2007, at 8:04 PM, Daryl Richter wrote:

> On Oct 3, 2007, at 7:30 AM, Rob Davies wrote:
>
>> Do you get the same using AMQ store (the default in 5.0) - its the  
>> prefered store over kaha in ActiveMQ 5.0
>
>
> Hmm.  When I start a very recent (revision 581630) build of  
> ActiveMQ with completely default config I get (among others) the  
> following lines in my log:
>
> INFO  KahaStore                      - Kaha Store using data  
> directory /usr/local/apache/activemq-5.0-581630/data/localhost/kr- 
> store/state
> INFO  AMQPersistenceAdapter          - Active data files: []
> WARN  AMQPersistenceAdapter          - The ReferenceStore is not  
> valid - recovering ...
> INFO  KahaStore                      - Kaha Store successfully  
> deleted data directory /usr/local/apache/activemq-5.0-581630/data/ 
> localhost/kr-store/data
> INFO  AMQPersistenceAdapter          - Journal Recovery Started  
> from: DataManager:(data-)
> INFO  AMQPersistenceAdapter          - Recovered 0 operations from  
> redo log in 0.0080 seconds.
> INFO  AMQPersistenceAdapter          - Finished recovering the  
> ReferenceStore
> INFO  KahaStore                      - Kaha Store using data  
> directory /usr/local/apache/activemq-5.0-581630/data/localhost/kr- 
> store/data
>
> So, which do I have?  AMQStore or Kaha?
>
>
>>
>>
>>
>> cheers,
>>
>> Rob
>>
>> http://rajdavies.blogspot.com/
>>
>>
>>
>> On Oct 3, 2007, at 8:50 AM, David Sitsky wrote:
>>
>>> I have discovered an issue with the latest activemq 5.0 (revision  
>>> 581510) which seems to have been present for some time, at least  
>>> for the last month.
>>>
>>> I have an application using transactions, and kaha persistence,  
>>> and two consumers feeding off a queue.
>>>
>>> I sometimes see the same message being sent to two consumers.   
>>> All transactions were committed (no rollbacks), and as you can  
>>> see by the debug dump, the message has the same message-ID, but  
>>> was delivered to two separate consumers, running on separate  
>>> threads, using sync receives with a prefetch of 0, with separate  
>>> sessions of course.
>>>
>>> Is this a known problem?  It doesn't always happen - seems to be  
>>> a race condition.  If I turn off persistence, I don't seem to see  
>>> it.
>>>
>>> Here is the message being delivered to consumer 1:
>>>
>>> 2007-10-03 17:21:37,310 [Worker 060bacd87f4a40a4867113e2e3e553dd]  
>>> 85475 DEBUG org.apache.activemq.ActiveMQMessageConsumer -  
>>> ID:tamarama-62436-1191396093006-2:2:3:2 received message:  
>>> MessageDispatch {commandId = 0, responseRequired = false,  
>>> consumerId = ID:tamarama-62436-1191396093006-2:2:3:2, destination  
>>> = queue://worker-items, message = ActiveMQObjectMessage  
>>> {commandId = 50, responseRequired = false, messageId =  
>>> ID:tamarama-62436-1191396093006-2:2:1:3:1, originalDestination =  
>>> null, originalTransactionId = null, producerId =  
>>> ID:tamarama-62436-1191396093006-2:2:1:3, destination = queue:// 
>>> worker-items, transactionId =  
>>> TX:ID:tamarama-62436-1191396093006-2:2:5, expiration = 0,  
>>> timestamp = 1191396097286, arrival = 0, brokerInTime =  
>>> 1191396097290, brokerOutTime = 1191396097303, correlationId =  
>>> null, replyTo = null, persistent = true, type = null, priority =  
>>> 4, groupID = null, groupSequence = 0, targetConsumerId = null,  
>>> compressed = false, userID = null, content =  
>>> org.apache.activemq.util.ByteSequence@fa8cbc,  
>>> marshalledProperties = null, dataStructure = null,  
>>> redeliveryCounter = 0, size = 0, properties = null,  
>>> readOnlyProperties = true, readOnlyBody = true, droppable =  
>>> false}, redeliveryCounter = 0}
>>>
>>> Here is the same message (check the message ID) being delivered  
>>> to consumer 2:
>>>
>>> 2007-10-03 17:21:37,422 [Worker 2c3169d1726b4781a423a239f65c7bd1]  
>>> 85587 DEBUG org.apache.activemq.ActiveMQMessageConsumer -  
>>> ID:tamarama-62436-1191396093006-2:2:1:2 received message:  
>>> MessageDispatch {commandId = 0, responseRequired = false,  
>>> consumerId = ID:tamarama-62436-1191396093006-2:2:1:2, destination  
>>> = queue://worker-items, message = ActiveMQObjectMessage  
>>> {commandId = 50, responseRequired = false, messageId =  
>>> ID:tamarama-62436-1191396093006-2:2:1:3:1, originalDestination =  
>>> null, originalTransactionId = null, producerId =  
>>> ID:tamarama-62436-1191396093006-2:2:1:3, destination = queue:// 
>>> worker-items, transactionId =  
>>> TX:ID:tamarama-62436-1191396093006-2:2:5, expiration = 0,  
>>> timestamp = 1191396097286, arrival = 0, brokerInTime =  
>>> 1191396097290, brokerOutTime = 1191396097417, correlationId =  
>>> null, replyTo = null, persistent = true, type = null, priority =  
>>> 4, groupID = null, groupSequence = 0, targetConsumerId = null,  
>>> compressed = false, userID = null, content =  
>>> org.apache.activemq.util.ByteSequence@1a881cc,  
>>> marshalledProperties = null, dataStructure = null,  
>>> redeliveryCounter = 0, size = 0, properties = null,  
>>> readOnlyProperties = true, readOnlyBody = true, droppable =  
>>> false}, redeliveryCounter = 0}
>>>
>>> I'll need to do more investigations tomorrow, but if anybody has  
>>> any ideas, I'd appreciate some insights.
>>>
>>> -- 
>>> Cheers,
>>> David
>>>
>>> Nuix Pty Ltd
>>> Suite 79, 89 Jones St, Ultimo NSW 2007, Australia    Ph: +61 2  
>>> 9280 0699
>>> Web: http://www.nuix.com                            Fax: +61 2  
>>> 9212 6902
>>
>
> --
> Daryl
> http://itsallsemantics.com
>
> "I see this as coming down to mutual respect. I want to respect the  
> others I communicate with enough to tell them my truth without  
> reservation and I want to respect them enough to listen to their  
> truth. I want to respect their good intentions enough to believe  
> that we can work past our disagreements."
>
>     -- Kent Beck, 2006
>


Mime
View raw message