It's impossible to expose statistics via JMX from more than one application

Description

Deploying more than one application using hibernate search with hibernate.search.jmx_enabled=true on the same application server leads to overwrite StatisticsInfoMBean (and probably other mbeans), so exposed statistics will come only from the last deployed application.
Currently it's impossible to define name of the StatisticsInfoMBean, all created instances are always bound to StatisticsInfoMBean.STATISTICS_MBEAN_OBJECT_NAME = org.hibernate.search.jmx:type=StatisticsInfoMBean.
From ImmutableSearchFactory:

1 2 3 4 5 6 7 8 9 if ( isJMXEnabled() ) { // since the SearchFactory is mutable we might have an already existing MBean which we have to unregister first if ( JMXRegistrar.isNameRegistered( StatisticsInfoMBean.STATISTICS_MBEAN_OBJECT_NAME ) ) { JMXRegistrar.unRegisterMBean( StatisticsInfoMBean.STATISTICS_MBEAN_OBJECT_NAME ); } JMXRegistrar.registerMBean( new StatisticsInfo( statistics ), StatisticsInfoMBean.STATISTICS_MBEAN_OBJECT_NAME ); }

Environment

Hibernate 3.6.9.Final

Status

Assignee

Hardy Ferentschik

Reporter

Jakub Białek

Labels

None

Suitable for new contributors

Yes, likely

Pull Request

None

Feedback Requested

None

Fix versions

Affects versions

3.4.1.Final

Priority

Major