...
The controlbus: component provides easy management of Camel applications based on the Control Bus EIP pattern.
For example, by sending a message to an Endpoint you can control the lifecycle of routes, or gather performance statistics.
Code Block |
---|
controlbus:command[?options]
|
...
Div | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
|
...
The route command allows you to do common tasks on a given route very easily, for example to start a route, you can send an empty message to this endpoint:
Code Block |
---|
template.sendBody("controlbus:route?routeId=foo&action=start", null);
|
To get the status of the route, you can do:
Code Block |
---|
String status = template.requestBody("controlbus:route?routeId=foo&action=status", null, String.class);
|
...
This requires JMX to be enabled (is by default) then you can get the performance statics per route, or for the CamelContext. For example to get the statics for a route named foo, we can do:
Code Block |
---|
String xml = template.requestBody("controlbus:route?routeId=foo&action=stats", null, String.class);
|
...
To get statics for the entire CamelContext you just omit the routeId parameter as shown below:
Code Block |
---|
String xml = template.requestBody("controlbus:route?action=stats", null, String.class);
|
...
You can use the Simple language with the control bus, for example to stop a specific route, you can send a message to the "controlbus:language:simple"
endpoint containing the following message:
Code Block |
---|
template.sendBody("controlbus:language:simple", "${camelContext.stopRoute('myRoute')}");
|
As this is a void operation, no result is returned. However, if you want the route status you can do:
Code Block |
---|
String status = template.requestBody("controlbus:language:simple", "${camelContext.getRouteStatus('myRoute')}", String.class);
|
...
For example to shutdown Camel itself you can do:
Code Block |
---|
template.sendBody("controlbus:language:simple?async=true", "${camelContext.stop()}");
|
...
Tip |
---|
You can also use other languages such as Groovy, etc. |
Include Page | ||||
---|---|---|---|---|
|
- ControlBus EIP
- JMX Component
- Using JMX with Camel