Since we're on a major migration process of this website, some component documents here are out of sync right now. In the meantime you may want to look at the early version of the new website
https://camel.apache.org/staging/
We would very much like to receive any feedback on the new site, please join the discussion on the Camel user mailing list.
Management ExampleAvailable as of Camel 2.1 This is a new example we added in Camel 2.1 as a little example of the new and overhauled JMX Management we did. The example is included in the distribution at The routesThis example have 3 routes: The idea and a planNow the idea is to use the Camel JMX management to be able to adjust this during runtime. What it allows you to do is to improve the performance of this example. At first there is a throttler that will throttle how fast Camel sends message to the JMS queue. The next issue is that the JMS consumer now cannot catch up and you should see that the number of messages on the JMS queue grows a little by little. You can find the queue from the ActiveMQ mbean and drill down under /queues. If this goes a bit to slow you can increase the first route in Camel to produce files faster. This is done by changing the period in the timer endpoint from 5000 to let say 2000. Before this takes effect you have to restart the timer consumer. So find the timer consumer and invoke the stop and start JMX operation. Now you should see the messages start to pile up in the JMS queue. What we do next is to increase the number of concurrent consumers. To do that you have to set this on the JMS endpoint. Set the concrrentConsumers from 1 to 20. And just as the timer consumer this only takes effect when the JMS consumer is restarted. So do a stop and start operation. What you should see is that Camel should be able to process the files much faster now and the logger should output a higher throughput. UsageYou can use maven to run the example using mvn camel:run You can then use jconsole to manage the Camel application at runtime. You start jconsole by jconsole It should list a process in the local tab. It should be something with service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/camel You should now be able to access both ActiveMQ and Camel from jconsole. It takes about 10 second before Camel logs to the screen the first time. Its should be like this 2009-09-02 11:31:15,393 [enerContainer-1] INFO stocks - Received: 100 messages so far. Last group took: 10354 millis which is: 9.658 messages per second. average: 9.658 Now the goal is to get this faster using the jconsole, as we stated above in the goal section. JConsole screenshotHere is a screenshot of the jconsole in action. We have selected the Throttler which is the first one you should manage and change the maximumRequestsPerPeriod from 10 to 500 or even more. You simple click on the number and change it.
See Also |