camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hadrian Zbarcea <>
Subject Re: [DISCUSS] - JMX - Enlisting MBeans only during starting routes
Date Fri, 04 Feb 2011 19:34:34 GMT
Sounds good. The only part I am not fond of is:
> - Dynamic endpoints, producers and whatnot which is created after the
> route is not enlisted.

There are quite a few usecases that use dynamic endpoints, so jmx will effectively be useless
for them.

MBeans use a lot of memory for a large application, with a lot of endpoints/producers/consumers.
Even then I would suspect that the percentage of memory jmx uses is not that significant.
I think any solution that would prevent operations from managing/monitoring whatever they
need is not a good one.


On Feb 4, 2011, at 10:15 AM, Claus Ibsen wrote:

> Hi
> I might as well have an email afternoon. I have though of writing this
> for a bit of time.
> Camel supports JMX, by enlisting various mbeans in the registry such
> as consumers, components, endpoints, routes, services, thread pools
> and so forth.
> This happens during creation of those resources on demand.
> There is a couple of issues
> - MBean eats a lot of memory
> - There is no limitation
> - We enlist on demand, also when dynamic endpoints/producers is
> created, that could lead to eating too much memory
> - Even temporary routes is enlisted
> - Its all or nothing
> - Unregistering from JMX only happen when a route is shutdown or Camel shutdown.
> So I propose we change the model to
> - Only enlist during starting a route. Eg all the services that is
> being created during starting a route is enlisted, as they are used by
> that given route.
> - Dynamic endpoints, producers and whatnot which is created after the
> route is not enlisted.
> - Adding an option on route to dictate if it should enlist or not (eg
> temporary or short lived routes, you may not want to enslist)
> This would improve
> - Memory consumption would be low as we only enlist "static" parts of the routs
> - We can enlist producers again
> - Users can control if a route should be enlisted or not
> We could even add options to dictate which kind of mbeans you want enlisted
> - consumers, producers, endpoints, routes, components
> Maybe you just want routes, as all you want is to be able to
> start/stop a given route.
> Any thoughts?
> -- 
> Claus Ibsen
> -----------------
> FuseSource
> Email:
> Web:
> Twitter: davsclaus
> Blog:
> Author of Camel in Action:

View raw message