code: public void messagingEngineDestroyed(JsMessagingEngine messagingEngine)
      {
          final String methodName = "messagingEngineDestroyed";
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled())
          {
              SibTr.entry(this, TRACE, methodName, messagingEngine);
          }
  
          /*
           * If there are no longer any local messaging engines on the required
           * bus, switch to a remote messaging engine
           */
  
          final JsMessagingEngine[] localMessagingEngines = SibRaEngineComponent
                  .getMessagingEngines(_endpointConfiguration.getBusName());
  
          if (0 == localMessagingEngines.length)
          {
              /*
               * The last local messaging engine for the required bus has been
               * destroyed; we may be able to now connect remotely so kick off
               * a check.
               */
  
              SibTr.info(TRACE, "ME_DESTROYED_CWSIV0779", new Object[] {
                      messagingEngine.getName(),
                      _endpointConfiguration.getBusName() });
  
            try
            {
                  clearTimer ();
                  timerLoop ();
              }
            catch (final ResourceException exception)
            {
  
                  FFDCFilter.processException(exception, CLASS_NAME + "."
                          + methodName, FFDC_PROBE_1, this);
                  SibTr.error(TRACE, "MESSAGING_ENGINE_STOPPING_CWSIV0765",
                          new Object[] { exception, messagingEngine.getName(),
                                  messagingEngine.getBusName() });
              }
          }
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled())
          {
              SibTr.exit(this, TRACE, methodName);
          }
      }
docs: If a messaging engine is destroyed and there are now no local messaging engines
  on the server, then kick off a check to see if we can connect to one.