code: protected void deleteSystemDestinations()
    throws SIConnectionLostException, SIResourceException, SIErrorException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "deleteSystemDestinations");
  
      // If the producer session hasn't been closed, close it now
      synchronized(this)
      {
        if (iProducerSession != null)
          iProducerSession.close();
      }
  
      //Get all the system destinations tht need to be deleted
      List systemDestinations = iDestinationManager.getAllSystemDestinations(iMEUuid);
      Iterator itr = systemDestinations.iterator();
  
      while (itr.hasNext() )
      {
        JsDestinationAddress destAddress = (JsDestinationAddress)itr.next();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          SibTr.debug(tc, "Removing destination " + destAddress.getDestinationName());
  
        try
        {
          iDestinationManager.deleteSystemDestination(destAddress);
        }
        catch (SINotPossibleInCurrentConfigurationException e)
        {
          // No FFDC code needed
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
            SibTr.debug(tc, "Destination " + destAddress + " already deleted");
        }
      }
  
      // If the alarm hasn't been cancelled, do it now.
      synchronized (this)
      {
        if (!iAlarmCancelled)
        {
          if (iAlarm != null)
            iAlarm.cancel();
          iAlarmCancelled = true;
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "deleteSystemDestinations");
    }
docs: Deletes all remote system destinations that are on referencing the me that this
  neighbour is referenced too.
  
  This will only be called when the remote ME is to be deleted.  This method
  also cancels any alarm that may have been set so it doesn't fire at some point
  in the future.
  
  @throws SICoreException