docs: 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");
    }