code: public Neighbour createNeighbour(
      SIBUuid8    meUUID,
      String      busId,
      Transaction transaction) throws SIDiscriminatorSyntaxException, SISelectorSyntaxException, SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(
          tc,
          "createNeighbour",
          new Object[] { meUUID, busId, transaction });
     
     Neighbour neighbour = null;
     try
     {
       _lockManager.lockExclusive();
       
       // Add the new Neighbour to the list of neighbours.
       neighbour = _neighbours.addNeighbour(
         meUUID,
         busId,
         transaction);
         
       // If we aren't reconciling, create the listener for the proxy destination
       if (!_reconciling && _proxyListener == null)
         createProxyListener();       
     }
     finally
     {
       _lockManager.unlockExclusive();
     }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "createNeighbour", neighbour);
      return neighbour;
    }
docs: Adds a new Neighbouring ME.
  
  <p>
  When creating a new ME, a durable subscription needs to be
  created on the Neighbour followed by an exchange of all current subscriptions
  This only needs to occur if this really is a new Neighbour, and not one that has
  been recreated after restart.
  
  @param meUUID         The ME UUID
  @param busId       The bus that this ME belongs to.
  @param transaction    The transaction for the createNeighbour
  
  @exception SIDestinationAlreadyExistsException  Thrown when the Neighbour already
  exists and an attempt is made to create is again
  @exception SICoreException  Thrown when creating the Proxy Listener instance