activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daryl Richter <ng...@comcast.net>
Subject Re: Duplicate message delivered to consumers on queue with kaha persistence
Date Thu, 04 Oct 2007 19:04:51 GMT
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