Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The example is included in the distribution at examples/camel-example-management. It contains a README.txt file with details
how to use and run it.

The routes

...

Now 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.
For starters you can change this at runtime from the default 10 msg/sec to 500 msg/sec etc.
This is done by changing the JMX attribute maximumRequestsPerPeriod on the throttler in the /producer group.

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.

...

Now the goal is to get this faster using the jconsole, as we stated above in the goal section.

JConsole screenshot

Here 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.

Image Added

See Also