docs: public void start(int mode) {
  
          final String methodName = "start";
          if (TRACE.isEntryEnabled()) {
              SibTr.entry(this, TRACE, methodName);
          }
  
          final Set listeners;
  
          synchronized (ACTIVE_MESSAGING_ENGINES) {
  
              // Do we already have a set of active MEs on this bus?
              Set messagingEngines = (Set) ACTIVE_MESSAGING_ENGINES
                      .get(_messagingEngine.getBusName());
  
              // If not, create a new set and add it to the map
              if (messagingEngines == null) {
  
                  messagingEngines = new HashSet();
                  ACTIVE_MESSAGING_ENGINES.put(_messagingEngine.getBusName(),
                          messagingEngines);
  
              }
  
              // Add the activating ME to the set
              messagingEngines.add(_messagingEngine);
  
              // Get listeners to notify
              listeners = getListeners(_messagingEngine.getBusName());
  
          }
  
          // Notify listeners
          for (final Iterator iterator = listeners.iterator(); iterator.hasNext();) {
  
              final SibRaMessagingEngineListener listener = (SibRaMessagingEngineListener) iterator
                      .next();
              listener.messagingEngineStarting(_messagingEngine);
  
          }
  
          if (TRACE.isEntryEnabled()) {
              SibTr.exit(this, TRACE, methodName);
          }
  
      }