code: public void restore(final List<DataSlice> dataSlices)
    throws SevereMessageStoreException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "restore", dataSlices);
  
      super.restore(dataSlices);
      key = new AIStreamKey(getMessage().getGuaranteedRemoteGetValueTick());
  
      // find DestinationHandler and use it to initialize reference to RemoteConsumerDispatcher
      ItemStream itemstream = null;
      try
      {
         itemstream = getItemStream();
      }
      catch (SevereMessageStoreException e)
      {
        // FFDC
        FFDCFilter.processException(e,
            "com.ibm.ws.sib.processor.impl.store.items.AIMessageItem.restore",
            "1:249:1.44.1.10", this);
        
        SibTr.exception(tc, e);
        
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          SibTr.exit(tc, "restore", e);
        throw new SIErrorException(e);
      }
      BaseDestinationHandler destinationHandler = null;
  
      PtoPMessageItemStream localisation = (PtoPMessageItemStream) itemstream;
      destinationHandler = localisation.getDestinationHandler();
  
      // Using the uuid of the source ME in the message to retrieve the corresponding RCD, on the
      // assumption that this RCD is the one to which the message was originally given to.
      // When the message originally arrived, MPIO used the message's source cellule obtained via TRM
      // to determine the AIH/RCD that would handle it.
      // The assumption then is that the two forms of obtaining the source ME uuid yield the same RCD.
      SIBUuid8 sourceMEId = getMessage().getGuaranteedSourceMessagingEngineUUID();
      SIBUuid12 gatheringUuid = getMessage().getGuaranteedGatheringTargetUUID();
      this.aih = destinationHandler.getAnycastInputHandler(sourceMEId, gatheringUuid, true);
  
      synchronized (this)
      {
        // restore the value by looking it up
        cachedRedeliveredCount = getMessage().getRedeliveredCount();
      }
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "restore");
  
    }
docs: Feature SIB0112b.mp.1