ActiveMQ OSGi bundle should be stopped when broker stops itself
---------------------------------------------------------------
Key: AMQ-3692
URL: https://issues.apache.org/jira/browse/AMQ-3692
Project: ActiveMQ
Issue Type: Improvement
Components: Broker
Affects Versions: 5.4.2
Environment: ServiceMix 4.3
Reporter: metatech
In case of error, the ActiveMQ broker can stop itself.
In an OSGi/Blueprint environment, the bundle is however still in Active/Created
state, which misleads an external monitoring software into thinking that the
broker is running fine.
This patch stops the bundle when the broker stops itself.
This patch can also auto-restart the bundle, which will restart the broker.
This is critical in an Master/Slave configuration : when the connection to the
database is lost, the broker cannot maintain the DB exclusive lock, and it
stops itself. The bundle should be stopped and started again, so that it
enters again the "Creating" state, in which it waits to obtain the DB lock
again.
The class "BrokerBundleWatcher" needs to be registered with the "shutdownHooks"
property of the ActiveMQ "BrokerService". However, there is a limitation with
the XBean syntax in a Blueprint XML, which does not allow to define inner
beans. The workaround is to define the "activemq-broker.xml" in full native
Blueprint syntax (no XBean).
The patch also provides a modified version of the BrokerService, that injects
its own reference into the ShutdownHook's which implement the
"BrokerServiceAware" interface.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira