docs: public boolean removeAnycastInputHandlerAndRCD(String key) throws SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
        SibTr.entry(tc, "removeAnycastInputHandlerAndRCD", key);
      
      AnycastInputHandler aih = _anycastInputHandlers.get(key);
      AIContainerItemStream aiContainerItemStream = _aiContainerItemStreams.get(key);
      PtoPMessageItemStream rcdItemStream = _rcdItemStreams.get(key);
      boolean removed = true;
      
      if (aih != null)
      {
        boolean removeAIH = true;
        
        try
        {
          LocalTransaction tran = null;
      
          // 216208 Need to remove the RCD's item stream in case there are unassigned
          // messages; the transaction needs to commit to allow the AIMessageItems to
          // reject on postCommitRemove called by reallocateMsgs
          if (rcdItemStream != null)
          {
            /**
            // not really reallocate, just remove all items
            // this should actually not find any items to remove
            if (rcdItemStream.reallocateMsgs())
            {
              siTran = txManager.createLocalTransaction();
     
              rcdItemStream.remove(siTran, NO_LOCK_ID);
                        
              siTran.commit();
              // only now is it safe to remove the table entry
              rcdItemStreams.remove(dmeId);
            }
            else
            {
              removeAIH = false;
              removed = false;
            }
            */
            
            tran = _baseDestinationHandler.getTransactionManager().createLocalTransaction(true);
     
            rcdItemStream.remove((Transaction) tran, AbstractItem.NO_LOCK_ID);
                        
            tran.commit();
            // only now is it safe to remove the table entry
            _rcdItemStreams.remove(key);
          }
      
          if (removeAIH)
          {
            /** This is not necessary any more, as our callers call either
             * aih.forceFlushAtTarget or aih.destinationDeleted first, which
             * will result in aih.delete called
            // At this point there should not be any messages and thus no V/U
            aih.delete();
            */
          
            if (aiContainerItemStream != null)
            {
              tran = _baseDestinationHandler.getTransactionManager().createLocalTransaction(true);
      
              // aih.delete removed the completed prefix and protocol item stream inside of aiContainerItemStream
              // so it's ok to remove the container item stream now
              aiContainerItemStream.remove((Transaction) tran, AbstractItem.NO_LOCK_ID);
          
              tran.commit();
              // only now is it safe to remove the table entry
              _aiContainerItemStreams.remove(key);
            }
  
            // only now is it safe to remove the table entry
            _anycastInputHandlers.remove(key);
          }
        }
        catch (Exception e)
        {
          FFDCFilter.processException(
            e,
            "com.ibm.ws.sib.processor.impl.destination.AbstractRemoteSupport.removeAnycastInputHandlerAndRCD",
            "1:1096:1.25",
            this);
      
          SibTr.exception(tc, e);
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(tc, "removeAnycastInputHandlerAndRCD", e);
          
          throw new SIResourceException(e);
        }
      }
      
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
         SibTr.exit(tc, "removeAnycastInputHandlerAndRCD", Boolean.valueOf(removed));
      
      return removed;
    }