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