== Camel JMX Management

=== Introduction

This example shows how to manage Camel using JMX (with jconsole)

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

=== Build

You will need to compile this example first:

....
mvn compile
....

=== Run

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)

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

=== Help and contributions

If you hit any problem using Camel or have some feedback, then please
https://camel.apache.org/support.html[let us know].

We also love contributors, so
https://camel.apache.org/contributing.html[get involved] :-)

The Camel riders!
