Camel JMX Management
====================

This example shows how to manage Camel using JMX (with jconsole)
It can be run using Maven.

The example uses a timer to every 5th second to generate a file with 100 stock quotes.

Another route uses a file consumer to read the files and split the file and send every single
stock quote to a JMS queue.

Then a third route consumes from this JMS queue and simulate a little CPU heavy work (by delaying)
before the data is transformed and logged. The logger will log the progress by logging how
long time it takes to process 100 messages.

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.



You will need to compile this example first:
  mvn compile

To run the example type
  mvn camel:run


To use jconsole type
  jconsole

And you should be able to see a process id in the connect to agent tab.
If its there then click in and you should be connected to the Camel application.
If its missing you can click on the advanced tab and type in JMX URL:
  service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/camel
  (some older versions of Java does not list the local processes)


To run the example with Ant
  a. You need to have Apache ActiveMQ installed. It can be downloaded from
    http://activemq.apache.org/

  b. Export / Set ACTIVEMQ_HOME to the top level Apache ActiveMQ intall
  directory
    UNIX
    export ACTIVEMQ_HOME=<path to ActiveMQ install directory>
    Windows
    set ACTIVEMQ_HOME=<path to ActiveMQ install directory>

  c. To Run the example using Ant, type
    ant

You can see the routing rules by looking at the java code in the
src/main/java directory and the Spring XML configuration lives in
src/main/resources/META-INF/spring

To stop the example hit ctrl + c

To use log4j as the logging framework add this to the pom.xml:
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
    </dependency>
and log4j.properties is located in src/main/resources

For the latest & greatest documentation on how to use this example please see
  http://camel.apache.org/management-example.html

If you hit any problems please talk to us on the Camel Forums
  http://camel.apache.org/discussion-forums.html

Please help us make Apache Camel better - we appreciate any feedback you
may have.  Enjoy!

------------------------
The Camel riders!
