camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: [DISCUSS] - JMX - Enlisting MBeans only during starting routes
Date Tue, 08 Feb 2011 15:58:08 GMT
Hi

I have created a ticket
https://issues.apache.org/jira/browse/CAMEL-3641

On Fri, Feb 4, 2011 at 8:34 PM, Hadrian Zbarcea <hzbarcea@gmail.com> wrote:
> 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.
>

We can add option so end user can decide behavior. To register:
always, onlyOnStartingRoute etc.

> Hadrian
>
>
>
> 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: cibsen@fusesource.com
>> Web: http://fusesource.com
>> Twitter: davsclaus
>> Blog: http://davsclaus.blogspot.com/
>> Author of Camel in Action: http://www.manning.com/ibsen/
>
>



-- 
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Mime
View raw message