Thanks Harian Zbarcea: Instrument will be useful. But being wrapped and execute twice for single processor will be a waste; Actually, I found this problem while debug and tracing a spring configured camel route. At least in Camel 2.4.0 and using spring, it real does wrap twice. Maybe you could take a moment to debug and tracking a camel route , you will see it. Or,you can turning on the "TRACE" level for logging, and checking the Instrument Processor's output. You could see it; Following is my route: <route> <from uri="direct:from" /> <bean id="id0" ref="bean1" method="normal" /> <to id="id0_1" uri="mock:result" /> <bean id="id1" ref="bean1" method="raiseError" /> </route> But the trace result is : 2 of first bean, 2 of the "to" endpoint, 2 of the second bean and 1 for route;
-----Origin ----- Sender: Hadrian Zbarcea [mailto:hzbar...@gmail.com] Date: 2010/12/2 22:21 Receiver: users@camel.apache.org Subject: Re: Wast performance? Instrument Interceptor is wrapped twice for each processor. The InstrumentationProcessor is a delegate processor (aka interceptor) that allows you do do before and after processing. It is not really invoked twice (or I have to see a test case that does that, the unit tests in camel I am aware of don't). It is invoked once, takes a start timestamp, it delegates processing to the inner processor and then takes the time diff and records it. Now with a DelegateProcessor all this call is synchronous. Being actually a DelegateAsyncProcessor, the call to the inner processor is done by the async engine (see AsyncProcessorHelper.process()) which calls asynchronously on the done() method. I assume this is what you see and interpret as a second call. This design is not wasting performance, quite to the contrary. It ensures a better use of resources and scales much better with higher message volume. I hope this helps, Hadrian On Dec 1, 2010, at 9:53 PM, ext2 wrote: > Hi: > Each camel processor will be wrapped with Instrument Interceptor > twice. So for each process , the Instrument interceptor will be executed > twice. > It seems no use but waste performance; > Why? Or a bug? > Thanks for any suggestion. > > >