Package org.apache.activemq.store.kahadb
Class KahaDBPersistenceAdapter
java.lang.Object
org.apache.activemq.util.ServiceSupport
org.apache.activemq.broker.LockableServiceSupport
org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
- All Implemented Interfaces:
BrokerServiceAware,Lockable,org.apache.activemq.Service,JournaledStore,NoLocalSubscriptionAware,PersistenceAdapter,TransactionIdTransformerAware
public class KahaDBPersistenceAdapter
extends LockableServiceSupport
implements PersistenceAdapter, JournaledStore, TransactionIdTransformerAware, NoLocalSubscriptionAware
An implementation of
PersistenceAdapter designed for use with
KahaDB - Embedded Lightweight Non-Relational Database-
Field Summary
Fields inherited from class org.apache.activemq.broker.LockableServiceSupport
brokerService, clockDaemon -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidbeginTransaction(ConnectionContext context) voidcheckpoint(boolean cleanup) voidcommitTransaction(ConnectionContext context) createQueueMessageStore(org.apache.activemq.command.ActiveMQQueue destination) createTopicMessageStore(org.apache.activemq.command.ActiveMQTopic destination) createTransactionInfo(org.apache.activemq.command.TransactionId txid) voidvoiddoStart()voiddoStop(ServiceStopper stopper) longGet the checkpointIntervallongGet the cleanupIntervalbooleanintSet<org.apache.activemq.command.ActiveMQDestination>Get the directoryintbooleanintGet the indexCacheSizefloatintGet the indexWriteBatchSizelongintGet the journalMaxFileLengthintGet the journalMaxWriteBatchSizelonglonggetLastProducerSequenceId(org.apache.activemq.command.ProducerId id) intintGet the PersistenceAdapterStatisticsgetStore()voidinit()booleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanReturns whether Ack compaction is enabledbooleanbooleanbooleanbooleanGet the enableIndexWriteAsyncbooleanDeprecated.booleanWhether non-blocking subscription statistics have been enabledbooleanGet the ignoreMissingJournalfilesbooleanbooleanvoidremoveQueueMessageStore(org.apache.activemq.command.ActiveMQQueue destination) voidremoveTopicMessageStore(org.apache.activemq.command.ActiveMQTopic destination) voidrollbackTransaction(ConnectionContext context) voidsetArchiveCorruptedIndex(boolean archiveCorruptedIndex) voidsetArchiveDataLogs(boolean archiveDataLogs) voidsetBrokerName(String brokerName) voidsetBrokerService(BrokerService brokerService) voidsetCheckForCorruptJournalFiles(boolean checkForCorruptJournalFiles) voidsetCheckpointInterval(long checkpointInterval) Set the checkpointIntervalvoidsetChecksumJournalFiles(boolean checksumJournalFiles) voidsetCleanupInterval(long cleanupInterval) Set the cleanupIntervalvoidsetCleanupOnStop(boolean cleanupOnStop) voidsetCompactAcksAfterNoGC(int compactAcksAfterNoGC) Sets the number of GC cycles where no journal logs were removed before an attempt to move forward all the acks in the last log that contains them and is otherwise unreferenced.voidsetCompactAcksIgnoresStoreGrowth(boolean compactAcksIgnoresStoreGrowth) Configure if Ack compaction will occur regardless of continued growth of the journal logs meaning that the store has not run out of space yet.voidsetConcurrentStoreAndDispatchQueues(boolean concurrentStoreAndDispatch) voidsetConcurrentStoreAndDispatchTopics(boolean concurrentStoreAndDispatch) voidsetDatabaseLockedWaitDelay(int databaseLockedWaitDelay) Deprecated.useLocker.setLockAcquireSleepInterval(long)insteadvoidsetDirectory(File dir) voidsetDirectoryArchive(File directoryArchive) voidsetEnableAckCompaction(boolean enableAckCompaction) Configure if the Ack compaction task should be enabled to runvoidsetEnableIndexDiskSyncs(boolean diskSyncs) voidsetEnableIndexPageCaching(boolean enable) voidsetEnableIndexRecoveryFile(boolean enable) voidsetEnableIndexWriteAsync(boolean enableIndexWriteAsync) Set the enableIndexWriteAsyncvoidsetEnableJournalDiskSyncs(boolean enableJournalDiskSyncs) Deprecated.usesetJournalDiskSyncStrategy(java.lang.String)insteadvoidsetEnableSubscriptionStatistics(boolean enableSubscriptionStatistics) Enable caching statistics for each subscription to allow non-blocking retrieval of metrics.voidsetFailoverProducersAuditDepth(int failoverProducersAuditDepth) set the audit window depth for duplicate suppression (should exceed the max transaction batch)voidsetForceRecoverIndex(boolean forceRecoverIndex) voidsetIgnoreMissingJournalfiles(boolean ignoreMissingJournalfiles) Set the ignoreMissingJournalfilesvoidsetIndexCacheSize(int indexCacheSize) Set the indexCacheSize When set using Xbean, values of the form "20 Mb", "1024kb", and "1g" can be usedvoidsetIndexDirectory(File indexDirectory) Sets the directory where KahaDB index files should be written.voidsetIndexLFUEvictionFactor(float indexLFUEvictionFactor) voidsetIndexWriteBatchSize(int indexWriteBatchSize) Set the indexWriteBatchSize When set using Xbean, values of the form "20 Mb", "1024kb", and "1g" can be usedvoidsetJournalDiskSyncInterval(long journalDiskSyncInterval) voidsetJournalDiskSyncStrategy(String journalDiskSyncStrategy) voidsetJournalMaxFileLength(int journalMaxFileLength) When set using Xbean, values of the form "20 Mb", "1024kb", and "1g" can be usedvoidsetJournalMaxWriteBatchSize(int journalMaxWriteBatchSize) Set the journalMaxWriteBatchSize * When set using Xbean, values of the form "20 Mb", "1024kb", and "1g" can be usedvoidsetMaxAsyncJobs(int maxAsyncJobs) voidsetMaxFailoverProducersToTrack(int maxFailoverProducersToTrack) Set the max number of producers (LRU cache) to track for duplicate sendsvoidsetPreallocationScope(String preallocationScope) voidsetPreallocationStrategy(String preallocationStrategy) voidsetPurgeRecoveredXATransactionStrategy(String purgeRecoveredXATransactionStrategy) voidsetTransactionIdTransformer(TransactionIdTransformer transactionIdTransformer) voidsetUsageManager(SystemUsage usageManager) voidsetUseIndexLFRUEviction(boolean useIndexLFRUEviction) longsize()toString()Methods inherited from class org.apache.activemq.broker.LockableServiceSupport
getBrokerService, getLocker, getLockKeepAlivePeriod, getScheduledThreadPoolExecutor, isStopOnError, isUseLock, keepLockAlive, postStop, preStart, setLocker, setLockKeepAlivePeriod, setScheduledThreadPoolExecutor, setStopOnError, setUseLock, stopBrokerMethods inherited from class org.apache.activemq.util.ServiceSupport
addServiceListener, dispose, isStarted, isStopped, isStopping, removeServiceListener, start, stopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.activemq.Service
start, stop
-
Constructor Details
-
KahaDBPersistenceAdapter
public KahaDBPersistenceAdapter()
-
-
Method Details
-
beginTransaction
- Specified by:
beginTransactionin interfacePersistenceAdapter- Parameters:
context-- Throws:
IOException- See Also:
-
checkpoint
- Specified by:
checkpointin interfacePersistenceAdapter- Parameters:
cleanup-- Throws:
IOException- See Also:
-
commitTransaction
- Specified by:
commitTransactionin interfacePersistenceAdapter- Parameters:
context-- Throws:
IOException- See Also:
-
createQueueMessageStore
public MessageStore createQueueMessageStore(org.apache.activemq.command.ActiveMQQueue destination) throws IOException - Specified by:
createQueueMessageStorein interfacePersistenceAdapter- Parameters:
destination-- Returns:
- MessageStore
- Throws:
IOException- See Also:
-
createTopicMessageStore
public TopicMessageStore createTopicMessageStore(org.apache.activemq.command.ActiveMQTopic destination) throws IOException - Specified by:
createTopicMessageStorein interfacePersistenceAdapter- Parameters:
destination-- Returns:
- TopicMessageStore
- Throws:
IOException- See Also:
-
createTransactionStore
- Specified by:
createTransactionStorein interfacePersistenceAdapter- Returns:
- TransactionStore
- Throws:
IOException- See Also:
-
deleteAllMessages
- Specified by:
deleteAllMessagesin interfacePersistenceAdapter- Throws:
IOException- See Also:
-
getDestinations
- Specified by:
getDestinationsin interfacePersistenceAdapter- Returns:
- destinations
- See Also:
-
getLastMessageBrokerSequenceId
- Specified by:
getLastMessageBrokerSequenceIdin interfacePersistenceAdapter- Returns:
- lastMessageBrokerSequenceId
- Throws:
IOException- See Also:
-
getLastProducerSequenceId
- Specified by:
getLastProducerSequenceIdin interfacePersistenceAdapter- Throws:
IOException
-
allowIOResumption
public void allowIOResumption()- Specified by:
allowIOResumptionin interfacePersistenceAdapter
-
removeQueueMessageStore
public void removeQueueMessageStore(org.apache.activemq.command.ActiveMQQueue destination) - Specified by:
removeQueueMessageStorein interfacePersistenceAdapter- Parameters:
destination-- See Also:
-
removeTopicMessageStore
public void removeTopicMessageStore(org.apache.activemq.command.ActiveMQTopic destination) - Specified by:
removeTopicMessageStorein interfacePersistenceAdapter- Parameters:
destination-- See Also:
-
rollbackTransaction
- Specified by:
rollbackTransactionin interfacePersistenceAdapter- Parameters:
context-- Throws:
IOException- See Also:
-
setBrokerName
- Specified by:
setBrokerNamein interfacePersistenceAdapter- Parameters:
brokerName-- See Also:
-
setUsageManager
- Specified by:
setUsageManagerin interfacePersistenceAdapter- Parameters:
usageManager-- See Also:
-
size
public long size()- Specified by:
sizein interfacePersistenceAdapter- Returns:
- the size of the store
- See Also:
-
doStart
- Specified by:
doStartin classServiceSupport- Throws:
Exception- See Also:
-
Service.start()
-
doStop
- Specified by:
doStopin classServiceSupport- Throws:
Exception- See Also:
-
Service.stop()
-
getJournalMaxFileLength
public int getJournalMaxFileLength()Get the journalMaxFileLength- Specified by:
getJournalMaxFileLengthin interfaceJournaledStore- Returns:
- the journalMaxFileLength
-
setJournalMaxFileLength
public void setJournalMaxFileLength(int journalMaxFileLength) When set using Xbean, values of the form "20 Mb", "1024kb", and "1g" can be used -
setMaxFailoverProducersToTrack
public void setMaxFailoverProducersToTrack(int maxFailoverProducersToTrack) Set the max number of producers (LRU cache) to track for duplicate sends -
getMaxFailoverProducersToTrack
public int getMaxFailoverProducersToTrack() -
setFailoverProducersAuditDepth
public void setFailoverProducersAuditDepth(int failoverProducersAuditDepth) set the audit window depth for duplicate suppression (should exceed the max transaction batch) -
getFailoverProducersAuditDepth
public int getFailoverProducersAuditDepth() -
getCheckpointInterval
public long getCheckpointInterval()Get the checkpointInterval- Returns:
- the checkpointInterval
-
setCheckpointInterval
public void setCheckpointInterval(long checkpointInterval) Set the checkpointInterval- Parameters:
checkpointInterval- the checkpointInterval to set
-
getCleanupInterval
public long getCleanupInterval()Get the cleanupInterval- Returns:
- the cleanupInterval
-
setCleanupInterval
public void setCleanupInterval(long cleanupInterval) Set the cleanupInterval- Parameters:
cleanupInterval- the cleanupInterval to set
-
getIndexWriteBatchSize
public int getIndexWriteBatchSize()Get the indexWriteBatchSize- Returns:
- the indexWriteBatchSize
-
setIndexWriteBatchSize
public void setIndexWriteBatchSize(int indexWriteBatchSize) Set the indexWriteBatchSize When set using Xbean, values of the form "20 Mb", "1024kb", and "1g" can be used- Parameters:
indexWriteBatchSize- the indexWriteBatchSize to set
-
getJournalMaxWriteBatchSize
public int getJournalMaxWriteBatchSize()Get the journalMaxWriteBatchSize- Returns:
- the journalMaxWriteBatchSize
-
setJournalMaxWriteBatchSize
public void setJournalMaxWriteBatchSize(int journalMaxWriteBatchSize) Set the journalMaxWriteBatchSize * When set using Xbean, values of the form "20 Mb", "1024kb", and "1g" can be used- Parameters:
journalMaxWriteBatchSize- the journalMaxWriteBatchSize to set
-
isEnableIndexWriteAsync
public boolean isEnableIndexWriteAsync()Get the enableIndexWriteAsync- Returns:
- the enableIndexWriteAsync
-
setEnableIndexWriteAsync
public void setEnableIndexWriteAsync(boolean enableIndexWriteAsync) Set the enableIndexWriteAsync- Parameters:
enableIndexWriteAsync- the enableIndexWriteAsync to set
-
getPersistenceAdapterStatistics
Get the PersistenceAdapterStatistics- Returns:
- the persistenceAdapterStatistics
-
getDirectory
Get the directory- Specified by:
getDirectoryin interfacePersistenceAdapter- Returns:
- the directory
-
setDirectory
- Specified by:
setDirectoryin interfacePersistenceAdapter- Parameters:
dir-- See Also:
-
getIndexDirectory
- Returns:
- the currently configured location of the KahaDB index files.
-
setIndexDirectory
Sets the directory where KahaDB index files should be written.- Parameters:
indexDirectory- the directory where the KahaDB store index files should be written.
-
isEnableJournalDiskSyncs
public boolean isEnableJournalDiskSyncs()Deprecated.usegetJournalDiskSyncStrategy()insteadGet the enableJournalDiskSyncs- Returns:
- the enableJournalDiskSyncs
-
setEnableJournalDiskSyncs
public void setEnableJournalDiskSyncs(boolean enableJournalDiskSyncs) Deprecated.usesetJournalDiskSyncStrategy(java.lang.String)insteadSet the enableJournalDiskSyncs- Parameters:
enableJournalDiskSyncs- the enableJournalDiskSyncs to set
-
getJournalDiskSyncStrategy
- Returns:
-
getJournalDiskSyncStrategyEnum
-
setJournalDiskSyncStrategy
- Parameters:
journalDiskSyncStrategy-
-
getJournalDiskSyncInterval
public long getJournalDiskSyncInterval()- Returns:
-
setJournalDiskSyncInterval
public void setJournalDiskSyncInterval(long journalDiskSyncInterval) - Parameters:
journalDiskSyncInterval-
-
getIndexCacheSize
public int getIndexCacheSize()Get the indexCacheSize- Returns:
- the indexCacheSize
-
setIndexCacheSize
public void setIndexCacheSize(int indexCacheSize) Set the indexCacheSize When set using Xbean, values of the form "20 Mb", "1024kb", and "1g" can be used- Parameters:
indexCacheSize- the indexCacheSize to set
-
isIgnoreMissingJournalfiles
public boolean isIgnoreMissingJournalfiles()Get the ignoreMissingJournalfiles- Returns:
- the ignoreMissingJournalfiles
-
setIgnoreMissingJournalfiles
public void setIgnoreMissingJournalfiles(boolean ignoreMissingJournalfiles) Set the ignoreMissingJournalfiles- Parameters:
ignoreMissingJournalfiles- the ignoreMissingJournalfiles to set
-
isChecksumJournalFiles
public boolean isChecksumJournalFiles() -
isCheckForCorruptJournalFiles
public boolean isCheckForCorruptJournalFiles() -
setChecksumJournalFiles
public void setChecksumJournalFiles(boolean checksumJournalFiles) -
setCheckForCorruptJournalFiles
public void setCheckForCorruptJournalFiles(boolean checkForCorruptJournalFiles) -
getPurgeRecoveredXATransactionStrategy
-
setPurgeRecoveredXATransactionStrategy
-
setBrokerService
- Specified by:
setBrokerServicein interfaceBrokerServiceAware- Overrides:
setBrokerServicein classLockableServiceSupport
-
getPreallocationScope
-
setPreallocationScope
-
getPreallocationStrategy
-
setPreallocationStrategy
-
isArchiveDataLogs
public boolean isArchiveDataLogs() -
setArchiveDataLogs
public void setArchiveDataLogs(boolean archiveDataLogs) -
getDirectoryArchive
-
setDirectoryArchive
-
isConcurrentStoreAndDispatchQueues
public boolean isConcurrentStoreAndDispatchQueues() -
setConcurrentStoreAndDispatchQueues
public void setConcurrentStoreAndDispatchQueues(boolean concurrentStoreAndDispatch) -
isConcurrentStoreAndDispatchTopics
public boolean isConcurrentStoreAndDispatchTopics() -
setConcurrentStoreAndDispatchTopics
public void setConcurrentStoreAndDispatchTopics(boolean concurrentStoreAndDispatch) -
getMaxAsyncJobs
public int getMaxAsyncJobs() -
setMaxAsyncJobs
public void setMaxAsyncJobs(int maxAsyncJobs) - Parameters:
maxAsyncJobs- the maxAsyncJobs to set
-
setDatabaseLockedWaitDelay
Deprecated.useLocker.setLockAcquireSleepInterval(long)instead- Parameters:
databaseLockedWaitDelay- the databaseLockedWaitDelay to set- Throws:
IOException
-
getForceRecoverIndex
public boolean getForceRecoverIndex() -
setForceRecoverIndex
public void setForceRecoverIndex(boolean forceRecoverIndex) -
isArchiveCorruptedIndex
public boolean isArchiveCorruptedIndex() -
setArchiveCorruptedIndex
public void setArchiveCorruptedIndex(boolean archiveCorruptedIndex) -
getIndexLFUEvictionFactor
public float getIndexLFUEvictionFactor() -
setIndexLFUEvictionFactor
public void setIndexLFUEvictionFactor(float indexLFUEvictionFactor) -
isUseIndexLFRUEviction
public boolean isUseIndexLFRUEviction() -
setUseIndexLFRUEviction
public void setUseIndexLFRUEviction(boolean useIndexLFRUEviction) -
setEnableIndexDiskSyncs
public void setEnableIndexDiskSyncs(boolean diskSyncs) -
isEnableIndexDiskSyncs
public boolean isEnableIndexDiskSyncs() -
setEnableIndexRecoveryFile
public void setEnableIndexRecoveryFile(boolean enable) -
isEnableIndexRecoveryFile
public boolean isEnableIndexRecoveryFile() -
setEnableIndexPageCaching
public void setEnableIndexPageCaching(boolean enable) -
isEnableIndexPageCaching
public boolean isEnableIndexPageCaching() -
getCompactAcksAfterNoGC
public int getCompactAcksAfterNoGC() -
setCompactAcksAfterNoGC
public void setCompactAcksAfterNoGC(int compactAcksAfterNoGC) Sets the number of GC cycles where no journal logs were removed before an attempt to move forward all the acks in the last log that contains them and is otherwise unreferenced.A value of -1 will disable this feature.
- Parameters:
compactAcksAfterNoGC- Number of empty GC cycles before we rewrite old ACKS.
-
isCompactAcksIgnoresStoreGrowth
public boolean isCompactAcksIgnoresStoreGrowth() -
setCompactAcksIgnoresStoreGrowth
public void setCompactAcksIgnoresStoreGrowth(boolean compactAcksIgnoresStoreGrowth) Configure if Ack compaction will occur regardless of continued growth of the journal logs meaning that the store has not run out of space yet. Because the compaction operation can be costly this value is defaulted to off and the Ack compaction is only done when it seems that the store cannot grow and larger.- Parameters:
compactAcksIgnoresStoreGrowth- the compactAcksIgnoresStoreGrowth to set
-
isEnableAckCompaction
public boolean isEnableAckCompaction()Returns whether Ack compaction is enabled- Returns:
- enableAckCompaction
-
setEnableAckCompaction
public void setEnableAckCompaction(boolean enableAckCompaction) Configure if the Ack compaction task should be enabled to run- Parameters:
enableAckCompaction-
-
isEnableSubscriptionStatistics
public boolean isEnableSubscriptionStatistics()Whether non-blocking subscription statistics have been enabled- Returns:
-
setEnableSubscriptionStatistics
public void setEnableSubscriptionStatistics(boolean enableSubscriptionStatistics) Enable caching statistics for each subscription to allow non-blocking retrieval of metrics. This could incur some overhead to compute if there are a lot of subscriptions.- Parameters:
enableSubscriptionStatistics-
-
getStore
-
createTransactionInfo
-
createDefaultLocker
- Specified by:
createDefaultLockerin interfaceLockable- Throws:
IOException
-
init
- Specified by:
initin classLockableServiceSupport- Throws:
Exception
-
toString
-
setTransactionIdTransformer
- Specified by:
setTransactionIdTransformerin interfaceTransactionIdTransformerAware
-
createJobSchedulerStore
public JobSchedulerStore createJobSchedulerStore() throws IOException, UnsupportedOperationException- Specified by:
createJobSchedulerStorein interfacePersistenceAdapter- Throws:
IOExceptionUnsupportedOperationException
-
isPersistNoLocal
public boolean isPersistNoLocal()- Specified by:
isPersistNoLocalin interfaceNoLocalSubscriptionAware
-
setCleanupOnStop
public void setCleanupOnStop(boolean cleanupOnStop) -
getCleanupOnStop
public boolean getCleanupOnStop()
-
getJournalDiskSyncStrategy()instead