docs: private AnycastInputHandler createAIHandRCD(SIBUuid8 dmeId, 
                                                SIBUuid12 gatheringTargetDestUuid,
                                                DestinationDefinition definition,
                                                boolean restartFromStaleBackup)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
        SibTr.entry(tc, 
                    "createAIHandRCD",
                    new Object[]{ 
                    dmeId,
                    gatheringTargetDestUuid,
                    definition,
                    Boolean.valueOf(restartFromStaleBackup)});
                    
      AnycastInputHandler aih = null;
      AIContainerItemStream aiContainerItemStream = null;
      PtoPReceiveMsgsItemStream rcdItemStream = null;
      String key = SIMPUtils.getRemoteGetKey(dmeId, gatheringTargetDestUuid);
  
      try
      {
        // check if either item stream already exists
        aiContainerItemStream = _aiContainerItemStreams.get(key);
        rcdItemStream = _rcdItemStreams.get(key);
        if (aiContainerItemStream == null || rcdItemStream == null)
        {
          LocalTransaction tran = _baseDestinationHandler.getTransactionManager().createLocalTransaction(true);
  
          // create aiContainerItemStream if necessary
          if (aiContainerItemStream == null)
          {
            aiContainerItemStream = new AIContainerItemStream(dmeId, gatheringTargetDestUuid, null, null, null);
            _baseDestinationHandler.addItemStream(aiContainerItemStream, (Transaction) tran);
          }
  
          // create rcdItemStream if necessary
          if (rcdItemStream == null)
          {
            rcdItemStream = new PtoPReceiveMsgsItemStream(_baseDestinationHandler, dmeId, null);
            _baseDestinationHandler.addItemStream(rcdItemStream, (Transaction) tran);
            
            // Configure destination depth parameters for the PtoPReceiveMsgsItemStream (defect 559096)
            // Set the default limits on the Itemstream
            rcdItemStream.setDefaultDestLimits();
            // Setup any message depth interval checking in line with 510343
            rcdItemStream.setDestMsgInterval();
          }
  
          tran.commit();
          
          // If commit succeeded, add streams to map
          _aiContainerItemStreams.put(key, aiContainerItemStream);
          _rcdItemStreams.put(key, rcdItemStream);
        }
  
        aih =
          new AnycastInputHandler(
            definition.getName(),
            definition.getUUID(),
            definition.isReceiveExclusive(),
            _messageProcessor,
            aiContainerItemStream,
            dmeId,
            gatheringTargetDestUuid,
            _destinationManager.getAsyncUpdateThread(),
            _baseDestinationHandler,
            restartFromStaleBackup);
        RemoteConsumerDispatcher rcd =
          new RemoteConsumerDispatcher(
            _baseDestinationHandler, definition.getName(),
            rcdItemStream,
            new ConsumerDispatcherState(),
            aih,
            _baseDestinationHandler.getTransactionManager(),
            definition.isReceiveExclusive());
        rcd.setReadyForUse();
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          SibTr.debug(tc, "RCD created " + rcd);
  
      }
      catch (Exception e)
      {
        // Exception shouldn't occur so FFDC and rethrow as runtime exception
        FFDCFilter.processException(
          e,
          "com.ibm.ws.sib.processor.impl.destination.AbstractRemoteSupport.createAIHandRCD",
          "1:961:1.25",
          this);
  
        SIErrorException e2 =
          new SIErrorException(
            nls.getFormattedMessage(
              "INTERNAL_MESSAGING_ERROR_CWSIP0002",
              new Object[] { "com.ibm.ws.sib.processor.impl.destination.AbstractRemoteSupport.createAIHandRCD", "1:968:1.25", e },
              null),
          e);
  
        SibTr.exception(tc, e);
        SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0002",
          new Object[] {
            "com.ibm.ws.sib.processor.impl.destination.AbstractRemoteSupport.createAIHandRCD",
            "1:976:1.25",
            e });
  
        // Don't throw exception if destination is being deleted, it is a message store invalid add
        // operation, and we're not being reconstituted with startMode == JsConstants.ME_START_FLUSH
        // Defect 222966
        if (_toBeDeleted && e instanceof InvalidAddOperation && !restartFromStaleBackup)
        {
          // Not throwing exception, make sure we return null
          aih = null;
        }
        else
        {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(tc, "createAIHandRCD", aih);
          
          throw e2;
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "createAIHandRCD", aih);
  
      return aih;
    }