Take a look into the jmx stats. It provides performance statistics on the 
per-processor level.
Identify what processor consumes more time.

1. Is the jms endpoint transacted? Marking the route as transacted does not 
make the endpoint transacted. If you'd like to consume messages in transactions 
try to switch the endpoint to client_acknowledge.
2. You have already answered it. Preconfigure the objectmapper. You could refer 
any DataFormat in the  <unmarshal .../> tag, so just preconfigure 
JacksonDataFormat 
(http://camel.apache.org/maven/current/camel-jackson/apidocs/org/apache/camel/component/jackson/JacksonDataFormat.html)
 with an objectmapper you need.
3. Are you sure that the choice is slow? You have three direct (sync) endpoints 
direct:gigaspacesInterface, direct:sourceStatusRoute, direct:adminRoute within 
the choice. Each of them may be slow.

Best Regards,
Sergey

-----Original Message-----
From: Claus Ibsen [mailto:claus.ib...@gmail.com] 
Sent: Tuesday, August 06, 2013 11:53 AM
To: users@camel.apache.org
Subject: Re: Camel Performance

The predicates in your choice is using contains function which operates on 
String types. So if the toString operation of the message body is expensive, 
then optimize that.

On Tue, Aug 6, 2013 at 7:28 AM, salemi <sal...@avaya.com> wrote:
> Hi,
>
> I was wondering how can improve the performance of  the route below!
>                 <route id="operationalRoute" autoStartup="false">
>                 <from uri="jms:topic:opertopic"/>
>                 <transacted/>
>                 <unmarshal ref="ccisJSON"/>
>                 <choice>
>                         <when>
>                                 <simple>${body.messagetype} contains 
> 'OPER'</simple>
>                         <to uri="direct:gigaspacesInterface"/>
>                     </when>
>                     <when>
>                     <simple>${body.messagetype} contains 'CONTROL'</simple>
>                     <to uri="direct:sourceStatusRoute"/>
>                 </when>
>                         <when>
>                             <simple>${body.messagetype} contains 
> 'ADMIN'</simple>
>                                 <to uri="direct:adminRoute"/>
>                          </when>
>                          <otherwise>
>                                  <log loggingLevel="INFO" message=" ${body}"/>
>                           </otherwise>
>                 </choice>
>                 </route>
>
> I see the following times consumed using dynaTrace.
> 1. If I marked a route transacted I have lost of the performance of 
> about 10ms per message!
> 2. The unmarshal tag takes about 2.5ms. If you have the Objectmapper 
> already created the unmarshalling supposed to be in micro-second.
> 3. Creating Expression  (choice) and evaluating of it takes in average 11ms.
>
> Any suggestion how to improve the performance of the 3 items mentioned 
> above?
>
>
>
> -----
> Alireza Salemi
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/Camel-Performance-tp5736810.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



--
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cib...@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

_______________________________________________________
CONFIDENTIALITY NOTICE: This email and any files attached to it may be 
confidential. If you are not the intended recipient you are notified that 
using, copying, distributing or taking any action in reliance on the contents 
of this information is strictly prohibited. If you have received this email in 
error please notify the sender and delete this email. 

Reply via email to