code: 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");
    }
docs: Deletes the Queue that would be used for sending proxy update messages
  to this remote ME.
  
  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