activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Whaley <jasonwha...@gmail.com>
Subject Re: Is it possible to generate message-id before sending the JMS message?
Date Mon, 26 Sep 2011 14:13:50 GMT
Why do that instead of having an idempotent consumer taking messages off of the queue?

In the comments from a similar question on stackoverflow.com, Rob Davies suggests also just
using a well defined header/property for this purpose:  http://stackoverflow.com/questions/1868349/apache-activemq-5-3-how-to-configure-a-queue-to-reject-duplicate-messages/1980645#1980645


On Sep 24, 2011, at 10:14 PM, kaustubh khasnis wrote:

> Because in that way we can use activeMQ's built in duplicate detection.
> 
> --Kaustubh
> 
> On Fri, Sep 23, 2011 at 7:46 PM, Jason Whaley <jasonwhaley@gmail.com> wrote:
> 
>> Agreed with Gary's question here... why not use your database to generate a
>> unique ID for each record and then shove that ID in to a property with an
>> application specific name on the JMS message?
>> 
>> 
>> On Sep 23, 2011, at 8:08 AM, Gary Tully wrote:
>> 
>>> be careful, you need to retain the uniqueness constraints of the
>>> component attributes of a message id. have a peek at how the message
>>> id is generated so that you can understand the intent of each
>>> component.
>>> 
>>> Why do you want to override the messageId?
>>> 
>>> On 23 September 2011 14:19, kaustubh khasnis <kaustubh.khasnis@gmail.com>
>> wrote:
>>>> Please correct me if I am wrong, but in same onSend method one could
>>>> override the messageId as well right?
>>>> 
>>>> We also planning to use same, are there any ill-effects of that?
>>>> 
>>>> Thanks and regards
>>>> Kaustubh
>>>> 
>>>> On Thu, Sep 22, 2011 at 11:49 PM, Martin C. <martinc@gmx.at> wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> ok I see, but this is only possible if sending is done directly before
>>>>> committing the database transaction. It wouldn't work so well if
>>>>> sending was done "somewhere" during the process. I had hoped that I
>>>>> could feed something along a UUID as the message ID and it would be
>>>>> used then, but I can see how this would make certain things (like
>>>>> duplicate detection, ...) a lot harder.
>>>>> 
>>>>> Thanks for your answer, anyways!
>>>>> 
>>>>> Best regards,
>>>>> Martin
>>>>> 
>>>>> On Thu, Sep 22, 2011 at 7:36 PM, Gary Tully <gary.tully@gmail.com>
>> wrote:
>>>>>> you would need to pass use your own message impl that extends
>>>>>> ActiveMQMessage and override
>>>>>> org.apache.activemq.command.ActiveMQMessage#onSend
>>>>>> 
>>>>>> on that callback, you will have the messageId and be able to commit
>>>>>> the db transaction. On return from that method the message will be
>>>>>> sent.
>>>>>> be sure and call super.onSend() though.
>>>>>> 
>>>>>> On 22 September 2011 18:09, Martin C. <martinc@gmx.at> wrote:
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I'd like to know the message ID of a message I am going to send
>> before
>>>>>>> actually sending it. Is this possible?
>>>>>>> 
>>>>>>> Reason is that I want to delay sending the JMS messages until
my
>>>>>>> database transaction has been comitted, but I already want to
record
>>>>>>> the message IDs as correlation IDs in exactly this database
>>>>>>> transaction.
>>>>>>> 
>>>>>>> Best regards,
>>>>>>> Martin
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> http://fusesource.com
>>>>>> http://blog.garytully.com
>>>>>> 
>>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> http://fusesource.com
>>> http://blog.garytully.com
>> 
>> 


Mime
View raw message