code: public List processAck(ControlAck ackMsg) throws SIRollbackException, SIConnectionLostException, SIResourceException, SIErrorException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "processAck",
          new Object[] { ackMsg });
  
      // Get the ackPrefix from the message
      long ackPrefix = ackMsg.getAckPrefix();
  
      List indexList = processAck(ackMsg, ackPrefix);
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "processAck", indexList);
  
      return indexList;
  
    }
docs: Process an Ack control message. This method uses the completed prefix in the
  ack to decide if the stream's completed prefix should be advanced.
  
  @param ackMsg The Ack control message
  @return List of messages which are now complete and may be deleted.
  @throws SIResourceException