Hi Claus,
Thanks for your quick response.
I using WebSphere MQ queues and a SQL Server 2005 database table as my
endpoints. I have made a code change this morning to cache the endpoints
once they have been created from the CamelContext using:
Endpoint endpoint = camelContext.getEndpoint(uri)
This along with a few other changes has improved the performance of the
routing from 4msgs/s to about 8msgs/sec but this is still well down on the
23msgs/s I get with the pure Java DSL version. Please note that I am using
the WebSphere transaction manager to provide XA transaction coordination in
all my routes.
My Camel route that uses the ProducerTemplate is given below:
from("webspheremqxa:queue:input_queue").
transacted().
to("myParsingEngine").
to("myClient").
end();
Where myParsingEngine processor loads the message in memory and myClient
processor manipulates the emssage and writes it to a WebSphere MQ queue and
a SQLServer table using the ProducerTemplate.
My pure Java DSL route is given below:
from("webspheremqxa:queue:input_queue3").
transacted().
to("myParsingEngine").
multicast().
pipeline(). // Route to the JDBC endpoint
choice().
when().method("myRoutingConditions","matches").
to("bean:myTransformEngine?method=doMappingOnly").
to("bean:mySelector?method=toSqlServerSql").
to("jdbc:mssql-2005-xa-ds").
//when().
//otherwise().
end().
end().
pipeline(). // Route to the JMS endpoint
choice().
when().method("myRoutingConditions","matches").
to("bean:myTransformEngine?method=doMappingOnly").
to("bean:myFormattingEngine?method=serialiseOnly").
to("webspheremqxa:queue:swift_output_queue2").
//when().
//otherwise().
end().
end().
end();
Any further guidance would be greatly appreciated.
Regards,
Nick
--
View this message in context:
http://camel.465427.n5.nabble.com/Performance-loss-observed-when-using-the-ProducerTemplate-to-send-an-exchange-to-an-endpoint-tp510843p510886.html
Sent from the Camel - Users mailing list archive at Nabble.com.