/** * @param txID * @param id * @throws Exception * @see org.apache.activemq.artemis.core.journal.Journal#appendDeleteRecordTransactional(long, long) */ @Override public void appendDeleteRecordTransactional(final long txID, final long id) throws Exception { if (log.isTraceEnabled()) { log.trace("AppendDelete (noencoding) txID=" + txID + " id=" + id); } replicationManager.appendDeleteRecordTransactional(journalID, txID, id); localJournal.appendDeleteRecordTransactional(txID, id); }
/** * @param txID * @param id * @param record * @throws Exception * @see org.apache.activemq.artemis.core.journal.Journal#appendDeleteRecordTransactional(long, long, org.apache.activemq.artemis.core.journal.EncodingSupport) */ @Override public void appendDeleteRecordTransactional(final long txID, final long id, final EncodingSupport record) throws Exception { if (log.isTraceEnabled()) { log.trace("AppendDelete txID=" + txID + " id=" + id); } replicationManager.appendDeleteRecordTransactional(journalID, txID, id, record); localJournal.appendDeleteRecordTransactional(txID, id, record); }
@Override public void deleteQueueBinding(long tx, final long queueBindingID) throws Exception { readLock(); try { bindingsJournal.appendDeleteRecordTransactional(tx, queueBindingID); } finally { readUnLock(); } }
@Override public void deleteCursorAcknowledgeTransactional(long txID, long ackID) throws Exception { readLock(); try { messageJournal.appendDeleteRecordTransactional(txID, ackID); } finally { readUnLock(); } }
@Override public void deleteAddressBinding(long tx, final long addressBindingID) throws Exception { readLock(); try { bindingsJournal.appendDeleteRecordTransactional(tx, addressBindingID); } finally { readUnLock(); } }
@Override public void deletePageCounter(long txID, long recordID) throws Exception { readLock(); try { messageJournal.appendDeleteRecordTransactional(txID, recordID); } finally { readUnLock(); } }
@Override public void deletePendingPageCounter(long txID, long recordID) throws Exception { readLock(); try { messageJournal.appendDeleteRecordTransactional(txID, recordID); } finally { readUnLock(); } }
@Override public void deleteIncrementRecord(long txID, long recordID) throws Exception { readLock(); try { messageJournal.appendDeleteRecordTransactional(txID, recordID); } finally { readUnLock(); } }
@Override public void deleteDuplicateIDTransactional(final long txID, final long recordID) throws Exception { readLock(); try { messageJournal.appendDeleteRecordTransactional(txID, recordID); } finally { readUnLock(); } }
@Override public void deleteGrouping(long tx, final GroupBinding groupBinding) throws Exception { readLock(); try { bindingsJournal.appendDeleteRecordTransactional(tx, groupBinding.getId()); } finally { readUnLock(); } }
/** * @param packet */ private void handleAppendDeleteTX(final ReplicationDeleteTXMessage packet) throws Exception { Journal journalToUse = getJournal(packet.getJournalID()); journalToUse.appendDeleteRecordTransactional(packet.getTxId(), packet.getId(), packet.getRecordData()); }
@Override public void confirmPendingLargeMessageTX(final Transaction tx, long messageID, long recordID) throws Exception { readLock(); try { installLargeMessageConfirmationOnTX(tx, recordID); messageJournal.appendDeleteRecordTransactional(tx.getID(), recordID, new DeleteEncoding(JournalRecordIds.ADD_LARGE_MESSAGE_PENDING, messageID)); } finally { readUnLock(); } }
@Override public void deleteBindings(PersistedType type, String name, String address) throws Exception { Pair<PersistedType, String> key = new Pair<>(type, name); long tx = idGenerator.generateID(); PersistedBindings currentBindings = mapBindings.get(key); if (currentBindings == null) { return; } else { jmsJournal.appendDeleteRecordTransactional(tx, currentBindings.getId()); } currentBindings.deleteBinding(address); if (currentBindings.getBindings().size() == 0) { mapBindings.remove(key); } else { long newId = idGenerator.generateID(); currentBindings.setId(newId); jmsJournal.appendAddRecordTransactional(tx, newId, BINDING_RECORD, currentBindings); } jmsJournal.appendCommitRecord(tx, true); }
@Override public void addBindings(PersistedType type, String name, String... address) throws Exception { Pair<PersistedType, String> key = new Pair<>(type, name); long tx = idGenerator.generateID(); PersistedBindings currentBindings = mapBindings.get(key); if (currentBindings != null) { jmsJournal.appendDeleteRecordTransactional(tx, currentBindings.getId()); } else { currentBindings = new PersistedBindings(type, name); } mapBindings.put(key, currentBindings); for (String adItem : address) { currentBindings.addBinding(adItem); } long newId = idGenerator.generateID(); currentBindings.setId(newId); jmsJournal.appendAddRecordTransactional(tx, newId, BINDING_RECORD, currentBindings); jmsJournal.appendCommitRecord(tx, true); }
replicatedJournal.appendCommitRecord(2, false); replicatedJournal.appendDeleteRecordTransactional(3, 4, new FakeData()); replicatedJournal.appendPrepareRecord(3, new FakeData(), false); replicatedJournal.appendRollbackRecord(3, false);