activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mick Knutson" <>
Subject Re: New message timeout design question
Date Tue, 16 Sep 2008 17:26:49 GMT
1 thought I had  looking through the patterns is using an aggregator. Even
though there is only 1 message going out.
Then, I could passivate the AggregatorCollection. Then add a correclationId
to the outgoing message. Now I would expect the new message that was created
by the Python service to hav ethat correlationId.

Note, the return message is not a respose. it is just a message that states
the change request was processed. I need this seperation because there is a
specific CR that can take 24 hours to complete.

So then, when a new message is returned that has my correclationId, within
the alloted timeframe, we are complete, otherwise the aggreggator can have a
TTL then send a new message to the DLC.

Does this sound correct?

On Mon, Sep 15, 2008 at 10:36 PM, James Strachan

> 2008/9/15 Mick Knutson <>:
> > I would like to get some design help on a situation I need to address.
> >
> > I have a Manager that sends a ChangeRequest message to a Python server.
> This
> > CR could take an hour to perform. But I want to implement a timeout on
> the
> > CR. So after I send out this CR message, how do I create an alert message
> in
> > 1.1 hours to another processor?
> You could try setting a 1 hour time to live on the message; then if
> the message is not processed within an hour the message will be sent
> to a DLQ which you could subscribe to and notify another processor.
> Though with this approach if a server consumes the message but just
> takes 2 hours to process it, you'd not get a notification of it taking
> too long.
> So maybe you should do the following for each message that is going to
> be processed...
> * create a timer (say with Quartz) with details of the current message
> * consume the message by a processor and send a completion message to
> the JMSReplyTo destination when it has been completed (preferably in a
> JMS transaction so its atomic)
> * consume the completion message and delete the timer for that message
> correlationID
> * on the timer firing, send a message to the other processor that the
> message was not processed in time
> This does seem an interesting pattern we could maybe implement in Camel...
> There's no obvious pattern yet in the EIP book - but there may be in
> Gregors next book which is gonna be more conversational. Essentially
> we could do with a kinda 'timed message acknowledgement' pattern;
> where if a success message is not received before the timer fires, we
> send a fail message somewhere.
> Another approach BTW is to use BPEL to wrap up this process.
> --
> James
> -------
> Open Source Integration

Thank You…

Mick Knutson
BASE Logic, inc.
(415) 354-4215

BLiNC Magazine:
Linked IN:
DJ Mick:
Vacation Rental:

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message