public void rollbackTx(Set<Long> acked) throws Exception { MessageInfo lastMi = null; MessageInfo mi = null; Iterator<MessageInfo> iter = deliveringRefs.iterator(); while (iter.hasNext()) { mi = iter.next(); if (mi.isLocalAcked()) { acked.add(mi.nativeId); lastMi = mi; } } if (lastMi != null) { session.getCoreSession().acknowledge(nativeId, lastMi.nativeId); } }
// this is called before session commit a local tx public void finishTx() throws Exception { MessageInfo lastMi = null; MessageInfo mi = null; Iterator<MessageInfo> iter = deliveringRefs.iterator(); while (iter.hasNext()) { mi = iter.next(); if (mi.isLocalAcked()) { iter.remove(); lastMi = mi; } } if (lastMi != null) { session.getCoreSession().acknowledge(nativeId, lastMi.nativeId); } }