[
https://issues.apache.org/jira/browse/CAMEL-25065?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-25065:
--------------------------------
Fix Version/s: 4.23.0
> camel-management - Processor statistics freeze after a route restart, and
> ContextOnly context statistics stay 0
> ---------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-25065
> URL: https://issues.apache.org/jira/browse/CAMEL-25065
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Major
> Fix For: 4.23.0
>
>
> A deep review of how camel-management registers MBeans
> (JmxManagementLifecycleStrategy) found the bugs below. Each one was
> reproduced against 4.23.0-SNAPSHOT and has a test that fails without the fix.
> # *The statistics of a processor MBean stop updating after its route is
> stopped and started.* Since 4.14 (CAMEL-22312) stopping a route keeps its
> processor MBeans. When the route is started again, a new managed object was
> created for each processor and set as the counter of its instrumentation, but
> it was not registered (the MBean already was), so the exchanges were counted
> on an object that nobody can see and the registered MBean kept its old
> numbers (also in dumpRouteStatsAsXml, camel get processor and the TUI). The
> managed object of a processor is now reused when its route is started again.
> # *With mbeansLevel=ContextOnly the statistics of the CamelContext MBean stay
> at 0.* The exchanges of a route were only counted on the CamelContext MBean
> through the route MBean, which is not registered with ContextOnly (or for
> routes left out by registerNewRoutes / registerRoutesCreateByTemplate). Such
> routes are now counted on the CamelContext MBean.
> *Not changed (for a later look)*
> * A CamelContext name (or management name pattern) with , = : " * or ? fails
> to start, as the context key of the object names is not quoted (every query
> that builds the context key would have to be changed too).
> * A context-scoped onException is one definition in every route, so its
> processors share one MBean, which is unregistered when one of the routes is
> removed.
> * Two endpoints that only differ in a masked secret have the same object
> name; removing one unregisters the MBean of the other.
> * Thread pools created by the same source (such as the aggregate's recover
> and timeout checkers) have the same object name.
> * Components are registered with mbeansLevel=ContextOnly.
> _Claude Code on behalf of Claus Ibsen_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)