use of com.sun.messaging.jmq.jmsservice.BrokerEventListener in project openmq by eclipse-ee4j.
the class Broker method exitBroker.
/**
* @param exitVM whether to exit VM If false, System.exit() is performed.
*/
private void exitBroker(int status, String reason, BrokerEvent.Type type, Throwable thr, boolean triggerFailover, boolean exitVM) {
Globals.getLogger().log(Logger.DEBUG, "Broker exiting with status=" + status + " because " + reason);
BridgeServiceManager bridgeManager = Globals.getBridgeServiceManager();
if (bridgeManager != null && !Globals.isNucleusManagedBroker()) {
try {
Globals.getLogger().log(Logger.INFO, Globals.getBrokerResources().I_STOP_BRIDGE_SERVICE_MANAGER);
bridgeManager.stop();
Globals.setBridgeServiceManager(null);
Globals.getLogger().log(Logger.INFO, Globals.getBrokerResources().I_STOPPED_BRIDGE_SERVICE_MANAGER);
} catch (Throwable t) {
logger.logStack(Logger.WARNING, Globals.getBrokerResources().W_STOP_BRIDGE_SERVICE_MANAGER_FAILED, t);
}
}
// take a copy of bkrEvtListener as we may null it during the course of this method
BrokerEventListener tempListener = bkrEvtListener;
if (bkrEvtListener != null) {
BrokerEvent event = new BrokerEvent(this, type, reason);
bkrEvtListener.exitRequested(event, thr);
}
// Perform an orderly broker shutdown unless we're in-process,
// or are going to halt, in which case we want to exit as quickly as possible
destroyBroker(!exitVM, triggerFailover);
if (exitVM) {
if (shutdownHook != null) {
shutdownHook.setTriggerFailover(triggerFailover);
}
System.exit(status);
}
// if we're still here we didn't exit the broker
if (type == BrokerEvent.Type.RESTART) {
// don't attempt to restart an embedded broker
if (!runningInProcess) {
// we want to restart, so tell the listener
if (tempListener != null) {
BrokerEvent event = new BrokerEvent(this, type, "Broker restart");
tempListener.brokerEvent(event);
}
}
}
}
Aggregations