Search in sources :

Example 1 with BrokerEventListener

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);
            }
        }
    }
}
Also used : BrokerEvent(com.sun.messaging.jmq.jmsservice.BrokerEvent) BridgeServiceManager(com.sun.messaging.bridge.api.BridgeServiceManager) BrokerEventListener(com.sun.messaging.jmq.jmsservice.BrokerEventListener)

Aggregations

BridgeServiceManager (com.sun.messaging.bridge.api.BridgeServiceManager)1 BrokerEvent (com.sun.messaging.jmq.jmsservice.BrokerEvent)1 BrokerEventListener (com.sun.messaging.jmq.jmsservice.BrokerEventListener)1