camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Donald Whytock <dwhyt...@gmail.com>
Subject Re: Transacting two web services - EIP?
Date Tue, 13 Nov 2012 20:45:28 GMT
On Tue, Nov 13, 2012 at 11:35 AM, dunnlow <dunnlow@yahoo.com> wrote:
> Hello, I am using camel 2.9 and Spring 3.  I have a transacted route in which
> I am pulling messages from a queue (activemq) and sending messages to two
> web services (via multicast).  The web services are notification services
> that send messages to users (there is no real roll back strategy - once the
> notification is sent, it is sent).  When I only needed to send to one
> service, things worked fine; if the service couldn't be reached for some
> reason, then the transacted route would keep resending until successful.
>
> The problem came up once I added a second web service.  Now if one web
> service fails, the retry goes back to both services so the working services
> keeps sending out notifications until the one that isn't working gets fixed.
> Obviously, I'd like ONLY the broken service to keep retrying (pulling the
> one that worked out of the transaction).
>
> Is there a good/standard way to handle this in camel?  (Obviously I can
> handle it myself outside camel, but am hoping for a camel/spring specific
> solution)
>
> Thanks for any ideas,
> -J

Since you're resigned to the idea of the message going out to one
endpoint even if the other endpoint is stuck in retry, it doesn't
sound much like a "transaction" situation.  In that case, what if you
multicast the message to the two endpoints independently, or to two
queues, each of which feeds one of the endpoints?  That way at least
the retries aren't needlessly replicating the properly working
endpoint.

Don

Mime
View raw message