Edwin, I'm not sure whether I got your scenario in the right way.
Is it possible to share your route? Do you execute the DB insert/update in
the same thread or asynchronously?
What's with something like:
from("sead:start")
.transacted()
.multicast(aggregationStrategyWhichReturnsTheFirstExchange)
.to("bean:someProcessor", "direct:insertDBRoute")
.end()
.multicast()
.to("jms:topic:end", "direct:updateDBRoute")
.end();
from("direct:insertDBRoute")
...
.to("sql/jdbc");
from("direct:updateDBRoute")
...
.to("sql/jdbc");
I think you need a transacted route to achieve this.
Best,
Christian
On Fri, Nov 9, 2012 at 11:20 AM, Edwin <[email protected]> wrote:
> Hi Folks,
>
> I have a route that consumes from a seda endpoint, sends the exchange to a
> processor and then to jms topic.
>
> I need to persist the message in a DB after I send the exchange to the
> processor. After the message has made it to the topic - I take another trip
> to the DB to update a status flag on the persisted message
>
> I need high throughput on this route and since I have two DB operations -
> it
> is not feasible to execute these tasks synchronously. To remedy this, I
> have
> placed two wiretaps on the route -
>
> Wiretap1 - does inital insert
> Wiretap2 - updates status flag on inserted message
>
> Since, I always want the insert to happen before the update - I have
> created
> a shared thread pool that both wiretap's use. The thread pool has max size
> of 1 with an unbounded queue size.
>
> When I run the route - I see that the ordering of the inserts and updates
> are not sequential order as I would have expected. Would folks have any
> insight into why this would be happening?
>
> Is having multiple wiretaps on a route dangerous?
>
> Any insights are much appreciated
>
> Thanks,
> Edwin
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Multiple-Wiretap-s-in-a-Camel-Route-tp5722390.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
--