@Override public void onReadCommitRecord(final long transactionID, final int numberOfRecords) throws Exception { // It is possible that the TX could be null, since deletes could have happened in the journal. TransactionHolder tx = loadTransactions.get(transactionID); // We can remove local Tx without associated records if (tx != null) { tx.committed = true; for (RecordInfo txRecord : tx.recordInfos) { if (txRecord.isUpdate) { loadManager.updateRecord(txRecord); } else { loadManager.addRecord(txRecord); } } } }
@Override public void onReadDeleteRecord(final long recordID) throws Exception { loadManager.deleteRecord(recordID); }
for (RecordInfo txRecord : tx.recordInfos) { if (txRecord.isUpdate) { loadManager.updateRecord(txRecord); } else { loadManager.addRecord(txRecord); loadManager.deleteRecord(deleteValue.id);
void checkPreparedTx() { for (TransactionHolder transaction : loadTransactions.values()) { if ((!transaction.prepared && !transaction.committed) || transaction.invalid) { ActiveMQJournalLogger.LOGGER.uncomittedTxFound(transaction.transactionID); loadManager.failedTransaction(transaction.transactionID, transaction.recordInfos, transaction.recordsToDelete); } else if (!transaction.committed) { PreparedTransactionInfo info = new PreparedTransactionInfo(transaction.transactionID, transaction.extraData); info.getRecords().addAll(transaction.recordInfos); info.getRecordsToDelete().addAll(transaction.recordsToDelete); loadManager.addPreparedTransaction(info); } } }
@Override public void onReadAddRecord(final RecordInfo info) throws Exception { loadManager.addRecord(info); }
@Override public void onReadUpdateRecord(final RecordInfo info) throws Exception { loadManager.updateRecord(info); }
for (RecordInfo txRecord : tx.recordInfos) { if (txRecord.isUpdate) { loadManager.updateRecord(txRecord); } else { loadManager.addRecord(txRecord); loadManager.deleteRecord(deleteValue.id);
loadManager.failedTransaction(transaction.transactionID, transaction.recordInfos, transaction.recordsToDelete); } else { for (RecordInfo info : transaction.recordInfos) { loadManager.addPreparedTransaction(info);
@Override public void onReadAddRecord(final RecordInfo info) throws Exception { checkID(info.id); hasData.lazySet(true); loadManager.addRecord(info); records.put(info.id, new JournalRecord(file, info.data.length + JournalImpl.SIZE_ADD_RECORD + 1)); }
@Override public void onReadUpdateRecord(final RecordInfo info) throws Exception { checkID(info.id); hasData.lazySet(true); loadManager.updateRecord(info); JournalRecord posFiles = records.get(info.id); if (posFiles != null) { // It's legal for this to be null. The file(s) with the may // have been deleted // just leaving some updates in this file posFiles.addUpdateFile(file, info.data.length + JournalImpl.SIZE_ADD_RECORD + 1); // +1 = compact // count } }
loadManager.failedTransaction(transaction.transactionID, transaction.recordInfos, transaction.recordsToDelete); } else { for (RecordInfo info : transaction.recordInfos) { loadManager.addPreparedTransaction(info);
@Override public void onReadAddRecord(final RecordInfo info) throws Exception { checkID(info.id); hasData.lazySet(true); loadManager.addRecord(info); records.put(info.id, new JournalRecord(file, info.data.length + JournalImpl.SIZE_ADD_RECORD + 1)); }
@Override public void onReadDeleteRecord(final long recordID) throws Exception { hasData.lazySet(true); loadManager.deleteRecord(recordID); JournalRecord posFiles = records.remove(recordID); if (posFiles != null) { posFiles.delete(file); } }
@Override public void onReadUpdateRecord(final RecordInfo info) throws Exception { checkID(info.id); hasData.lazySet(true); loadManager.updateRecord(info); JournalRecord posFiles = records.get(info.id); if (posFiles != null) { // It's legal for this to be null. The file(s) with the may // have been deleted // just leaving some updates in this file posFiles.addUpdateFile(file, info.data.length + JournalImpl.SIZE_ADD_RECORD + 1); // +1 = compact // count } }
@Override public void onReadDeleteRecord(final long recordID) throws Exception { hasData.lazySet(true); loadManager.deleteRecord(recordID); JournalRecord posFiles = records.remove(recordID); if (posFiles != null) { posFiles.delete(file); } }