docs: MESubscription proxyDeregistered(SIBUuid12 topicSpace,
                                     String topic,
                                     Transaction transaction)
  
    throws SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "proxyDeregistered",
          new Object[] { topicSpace, topic, transaction });
  
      // Generate a key for the topicSpace/topic
      final String key = BusGroup.subscriptionKey(topicSpace, topic);
  
      // Get the subscrition from the Hashtable.
      final MESubscription sub = (MESubscription) iProxies.get(key);
  
      if (sub != null)
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          SibTr.debug(
            tc,
            "Subscription " + sub + " being removed");
  
        // Remove the subscription from the Neighbour item Stream.
        try
        {
          sub.remove(transaction, sub.getLockID());
        }
        catch (MessageStoreException e)
        {
          FFDCFilter.processException(
            e,
            "com.ibm.ws.sib.processor.proxyhandler.Neighbour.proxyDeregistered",
            "1:669:1.107",
            this);
  
          SibTr.exception(tc, e);
          SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0002",
          new Object[] {
            "com.ibm.ws.sib.processor.proxyhandler.Neighbour",
            "1:676:1.107",
            e });
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "proxyDeregistered", "SIResourceException");
  
          throw new SIResourceException(
            nls.getFormattedMessage(
              "INTERNAL_MESSAGING_ERROR_CWSIP0002",
              new Object[] {
                "com.ibm.ws.sib.processor.proxyhandler.Neighbour",
                "1:686:1.107",
                e },
              null),
            e);
        }
  
        // Remove the proxy from the list
        iProxies.remove(key);
      }
      else
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          SibTr.debug(tc, "No Subscription to be removed");
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "proxyDeregistered", sub);
  
      return sub;
    }