code: protected void subscribeEvent(
      List topicSpaces,
      List topics,
      String busId,
      Transaction transaction) throws SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(
          tc,
          "subscribeEvent",
          new Object[] { topics, topicSpaces, busId, transaction });
  
      try
      {
        // Get the lock Manager lock 
        // multiple subscribes can happen at the same time - 
        // this is allowed.
        _lockManager.lock();
  
        if (!_started)
        {      
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "subscribeEvent", "Returning as stopped");
          return;
        }
        
        if (!_reconciling)      
          // Call to subscribe.
          remoteSubscribeEvent(topicSpaces,
                               topics,
                               busId,
                               transaction,
                               true);
      }
      finally
      {
        _lockManager.unlock();
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "subscribeEvent");
    }
docs: Forwards the subscribe Events onto the Neighbouring ME's
  
  This will be called for Subscriptions that have arrived from Neighbouring
  ME's and need to be forwarded onto other ME's outside of the Bus that the
  message arrived from.
  
  This method is called from the NeighbourProxyListener class and is called
  when a proxy subscription request is received.
  
  @param topics  The list of Topics to send to the Neighbours
  @param topicSpaces  The list of topicSpaces to be forwarded
  @param BusId  The Bus that this message originated from.
  
  @exception  SIResourceException  Thrown if there is an error sending
  a message to a Neighbour