code: @Override
      public void destroy() throws Exception {
  
          String thisMethodName = CLASS_NAME + ".destroy()";
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              SibTr.entry(tc, thisMethodName, "");
          }
  
          // Destroy the ME's we created
          Enumeration meEnum = _messagingEngines.elements();
  
          // Destroy each ME on this server. Any exceptions are caught and
          // deliberately not
          // rethrown as errors in one ME must not affect any others that might
          // exist.
          while (meEnum.hasMoreElements()) {
              Object o = meEnum.nextElement();
              Object c = ((MessagingEngine) o).getRuntime();
              if (c instanceof BaseMessagingEngineImpl) {
                  try {
                      ((BaseMessagingEngineImpl) c).destroy();
                      mbeanServiceReg.unregister();
                  } catch (Exception e) {
                      FFDCFilter.processException(e, thisMethodName,
                                                  "1:910:1.108", this);
                      SibTr.exception(tc, e);
                      SibTr.error(tc, "INTERNAL_ERROR_SIAS0003", e);
                  }
              }
          }
          _messagingEngines = null;
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              SibTr.exit(tc, thisMethodName);
          }
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.wsspi.runtime.component.WsComponent#destroy()