code: public void destroy() {
  
          final String methodName = "destroy";
          if (TRACE.isEntryEnabled()) {
              SibTr.entry(this, TRACE, methodName);
          }
  
          RELOADING_MESSAGING_ENGINES.remove(_messagingEngine.getUuid()
                  .toString());
  
          synchronized (MESSAGING_ENGINES) {
  
              // Get the set of MEs for this ME's bus
              Set messagingEngines = (Set) MESSAGING_ENGINES.get(_messagingEngine
                      .getBusName());
  
              // Set should always exist if the engine initialized but
              // just in case...
  
              if (messagingEngines != null) {
  
                  // Remove the destroyed ME
                  messagingEngines.remove(_messagingEngine);
  
                  // If the set is now empty, take it out of the map
                  if (messagingEngines.isEmpty()) {
  
                      MESSAGING_ENGINES.remove(_messagingEngine.getBusName());
  
                  }
  
              } else {
  
                  if (TRACE.isDebugEnabled()) {
                      SibTr.debug(this, TRACE,
                              "Received destroy for unknown ME:",
                              _messagingEngine);
                  }
  
              }
  
          }
  
          // Get listeners to notify
          final Set listeners = getListeners(_messagingEngine.getBusName());
  
          // Notify listeners
          for (final Iterator iterator = listeners.iterator(); iterator.hasNext();) {
  
              final SibRaMessagingEngineListener listener = (SibRaMessagingEngineListener) iterator
                      .next();
              listener.messagingEngineDestroyed(_messagingEngine);
  
          }
  
          _messagingEngine = null;
  
          if (TRACE.isEntryEnabled()) {
              SibTr.exit(this, TRACE, methodName);
          }
  
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.ws.sib.admin.JsEngineComponent#destroy()