docs: public final AOValue persistLockAndTick(TransactionCommon t, AOStream stream, long tick,
        SIMPMessage msg, int storagePolicy, long waitTime, long prevTick) throws Exception
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "persistLockAndTick", 
            new Object[] {t,
                          stream,
                          Long.valueOf(tick),
                          msg,
                          Integer.valueOf(storagePolicy),
                          Long.valueOf(waitTime),
                          Long.valueOf(prevTick)});
  
      AOValue retvalue = null;
      try
      {
        Transaction msTran = mp.resolveAndEnlistMsgStoreTransaction(t);
        msg.persistLock(msTran);
        long plockId = msg.getLockID();
        retvalue = new AOValue(tick, msg, msg.getID(), storagePolicy,
          plockId, waitTime, prevTick);
        stream.itemStream.addItem(retvalue, msTran);
      }
      catch (Exception e)
      {
        // No FFDC code needed
        retvalue = null;
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          SibTr.exit(tc, "persistLockAndTick", e);
        throw e;
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "persistLockAndTick", retvalue);
  
      return retvalue;
    }