Class JDBCJournalImpl
java.lang.Object
org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver
org.apache.activemq.artemis.jdbc.store.journal.JDBCJournalImpl
- All Implemented Interfaces:
org.apache.activemq.artemis.core.journal.Journal, org.apache.activemq.artemis.core.server.ActiveMQComponent
public class JDBCJournalImpl
extends AbstractJDBCDriver
implements org.apache.activemq.artemis.core.journal.Journal
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.activemq.artemis.core.journal.Journal
org.apache.activemq.artemis.core.journal.Journal.JournalState -
Field Summary
Fields inherited from class AbstractJDBCDriver
connectionProvider, sqlProvider -
Constructor Summary
ConstructorsConstructorDescriptionJDBCJournalImpl(JDBCConnectionProvider connectionProvider, SQLProvider provider, ScheduledExecutorService scheduledExecutorService, Executor completeExecutor, org.apache.activemq.artemis.core.io.IOCriticalErrorListener criticalIOErrorListener, long syncDelay) -
Method Summary
Modifier and TypeMethodDescriptionvoidappendAddEvent(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion completionCallback) voidappendAddRecord(long id, byte recordType, byte[] record, boolean sync) voidappendAddRecord(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, boolean sync) voidappendAddRecord(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion completionCallback) voidappendAddRecordTransactional(long txID, long id, byte recordType, byte[] record) voidappendAddRecordTransactional(long txID, long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record) voidappendCommitRecord(long txID, boolean sync) voidappendCommitRecord(long txID, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion callback) voidappendCommitRecord(long txID, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion callback, boolean lineUpContext) voidappendDeleteRecord(long id, boolean sync) voidappendDeleteRecord(long id, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion completionCallback) voidappendDeleteRecordTransactional(long txID, long id) voidappendDeleteRecordTransactional(long txID, long id, byte[] record) voidappendDeleteRecordTransactional(long txID, long id, org.apache.activemq.artemis.core.journal.EncodingSupport record) voidappendPrepareRecord(long txID, byte[] transactionData, boolean sync) voidappendPrepareRecord(long txID, org.apache.activemq.artemis.core.journal.EncodingSupport transactionData, boolean sync) voidappendPrepareRecord(long txID, org.apache.activemq.artemis.core.journal.EncodingSupport transactionData, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion callback) voidappendRollbackRecord(long txID, boolean sync) voidappendRollbackRecord(long txID, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion callback) voidappendUpdateRecord(long id, byte recordType, byte[] record, boolean sync) voidappendUpdateRecord(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, boolean sync) voidappendUpdateRecord(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion completionCallback) voidappendUpdateRecordTransactional(long txID, long id, byte recordType, byte[] record) voidappendUpdateRecordTransactional(long txID, long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record) createFilesForBackupSync(long[] fileIds) protected voidvoiddestroy()voidflush()voidintorg.apache.activemq.artemis.core.journal.impl.JournalFile[]org.apache.activemq.artemis.core.io.SequentialFileFactoryintlongThe max size record that can be stored in the journalintintlongvoidhandleException(List<org.apache.activemq.artemis.jdbc.store.journal.JDBCJournalRecord> recordRef, Throwable e) public for tests only, not through APIbooleanbooleanvoidlineUpContext(org.apache.activemq.artemis.core.journal.IOCompletion callback) org.apache.activemq.artemis.core.journal.JournalLoadInformationload(List<org.apache.activemq.artemis.core.journal.RecordInfo> committedRecords, List<org.apache.activemq.artemis.core.journal.PreparedTransactionInfo> preparedTransactions, org.apache.activemq.artemis.core.journal.TransactionFailureCallback failureCallback, boolean fixBadTX) org.apache.activemq.artemis.core.journal.JournalLoadInformationload(org.apache.activemq.artemis.core.journal.LoaderCallback reloadManager) org.apache.activemq.artemis.core.journal.JournalLoadInformationload(org.apache.activemq.artemis.utils.collections.SparseArrayLinkedList<org.apache.activemq.artemis.core.journal.RecordInfo> committedRecords, List<org.apache.activemq.artemis.core.journal.PreparedTransactionInfo> preparedTransactions, org.apache.activemq.artemis.core.journal.TransactionFailureCallback failureCallback, boolean fixBadTX) org.apache.activemq.artemis.core.journal.JournalLoadInformationorg.apache.activemq.artemis.core.journal.JournalLoadInformationloadSyncOnly(org.apache.activemq.artemis.core.journal.Journal.JournalState state) protected voidvoidvoidvoidscheduleCompactAndBlock(int timeout) voidsetRemoveExtraFilesOnLoad(boolean removeExtraFilesOnLoad) voidstart()voidstop()voidstop(boolean sync) intsync()final voidfinal voidvoidtryAppendDeleteRecord(long id, boolean sync, org.apache.activemq.artemis.core.journal.JournalUpdateCallback updateCallback, org.apache.activemq.artemis.core.journal.IOCompletion completionCallback) voidtryAppendDeleteRecord(long id, org.apache.activemq.artemis.core.journal.JournalUpdateCallback updateCallback, boolean sync) voidtryAppendUpdateRecord(long id, byte recordType, byte[] record, org.apache.activemq.artemis.core.journal.JournalUpdateCallback updateCallback, boolean sync, boolean replaceableRecord) voidtryAppendUpdateRecord(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, boolean sync, boolean replaceableUpdate, org.apache.activemq.artemis.core.journal.JournalUpdateCallback updateCallback, org.apache.activemq.artemis.core.journal.IOCompletion completionCallback) voidtryAppendUpdateRecord(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, org.apache.activemq.artemis.core.journal.JournalUpdateCallback updateCallback, boolean sync, boolean replaceableUpdate) Methods inherited from class AbstractJDBCDriver
createTable, getJdbcConnectionProvider, getSqlProvider, setJdbcConnectionProvider, setSqlProviderMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.activemq.artemis.core.server.ActiveMQComponent
asyncStopMethods inherited from interface org.apache.activemq.artemis.core.journal.Journal
appendAddRecord, appendAddRecord, appendAddRecordTransactional, appendUpdateRecord, appendUpdateRecord, appendUpdateRecordTransactional, forceBackup, getCriticalErrorListener, getHistoryFolder, isHistory, load, load, processBackup, processBackupCleanup, replaceableRecord, setCriticalErrorListener, setHistoryFolder, tryAppendUpdateRecord, tryAppendUpdateRecord
-
Constructor Details
-
JDBCJournalImpl
public JDBCJournalImpl(JDBCConnectionProvider connectionProvider, SQLProvider provider, ScheduledExecutorService scheduledExecutorService, Executor completeExecutor, org.apache.activemq.artemis.core.io.IOCriticalErrorListener criticalIOErrorListener, long syncDelay)
-
-
Method Details
-
setRemoveExtraFilesOnLoad
public void setRemoveExtraFilesOnLoad(boolean removeExtraFilesOnLoad) - Specified by:
setRemoveExtraFilesOnLoadin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
isRemoveExtraFilesOnLoad
public boolean isRemoveExtraFilesOnLoad()- Specified by:
isRemoveExtraFilesOnLoadin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
appendAddEvent
public void appendAddEvent(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion completionCallback) throws Exception - Specified by:
appendAddEventin interfaceorg.apache.activemq.artemis.core.journal.Journal- Throws:
Exception
-
start
- Specified by:
startin interfaceorg.apache.activemq.artemis.core.server.ActiveMQComponent- Overrides:
startin classAbstractJDBCDriver- Throws:
SQLException
-
flush
-
getMaxRecordSize
public long getMaxRecordSize()The max size record that can be stored in the journal- Specified by:
getMaxRecordSizein interfaceorg.apache.activemq.artemis.core.journal.Journal
-
getWarningRecordSize
public long getWarningRecordSize()- Specified by:
getWarningRecordSizein interfaceorg.apache.activemq.artemis.core.journal.Journal
-
createSchema
- Specified by:
createSchemain classAbstractJDBCDriver- Throws:
SQLException
-
prepareStatements
protected void prepareStatements()- Specified by:
prepareStatementsin classAbstractJDBCDriver
-
stop
- Specified by:
stopin interfaceorg.apache.activemq.artemis.core.server.ActiveMQComponent- Overrides:
stopin classAbstractJDBCDriver- Throws:
SQLException
-
stop
- Throws:
SQLException
-
destroy
- Overrides:
destroyin classAbstractJDBCDriver- Throws:
Exception
-
sync
public int sync() -
handleException
-
appendAddRecord
-
appendAddRecord
-
appendAddRecord
public void appendAddRecord(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion completionCallback) throws Exception - Specified by:
appendAddRecordin interfaceorg.apache.activemq.artemis.core.journal.Journal- Throws:
Exception
-
appendUpdateRecord
-
tryAppendUpdateRecord
public void tryAppendUpdateRecord(long id, byte recordType, byte[] record, org.apache.activemq.artemis.core.journal.JournalUpdateCallback updateCallback, boolean sync, boolean replaceableRecord) throws Exception - Specified by:
tryAppendUpdateRecordin interfaceorg.apache.activemq.artemis.core.journal.Journal- Throws:
Exception
-
appendUpdateRecord
-
tryAppendUpdateRecord
public void tryAppendUpdateRecord(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, org.apache.activemq.artemis.core.journal.JournalUpdateCallback updateCallback, boolean sync, boolean replaceableUpdate) throws Exception - Specified by:
tryAppendUpdateRecordin interfaceorg.apache.activemq.artemis.core.journal.Journal- Throws:
Exception
-
appendUpdateRecord
public void appendUpdateRecord(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion completionCallback) throws Exception - Specified by:
appendUpdateRecordin interfaceorg.apache.activemq.artemis.core.journal.Journal- Throws:
Exception
-
tryAppendUpdateRecord
public void tryAppendUpdateRecord(long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record, boolean sync, boolean replaceableUpdate, org.apache.activemq.artemis.core.journal.JournalUpdateCallback updateCallback, org.apache.activemq.artemis.core.journal.IOCompletion completionCallback) throws Exception - Specified by:
tryAppendUpdateRecordin interfaceorg.apache.activemq.artemis.core.journal.Journal- Throws:
Exception
-
appendDeleteRecord
-
tryAppendDeleteRecord
-
appendDeleteRecord
-
tryAppendDeleteRecord
public void tryAppendDeleteRecord(long id, boolean sync, org.apache.activemq.artemis.core.journal.JournalUpdateCallback updateCallback, org.apache.activemq.artemis.core.journal.IOCompletion completionCallback) throws Exception - Specified by:
tryAppendDeleteRecordin interfaceorg.apache.activemq.artemis.core.journal.Journal- Throws:
Exception
-
appendAddRecordTransactional
-
appendAddRecordTransactional
-
appendUpdateRecordTransactional
-
appendUpdateRecordTransactional
public void appendUpdateRecordTransactional(long txID, long id, byte recordType, org.apache.activemq.artemis.core.persistence.Persister persister, Object record) throws Exception - Specified by:
appendUpdateRecordTransactionalin interfaceorg.apache.activemq.artemis.core.journal.Journal- Throws:
Exception
-
appendDeleteRecordTransactional
-
appendDeleteRecordTransactional
-
appendDeleteRecordTransactional
-
appendCommitRecord
-
appendCommitRecord
-
appendCommitRecord
-
appendPrepareRecord
-
appendPrepareRecord
public void appendPrepareRecord(long txID, org.apache.activemq.artemis.core.journal.EncodingSupport transactionData, boolean sync, org.apache.activemq.artemis.core.journal.IOCompletion callback) throws Exception - Specified by:
appendPrepareRecordin interfaceorg.apache.activemq.artemis.core.journal.Journal- Throws:
Exception
-
appendPrepareRecord
-
appendRollbackRecord
-
appendRollbackRecord
-
load
public org.apache.activemq.artemis.core.journal.JournalLoadInformation load(org.apache.activemq.artemis.core.journal.LoaderCallback reloadManager) - Specified by:
loadin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
loadInternalOnly
-
loadSyncOnly
-
lineUpContext
public void lineUpContext(org.apache.activemq.artemis.core.journal.IOCompletion callback) - Specified by:
lineUpContextin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
load
public org.apache.activemq.artemis.core.journal.JournalLoadInformation load(org.apache.activemq.artemis.utils.collections.SparseArrayLinkedList<org.apache.activemq.artemis.core.journal.RecordInfo> committedRecords, List<org.apache.activemq.artemis.core.journal.PreparedTransactionInfo> preparedTransactions, org.apache.activemq.artemis.core.journal.TransactionFailureCallback failureCallback, boolean fixBadTX) throws Exception - Specified by:
loadin interfaceorg.apache.activemq.artemis.core.journal.Journal- Throws:
Exception
-
load
public org.apache.activemq.artemis.core.journal.JournalLoadInformation load(List<org.apache.activemq.artemis.core.journal.RecordInfo> committedRecords, List<org.apache.activemq.artemis.core.journal.PreparedTransactionInfo> preparedTransactions, org.apache.activemq.artemis.core.journal.TransactionFailureCallback failureCallback, boolean fixBadTX) throws Exception - Specified by:
loadin interfaceorg.apache.activemq.artemis.core.journal.Journal- Throws:
Exception
-
getAlignment
-
getNumberOfRecords
public int getNumberOfRecords()- Specified by:
getNumberOfRecordsin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
getUserVersion
public int getUserVersion()- Specified by:
getUserVersionin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
createFilesForBackupSync
-
synchronizationLock
public final void synchronizationLock()- Specified by:
synchronizationLockin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
synchronizationUnlock
public final void synchronizationUnlock()- Specified by:
synchronizationUnlockin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
forceMoveNextFile
-
getDataFiles
public org.apache.activemq.artemis.core.journal.impl.JournalFile[] getDataFiles()- Specified by:
getDataFilesin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
getFileFactory
public org.apache.activemq.artemis.core.io.SequentialFileFactory getFileFactory()- Specified by:
getFileFactoryin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
getFileSize
public int getFileSize()- Specified by:
getFileSizein interfaceorg.apache.activemq.artemis.core.journal.Journal
-
scheduleCompactAndBlock
-
replicationSyncPreserveOldFiles
public void replicationSyncPreserveOldFiles()- Specified by:
replicationSyncPreserveOldFilesin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
replicationSyncFinished
public void replicationSyncFinished()- Specified by:
replicationSyncFinishedin interfaceorg.apache.activemq.artemis.core.journal.Journal
-
isStarted
public boolean isStarted()- Specified by:
isStartedin interfaceorg.apache.activemq.artemis.core.server.ActiveMQComponent
-