@Override public int compareTo(PagePosition o) { if (pageNr > o.getPageNr()) { return 1; } else if (pageNr < o.getPageNr()) { return -1; } else if (recordID > o.getRecordID()) { return 1; } else if (recordID < o.getRecordID()) { return -1; } else { return 0; } }
@Override public void onDeletePage(Page deletedPage) throws Exception { PageCursorInfo info; synchronized (consumedPages) { info = consumedPages.remove(Long.valueOf(deletedPage.getPageId())); } if (info != null) { PagePosition completeInfo = info.getCompleteInfo(); if (completeInfo != null) { try { store.deletePageComplete(completeInfo.getRecordID()); } catch (Exception e) { ActiveMQServerLogger.LOGGER.errorDeletingPageCompleteRecord(e); } info.setCompleteInfo(null); } for (PagePosition deleteInfo : info.acks) { if (deleteInfo.getRecordID() >= 0) { try { store.deleteCursorAcknowledge(deleteInfo.getRecordID()); } catch (Exception e) { ActiveMQServerLogger.LOGGER.errorDeletingPageCompleteRecord(e); } } } info.acks.clear(); } }
for (PageCursorInfo cursor : consumedPages.values()) { for (PagePosition info : cursor.acks) { if (info.getRecordID() >= 0) { isPersistent = true; store.deleteCursorAcknowledgeTransactional(tx, info.getRecordID()); if (completeInfo != null && completeInfo.getRecordID() >= 0) { store.deletePageComplete(completeInfo.getRecordID()); cursor.setCompleteInfo(null);
@Override public void processReload() throws Exception { if (recoveredACK != null) { if (logger.isTraceEnabled()) { logger.trace("********** processing reload!!!!!!!"); } Collections.sort(recoveredACK); long txDeleteCursorOnReload = -1; for (PagePosition pos : recoveredACK) { lastAckedPosition = pos; PageCursorInfo pageInfo = getPageInfo(pos); if (pageInfo == null) { ActiveMQServerLogger.LOGGER.pageNotFound(pos); if (txDeleteCursorOnReload == -1) { txDeleteCursorOnReload = store.generateID(); } store.deleteCursorAcknowledgeTransactional(txDeleteCursorOnReload, pos.getRecordID()); } else { pageInfo.loadACK(pos); } } if (txDeleteCursorOnReload >= 0) { store.commit(txDeleteCursorOnReload); } recoveredACK.clear(); recoveredACK = null; } }
if (pos.getRecordID() >= 0) { store.deleteCursorAcknowledgeTransactional(tx.getID(), pos.getRecordID()); if (!persist) {
if (position.getRecordID() >= 0) {