Class ReplicatedJournal
- java.lang.Object
-
- org.apache.activemq.artemis.core.replication.ReplicatedJournal
-
- All Implemented Interfaces:
Journal,ActiveMQComponent
public class ReplicatedJournal extends Object implements Journal
Used by theJournalStorageManagerto replicate journal calls.This class wraps a
ReplicationManagerand the localJournal. Every call will be relayed to both instances.- See Also:
JournalStorageManager
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.activemq.artemis.core.journal.Journal
Journal.JournalState
-
-
Constructor Summary
Constructors Constructor Description ReplicatedJournal(byte journalID, Journal localJournal, ReplicationManager replicationManager)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappendAddEvent(long id, byte recordType, Persister persister, Object record, boolean sync, IOCompletion completionCallback)voidappendAddRecord(long id, byte recordType, byte[] record, boolean sync)voidappendAddRecord(long id, byte recordType, Persister persister, Object record, boolean sync)voidappendAddRecord(long id, byte recordType, Persister persister, Object record, boolean sync, IOCompletion completionCallback)voidappendAddRecordTransactional(long txID, long id, byte recordType, byte[] record)voidappendAddRecordTransactional(long txID, long id, byte recordType, Persister persister, Object record)voidappendCommitRecord(long txID, boolean sync)voidappendCommitRecord(long txID, boolean sync, IOCompletion callback)voidappendCommitRecord(long txID, boolean sync, IOCompletion callback, boolean lineUpContext)voidappendDeleteRecord(long id, boolean sync)voidappendDeleteRecord(long id, boolean sync, IOCompletion completionCallback)voidappendDeleteRecordTransactional(long txID, long id)voidappendDeleteRecordTransactional(long txID, long id, byte[] record)voidappendDeleteRecordTransactional(long txID, long id, EncodingSupport record)voidappendPrepareRecord(long txID, byte[] transactionData, boolean sync)voidappendPrepareRecord(long txID, EncodingSupport transactionData, boolean sync)voidappendPrepareRecord(long txID, EncodingSupport transactionData, boolean sync, IOCompletion callback)voidappendRollbackRecord(long txID, boolean sync)voidappendRollbackRecord(long txID, boolean sync, IOCompletion callback)voidappendUpdateRecord(long id, byte recordType, byte[] record, boolean sync)voidappendUpdateRecord(long id, byte recordType, Persister persister, Object record, boolean sync)voidappendUpdateRecord(long id, byte journalRecordType, Persister persister, Object record, boolean sync, IOCompletion completionCallback)voidappendUpdateRecordTransactional(long txID, long id, byte recordType, byte[] record)voidappendUpdateRecordTransactional(long txID, long id, byte recordType, Persister persister, Object record)Map<Long,JournalFile>createFilesForBackupSync(long[] fileIds)voidflush()voidforceMoveNextFile()intgetAlignment()JournalFile[]getDataFiles()SequentialFileFactorygetFileFactory()intgetFileSize()longgetMaxRecordSize()intgetNumberOfRecords()intgetUserVersion()booleanisRemoveExtraFilesOnLoad()booleanisStarted()voidlineUpContext(IOCompletion callback)JournalLoadInformationload(List<RecordInfo> committedRecords, List<PreparedTransactionInfo> preparedTransactions, TransactionFailureCallback transactionFailure, boolean fixbadTX)JournalLoadInformationload(LoaderCallback reloadManager)JournalLoadInformationload(SparseArrayLinkedList<RecordInfo> committedRecords, List<PreparedTransactionInfo> preparedTransactions, TransactionFailureCallback transactionFailure, boolean fixbadTX)JournalLoadInformationloadInternalOnly()JournalLoadInformationloadSyncOnly(Journal.JournalState state)voidreplicationSyncFinished()voidreplicationSyncPreserveOldFiles()voidscheduleCompactAndBlock(int timeout)voidsetRemoveExtraFilesOnLoad(boolean removeExtraFilesOnLoad)voidstart()voidstop()voidsynchronizationLock()voidsynchronizationUnlock()voidtryAppendDeleteRecord(long id, boolean sync, JournalUpdateCallback updateCallback, IOCompletion completionCallback)voidtryAppendDeleteRecord(long id, JournalUpdateCallback updateCallback, boolean sync)voidtryAppendUpdateRecord(long id, byte recordType, byte[] record, JournalUpdateCallback updateCallback, boolean sync, boolean replaceableRecord)voidtryAppendUpdateRecord(long id, byte journalRecordType, Persister persister, Object record, boolean sync, boolean replaceableUpdate, JournalUpdateCallback updateCallback, IOCompletion completionCallback)voidtryAppendUpdateRecord(long id, byte recordType, Persister persister, Object record, JournalUpdateCallback updateCallback, boolean sync, boolean replaceable)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.activemq.artemis.core.server.ActiveMQComponent
asyncStop
-
Methods inherited from interface org.apache.activemq.artemis.core.journal.Journal
appendAddRecord, appendAddRecord, appendAddRecordTransactional, appendUpdateRecord, appendUpdateRecord, appendUpdateRecordTransactional, forceBackup, getCriticalErrorListener, isHistory, load, load, processBackup, processBackupCleanup, replaceableRecord, setCriticalErrorListener, setHistoryFolder, tryAppendUpdateRecord, tryAppendUpdateRecord
-
-
-
-
Constructor Detail
-
ReplicatedJournal
public ReplicatedJournal(byte journalID, Journal localJournal, ReplicationManager replicationManager)
-
-
Method Detail
-
setRemoveExtraFilesOnLoad
public void setRemoveExtraFilesOnLoad(boolean removeExtraFilesOnLoad)
- Specified by:
setRemoveExtraFilesOnLoadin interfaceJournal
-
isRemoveExtraFilesOnLoad
public boolean isRemoveExtraFilesOnLoad()
- Specified by:
isRemoveExtraFilesOnLoadin interfaceJournal
-
flush
public void flush() throws Exception
-
appendAddRecord
public void appendAddRecord(long id, byte recordType, byte[] record, boolean sync) throws Exception- Specified by:
appendAddRecordin interfaceJournal- Parameters:
id-recordType-record-sync-- Throws:
Exception- See Also:
Journal.appendAddRecord(long, byte, byte[], boolean)
-
appendAddRecord
public void appendAddRecord(long id, byte recordType, Persister persister, Object record, boolean sync) throws Exception- Specified by:
appendAddRecordin interfaceJournal- Throws:
Exception
-
appendAddRecord
public void appendAddRecord(long id, byte recordType, Persister persister, Object record, boolean sync, IOCompletion completionCallback) throws Exception- Specified by:
appendAddRecordin interfaceJournal- Parameters:
id-recordType-record-sync-- Throws:
Exception- See Also:
Journal.appendAddRecord(long, byte, org.apache.activemq.artemis.core.journal.EncodingSupport, boolean)
-
appendAddEvent
public void appendAddEvent(long id, byte recordType, Persister persister, Object record, boolean sync, IOCompletion completionCallback) throws Exception- Specified by:
appendAddEventin interfaceJournal- Throws:
Exception
-
appendAddRecordTransactional
public void appendAddRecordTransactional(long txID, long id, byte recordType, byte[] record) throws Exception- Specified by:
appendAddRecordTransactionalin interfaceJournal- Parameters:
txID-id-recordType-record-- Throws:
Exception- See Also:
Journal.appendAddRecordTransactional(long, long, byte, byte[])
-
appendAddRecordTransactional
public void appendAddRecordTransactional(long txID, long id, byte recordType, Persister persister, Object record) throws Exception- Specified by:
appendAddRecordTransactionalin interfaceJournal- Parameters:
txID-id-recordType-record-- Throws:
Exception- See Also:
Journal.appendAddRecordTransactional(long, long, byte, org.apache.activemq.artemis.core.journal.EncodingSupport)
-
appendCommitRecord
public void appendCommitRecord(long txID, boolean sync) throws Exception- Specified by:
appendCommitRecordin interfaceJournal- Parameters:
txID-sync-- Throws:
Exception- See Also:
Journal.appendCommitRecord(long, boolean)
-
appendCommitRecord
public void appendCommitRecord(long txID, boolean sync, IOCompletion callback) throws Exception- Specified by:
appendCommitRecordin interfaceJournal- Throws:
Exception
-
appendCommitRecord
public void appendCommitRecord(long txID, boolean sync, IOCompletion callback, boolean lineUpContext) throws Exception- Specified by:
appendCommitRecordin interfaceJournal- Throws:
Exception
-
appendDeleteRecord
public void appendDeleteRecord(long id, boolean sync) throws Exception- Specified by:
appendDeleteRecordin interfaceJournal- Parameters:
id-sync-- Throws:
Exception- See Also:
Journal.appendDeleteRecord(long, boolean)
-
tryAppendDeleteRecord
public void tryAppendDeleteRecord(long id, JournalUpdateCallback updateCallback, boolean sync) throws Exception- Specified by:
tryAppendDeleteRecordin interfaceJournal- Parameters:
id-sync-- Throws:
Exception- See Also:
Journal.appendDeleteRecord(long, boolean)
-
appendDeleteRecord
public void appendDeleteRecord(long id, boolean sync, IOCompletion completionCallback) throws Exception- Specified by:
appendDeleteRecordin interfaceJournal- Throws:
Exception
-
tryAppendDeleteRecord
public void tryAppendDeleteRecord(long id, boolean sync, JournalUpdateCallback updateCallback, IOCompletion completionCallback) throws Exception- Specified by:
tryAppendDeleteRecordin interfaceJournal- Throws:
Exception
-
appendDeleteRecordTransactional
public void appendDeleteRecordTransactional(long txID, long id, byte[] record) throws Exception- Specified by:
appendDeleteRecordTransactionalin interfaceJournal- Parameters:
txID-id-record-- Throws:
Exception- See Also:
Journal.appendDeleteRecordTransactional(long, long, byte[])
-
appendDeleteRecordTransactional
public void appendDeleteRecordTransactional(long txID, long id, EncodingSupport record) throws Exception- Specified by:
appendDeleteRecordTransactionalin interfaceJournal- Parameters:
txID-id-record-- Throws:
Exception- See Also:
Journal.appendDeleteRecordTransactional(long, long, org.apache.activemq.artemis.core.journal.EncodingSupport)
-
appendDeleteRecordTransactional
public void appendDeleteRecordTransactional(long txID, long id) throws Exception- Specified by:
appendDeleteRecordTransactionalin interfaceJournal- Parameters:
txID-id-- Throws:
Exception- See Also:
Journal.appendDeleteRecordTransactional(long, long)
-
appendPrepareRecord
public void appendPrepareRecord(long txID, byte[] transactionData, boolean sync) throws Exception- Specified by:
appendPrepareRecordin interfaceJournal- Parameters:
txID-transactionData-sync-- Throws:
Exception- See Also:
Journal.appendPrepareRecord(long, byte[], boolean)
-
appendPrepareRecord
public void appendPrepareRecord(long txID, EncodingSupport transactionData, boolean sync) throws Exception- Specified by:
appendPrepareRecordin interfaceJournal- Parameters:
txID-transactionData-sync-- Throws:
Exception- See Also:
Journal.appendPrepareRecord(long, org.apache.activemq.artemis.core.journal.EncodingSupport, boolean)
-
appendPrepareRecord
public void appendPrepareRecord(long txID, EncodingSupport transactionData, boolean sync, IOCompletion callback) throws Exception- Specified by:
appendPrepareRecordin interfaceJournal- Throws:
Exception
-
appendRollbackRecord
public void appendRollbackRecord(long txID, boolean sync) throws Exception- Specified by:
appendRollbackRecordin interfaceJournal- Parameters:
txID-sync-- Throws:
Exception- See Also:
Journal.appendRollbackRecord(long, boolean)
-
appendRollbackRecord
public void appendRollbackRecord(long txID, boolean sync, IOCompletion callback) throws Exception- Specified by:
appendRollbackRecordin interfaceJournal- Throws:
Exception
-
appendUpdateRecord
public void appendUpdateRecord(long id, byte recordType, byte[] record, boolean sync) throws Exception- Specified by:
appendUpdateRecordin interfaceJournal- Parameters:
id-recordType-record-sync-- Throws:
Exception- See Also:
Journal.appendUpdateRecord(long, byte, byte[], boolean)
-
tryAppendUpdateRecord
public void tryAppendUpdateRecord(long id, byte recordType, byte[] record, JournalUpdateCallback updateCallback, boolean sync, boolean replaceableRecord) throws Exception- Specified by:
tryAppendUpdateRecordin interfaceJournal- Throws:
Exception
-
appendUpdateRecord
public void appendUpdateRecord(long id, byte recordType, Persister persister, Object record, boolean sync) throws Exception- Specified by:
appendUpdateRecordin interfaceJournal- Parameters:
id-recordType-record-sync-- Throws:
Exception- See Also:
Journal.appendUpdateRecord(long, byte, org.apache.activemq.artemis.core.journal.EncodingSupport, boolean)
-
tryAppendUpdateRecord
public void tryAppendUpdateRecord(long id, byte recordType, Persister persister, Object record, JournalUpdateCallback updateCallback, boolean sync, boolean replaceable) throws Exception- Specified by:
tryAppendUpdateRecordin interfaceJournal- Throws:
Exception
-
appendUpdateRecord
public void appendUpdateRecord(long id, byte journalRecordType, Persister persister, Object record, boolean sync, IOCompletion completionCallback) throws Exception- Specified by:
appendUpdateRecordin interfaceJournal- Throws:
Exception
-
tryAppendUpdateRecord
public void tryAppendUpdateRecord(long id, byte journalRecordType, Persister persister, Object record, boolean sync, boolean replaceableUpdate, JournalUpdateCallback updateCallback, IOCompletion completionCallback) throws Exception- Specified by:
tryAppendUpdateRecordin interfaceJournal- Throws:
Exception
-
appendUpdateRecordTransactional
public void appendUpdateRecordTransactional(long txID, long id, byte recordType, byte[] record) throws Exception- Specified by:
appendUpdateRecordTransactionalin interfaceJournal- Parameters:
txID-id-recordType-record-- Throws:
Exception- See Also:
Journal.appendUpdateRecordTransactional(long, long, byte, byte[])
-
appendUpdateRecordTransactional
public void appendUpdateRecordTransactional(long txID, long id, byte recordType, Persister persister, Object record) throws Exception- Specified by:
appendUpdateRecordTransactionalin interfaceJournal- Parameters:
txID-id-recordType-record-- Throws:
Exception- See Also:
Journal.appendUpdateRecordTransactional(long, long, byte, org.apache.activemq.artemis.core.journal.EncodingSupport)
-
load
public JournalLoadInformation load(List<RecordInfo> committedRecords, List<PreparedTransactionInfo> preparedTransactions, TransactionFailureCallback transactionFailure, boolean fixbadTX) throws Exception
- Specified by:
loadin interfaceJournal- Parameters:
committedRecords-preparedTransactions-transactionFailure-- Throws:
Exception- See Also:
Journal.load(java.util.List, java.util.List, org.apache.activemq.artemis.core.journal.TransactionFailureCallback)
-
load
public JournalLoadInformation load(SparseArrayLinkedList<RecordInfo> committedRecords, List<PreparedTransactionInfo> preparedTransactions, TransactionFailureCallback transactionFailure, boolean fixbadTX) throws Exception
- Specified by:
loadin interfaceJournal- Parameters:
committedRecords-preparedTransactions-transactionFailure-- Throws:
Exception- See Also:
Journal.load(java.util.List, java.util.List, org.apache.activemq.artemis.core.journal.TransactionFailureCallback)
-
load
public JournalLoadInformation load(LoaderCallback reloadManager) throws Exception
- Specified by:
loadin interfaceJournal- Parameters:
reloadManager-- Throws:
Exception- See Also:
Journal.load(org.apache.activemq.artemis.core.journal.LoaderCallback)
-
start
public void start() throws Exception- Specified by:
startin interfaceActiveMQComponent- Throws:
Exception- See Also:
ActiveMQComponent.start()
-
stop
public void stop() throws Exception- Specified by:
stopin interfaceActiveMQComponent- Throws:
Exception- See Also:
ActiveMQComponent.stop()
-
getAlignment
public int getAlignment() throws Exception- Specified by:
getAlignmentin interfaceJournal- Throws:
Exception
-
isStarted
public boolean isStarted()
- Specified by:
isStartedin interfaceActiveMQComponent
-
loadInternalOnly
public JournalLoadInformation loadInternalOnly() throws Exception
- Specified by:
loadInternalOnlyin interfaceJournal- Throws:
Exception
-
getNumberOfRecords
public int getNumberOfRecords()
- Specified by:
getNumberOfRecordsin interfaceJournal
-
getUserVersion
public int getUserVersion()
- Specified by:
getUserVersionin interfaceJournal
-
lineUpContext
public void lineUpContext(IOCompletion callback)
- Specified by:
lineUpContextin interfaceJournal
-
loadSyncOnly
public JournalLoadInformation loadSyncOnly(Journal.JournalState state) throws Exception
- Specified by:
loadSyncOnlyin interfaceJournal- Throws:
Exception
-
createFilesForBackupSync
public Map<Long,JournalFile> createFilesForBackupSync(long[] fileIds) throws Exception
- Specified by:
createFilesForBackupSyncin interfaceJournal- Throws:
Exception
-
synchronizationLock
public void synchronizationLock()
- Specified by:
synchronizationLockin interfaceJournal
-
synchronizationUnlock
public void synchronizationUnlock()
- Specified by:
synchronizationUnlockin interfaceJournal
-
forceMoveNextFile
public void forceMoveNextFile() throws Exception- Specified by:
forceMoveNextFilein interfaceJournal- Throws:
Exception
-
getDataFiles
public JournalFile[] getDataFiles()
- Specified by:
getDataFilesin interfaceJournal
-
getFileFactory
public SequentialFileFactory getFileFactory()
- Specified by:
getFileFactoryin interfaceJournal
-
getFileSize
public int getFileSize()
- Specified by:
getFileSizein interfaceJournal
-
scheduleCompactAndBlock
public void scheduleCompactAndBlock(int timeout) throws Exception- Specified by:
scheduleCompactAndBlockin interfaceJournal- Throws:
Exception
-
replicationSyncPreserveOldFiles
public void replicationSyncPreserveOldFiles()
- Specified by:
replicationSyncPreserveOldFilesin interfaceJournal
-
replicationSyncFinished
public void replicationSyncFinished()
- Specified by:
replicationSyncFinishedin interfaceJournal
-
getMaxRecordSize
public long getMaxRecordSize()
- Specified by:
getMaxRecordSizein interfaceJournal
-
-