docs: protected void deleteDestination()
    throws SIConnectionLostException, SIResourceException, SIErrorException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "deleteDestination");
  
      // If the producer session hasn't been closed, close it now
      synchronized(this)
      {
        if (iProducerSession != null)
          iProducerSession.close();
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
        SibTr.debug(tc, "Removing destination " + iRemoteQueue.getDestinationName());
  
      try
      {
        iDestinationManager.deleteSystemDestination(iRemoteQueue);
      }
      catch (SINotPossibleInCurrentConfigurationException e)
      {
        // No FFDC code needed
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          SibTr.debug(tc, "Destination " + iRemoteQueue + " 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, "deleteDestination");
    }