public abstract class MessageDatabase extends ServiceSupport implements BrokerServiceAware
| Modifier and Type | Class and Description |
|---|---|
protected class |
MessageDatabase.LastAckMarshaller |
protected static class |
MessageDatabase.MessageKeysMarshaller |
protected class |
MessageDatabase.Metadata |
protected class |
MessageDatabase.StoredDestinationMarshaller |
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Set<java.lang.String> |
ackedAndPrepared |
protected boolean |
archiveDataLogs |
protected BrokerService |
brokerService |
protected java.lang.Thread |
checkpointThread |
static java.io.File |
DEFAULT_DIRECTORY |
protected boolean |
deleteAllMessages |
protected java.io.File |
directory |
protected java.io.File |
directoryArchive |
protected boolean |
enableJournalDiskSyncs |
protected boolean |
failIfDatabaseIsLocked |
protected boolean |
forceRecoverIndex |
protected java.util.concurrent.locks.ReentrantReadWriteLock |
indexLock |
protected Journal |
journal |
protected java.util.concurrent.atomic.AtomicLong |
journalSize |
static int |
LOG_SLOW_ACCESS_TIME |
protected MessageDatabase.Metadata |
metadata |
protected org.apache.activemq.store.kahadb.MessageDatabase.MetadataMarshaller |
metadataMarshaller |
protected java.util.concurrent.atomic.AtomicBoolean |
opened |
protected PageFile |
pageFile |
protected java.util.LinkedHashMap<TransactionId,java.util.List<org.apache.activemq.store.kahadb.MessageDatabase.Operation>> |
preparedTransactions |
static java.lang.String |
PROPERTY_LOG_SLOW_ACCESS_TIME |
protected static org.apache.activemq.protobuf.Buffer |
UNMATCHED |
| Constructor and Description |
|---|
MessageDatabase() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
checkpointCleanup(boolean cleanup) |
void |
close() |
void |
doStart() |
void |
doStop(ServiceStopper stopper) |
void |
forgetRecoveredAcks(java.util.ArrayList<MessageAck> acks) |
long |
getCheckpointInterval() |
long |
getCleanupInterval() |
java.io.File |
getDirectory() |
java.io.File |
getDirectoryArchive() |
protected org.apache.activemq.store.kahadb.MessageDatabase.StoredDestination |
getExistingStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination destination,
Transaction tx) |
int |
getFailoverProducersAuditDepth() |
int |
getIndexCacheSize() |
float |
getIndexLFUEvictionFactor() |
int |
getIndexWriteBatchSize() |
Location[] |
getInProgressTxLocationRange() |
Journal |
getJournal() |
java.util.HashSet<java.lang.Integer> |
getJournalFilesBeingReplicated() |
int |
getJournalMaxFileLength() |
int |
getJournalMaxWriteBatchSize() |
org.apache.activemq.store.kahadb.MessageDatabase.LastAck |
getLastAck(Transaction tx,
org.apache.activemq.store.kahadb.MessageDatabase.StoredDestination sd,
java.lang.String subscriptionKey) |
Location |
getLastUpdatePosition() |
int |
getMaxFailoverProducersToTrack() |
PageFile |
getPageFile() |
protected org.apache.activemq.store.kahadb.MessageDatabase.StoredDestination |
getStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination destination,
Transaction tx) |
long |
getStoredMessageCount(Transaction tx,
org.apache.activemq.store.kahadb.MessageDatabase.StoredDestination sd,
java.lang.String subscriptionKey) |
java.lang.String |
getTransactions() |
void |
incrementalRecover() |
boolean |
isArchiveCorruptedIndex() |
boolean |
isArchiveDataLogs() |
boolean |
isCheckForCorruptJournalFiles() |
boolean |
isChecksumJournalFiles() |
boolean |
isDeleteAllMessages() |
boolean |
isEnableIndexDiskSyncs() |
boolean |
isEnableIndexPageCaching() |
boolean |
isEnableIndexRecoveryFile() |
boolean |
isEnableJournalDiskSyncs() |
boolean |
isFailIfDatabaseIsLocked() |
boolean |
isIgnoreMissingJournalfiles() |
boolean |
isRewriteOnRedelivery() |
boolean |
isUseIndexLFRUEviction() |
void |
load() |
JournalCommand<?> |
load(Location location)
Loads a previously stored JournalMessage
|
void |
open() |
protected void |
process(org.apache.activemq.store.kahadb.data.KahaAddMessageCommand command,
Location location) |
protected void |
process(org.apache.activemq.store.kahadb.data.KahaCommitCommand command,
Location location,
java.lang.Runnable after) |
protected void |
process(org.apache.activemq.store.kahadb.data.KahaPrepareCommand command,
Location location) |
protected void |
process(org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand command,
Location location) |
protected void |
process(org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand command,
Location location) |
protected void |
process(org.apache.activemq.store.kahadb.data.KahaRollbackCommand command,
Location location) |
protected void |
process(org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand command,
Location location) |
protected void |
processLocation(Location location) |
protected void |
recoverIndex(Transaction tx) |
void |
setArchiveCorruptedIndex(boolean archiveCorruptedIndex) |
void |
setArchiveDataLogs(boolean archiveDataLogs) |
void |
setBrokerService(BrokerService brokerService) |
void |
setCheckForCorruptJournalFiles(boolean checkForCorruptJournalFiles) |
void |
setCheckpointInterval(long checkpointInterval) |
void |
setChecksumJournalFiles(boolean checksumJournalFiles) |
void |
setCleanupInterval(long cleanupInterval) |
void |
setDeleteAllMessages(boolean deleteAllMessages) |
void |
setDirectory(java.io.File directory) |
void |
setDirectoryArchive(java.io.File directoryArchive) |
void |
setEnableIndexDiskSyncs(boolean enableIndexDiskSyncs) |
void |
setEnableIndexPageCaching(boolean enableIndexPageCaching) |
void |
setEnableIndexRecoveryFile(boolean enableIndexRecoveryFile) |
void |
setEnableIndexWriteAsync(boolean enableIndexWriteAsync) |
void |
setEnableJournalDiskSyncs(boolean syncWrites) |
void |
setFailIfDatabaseIsLocked(boolean failIfDatabaseIsLocked) |
void |
setFailoverProducersAuditDepth(int failoverProducersAuditDepth) |
void |
setIgnoreMissingJournalfiles(boolean ignoreMissingJournalfiles) |
void |
setIndexCacheSize(int indexCacheSize) |
void |
setIndexLFUEvictionFactor(float indexLFUEvictionFactor) |
void |
setIndexWriteBatchSize(int setIndexWriteBatchSize) |
void |
setJournalMaxFileLength(int journalMaxFileLength) |
void |
setJournalMaxWriteBatchSize(int journalMaxWriteBatchSize) |
void |
setMaxFailoverProducersToTrack(int maxFailoverProducersToTrack) |
void |
setRewriteOnRedelivery(boolean rewriteOnRedelivery) |
void |
setUseIndexLFRUEviction(boolean useIndexLFRUEviction) |
Location |
store(JournalCommand<?> data) |
Location |
store(JournalCommand<?> data,
boolean sync,
java.lang.Runnable before,
java.lang.Runnable after) |
Location |
store(JournalCommand<?> data,
boolean sync,
java.lang.Runnable before,
java.lang.Runnable after,
java.lang.Runnable onJournalStoreComplete)
All updated are are funneled through this method.
|
Location |
store(JournalCommand<?> data,
java.lang.Runnable onJournalStoreComplete) |
ByteSequence |
toByteSequence(JournalCommand<?> data) |
void |
trackRecoveredAcks(java.util.ArrayList<MessageAck> acks) |
void |
unload() |
addServiceListener, dispose, isStarted, isStopped, isStopping, postStop, preStart, removeServiceListener, start, stopprotected BrokerService brokerService
public static final java.lang.String PROPERTY_LOG_SLOW_ACCESS_TIME
public static final int LOG_SLOW_ACCESS_TIME
public static final java.io.File DEFAULT_DIRECTORY
protected static final org.apache.activemq.protobuf.Buffer UNMATCHED
protected PageFile pageFile
protected Journal journal
protected MessageDatabase.Metadata metadata
protected org.apache.activemq.store.kahadb.MessageDatabase.MetadataMarshaller metadataMarshaller
protected boolean failIfDatabaseIsLocked
protected boolean deleteAllMessages
protected java.io.File directory
protected java.lang.Thread checkpointThread
protected boolean enableJournalDiskSyncs
protected boolean archiveDataLogs
protected java.io.File directoryArchive
protected java.util.concurrent.atomic.AtomicLong journalSize
protected java.util.concurrent.atomic.AtomicBoolean opened
protected boolean forceRecoverIndex
protected final java.util.concurrent.locks.ReentrantReadWriteLock indexLock
protected final java.util.LinkedHashMap<TransactionId,java.util.List<org.apache.activemq.store.kahadb.MessageDatabase.Operation>> preparedTransactions
protected final java.util.Set<java.lang.String> ackedAndPrepared
public void doStart()
throws java.lang.Exception
doStart in class ServiceSupportjava.lang.Exceptionpublic void doStop(ServiceStopper stopper) throws java.lang.Exception
doStop in class ServiceSupportjava.lang.Exceptionpublic void open()
throws java.io.IOException
java.io.IOExceptionpublic void load()
throws java.io.IOException
java.io.IOExceptionpublic void close()
throws java.io.IOException,
java.lang.InterruptedException
java.io.IOExceptionjava.lang.InterruptedExceptionpublic void unload()
throws java.io.IOException,
java.lang.InterruptedException
java.io.IOExceptionjava.lang.InterruptedExceptionpublic Location[] getInProgressTxLocationRange()
public java.lang.String getTransactions()
protected void recoverIndex(Transaction tx) throws java.io.IOException
java.io.IOExceptionpublic void incrementalRecover()
throws java.io.IOException
java.io.IOExceptionpublic Location getLastUpdatePosition() throws java.io.IOException
java.io.IOExceptionprotected void checkpointCleanup(boolean cleanup)
throws java.io.IOException
java.io.IOExceptionpublic ByteSequence toByteSequence(JournalCommand<?> data) throws java.io.IOException
java.io.IOExceptionpublic Location store(JournalCommand<?> data) throws java.io.IOException
java.io.IOExceptionpublic Location store(JournalCommand<?> data, java.lang.Runnable onJournalStoreComplete) throws java.io.IOException
java.io.IOExceptionpublic Location store(JournalCommand<?> data, boolean sync, java.lang.Runnable before, java.lang.Runnable after) throws java.io.IOException
java.io.IOExceptionpublic Location store(JournalCommand<?> data, boolean sync, java.lang.Runnable before, java.lang.Runnable after, java.lang.Runnable onJournalStoreComplete) throws java.io.IOException
java.io.IOExceptionpublic JournalCommand<?> load(Location location) throws java.io.IOException
location - java.io.IOExceptionprotected void process(org.apache.activemq.store.kahadb.data.KahaAddMessageCommand command,
Location location)
throws java.io.IOException
java.io.IOExceptionprotected void process(org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand command,
Location location)
throws java.io.IOException
java.io.IOExceptionprotected void process(org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand command,
Location location)
throws java.io.IOException
java.io.IOExceptionprotected void process(org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand command,
Location location)
throws java.io.IOException
java.io.IOExceptionprotected void processLocation(Location location)
protected void process(org.apache.activemq.store.kahadb.data.KahaCommitCommand command,
Location location,
java.lang.Runnable after)
throws java.io.IOException
java.io.IOExceptionprotected void process(org.apache.activemq.store.kahadb.data.KahaPrepareCommand command,
Location location)
protected void process(org.apache.activemq.store.kahadb.data.KahaRollbackCommand command,
Location location)
throws java.io.IOException
java.io.IOExceptionpublic java.util.HashSet<java.lang.Integer> getJournalFilesBeingReplicated()
protected org.apache.activemq.store.kahadb.MessageDatabase.StoredDestination getStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination destination,
Transaction tx)
throws java.io.IOException
java.io.IOExceptionprotected org.apache.activemq.store.kahadb.MessageDatabase.StoredDestination getExistingStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination destination,
Transaction tx)
throws java.io.IOException
java.io.IOExceptionpublic org.apache.activemq.store.kahadb.MessageDatabase.LastAck getLastAck(Transaction tx, org.apache.activemq.store.kahadb.MessageDatabase.StoredDestination sd, java.lang.String subscriptionKey) throws java.io.IOException
java.io.IOExceptionpublic long getStoredMessageCount(Transaction tx, org.apache.activemq.store.kahadb.MessageDatabase.StoredDestination sd, java.lang.String subscriptionKey) throws java.io.IOException
java.io.IOExceptionpublic void trackRecoveredAcks(java.util.ArrayList<MessageAck> acks)
public void forgetRecoveredAcks(java.util.ArrayList<MessageAck> acks) throws java.io.IOException
java.io.IOExceptionpublic int getJournalMaxWriteBatchSize()
public void setJournalMaxWriteBatchSize(int journalMaxWriteBatchSize)
public java.io.File getDirectory()
public void setDirectory(java.io.File directory)
public boolean isDeleteAllMessages()
public void setDeleteAllMessages(boolean deleteAllMessages)
public void setIndexWriteBatchSize(int setIndexWriteBatchSize)
public int getIndexWriteBatchSize()
public void setEnableIndexWriteAsync(boolean enableIndexWriteAsync)
public boolean isEnableJournalDiskSyncs()
public void setEnableJournalDiskSyncs(boolean syncWrites)
public long getCheckpointInterval()
public void setCheckpointInterval(long checkpointInterval)
public long getCleanupInterval()
public void setCleanupInterval(long cleanupInterval)
public void setJournalMaxFileLength(int journalMaxFileLength)
public int getJournalMaxFileLength()
public void setMaxFailoverProducersToTrack(int maxFailoverProducersToTrack)
public int getMaxFailoverProducersToTrack()
public void setFailoverProducersAuditDepth(int failoverProducersAuditDepth)
public int getFailoverProducersAuditDepth()
public PageFile getPageFile()
public Journal getJournal() throws java.io.IOException
java.io.IOExceptionpublic boolean isFailIfDatabaseIsLocked()
public void setFailIfDatabaseIsLocked(boolean failIfDatabaseIsLocked)
public boolean isIgnoreMissingJournalfiles()
public void setIgnoreMissingJournalfiles(boolean ignoreMissingJournalfiles)
public int getIndexCacheSize()
public void setIndexCacheSize(int indexCacheSize)
public boolean isCheckForCorruptJournalFiles()
public void setCheckForCorruptJournalFiles(boolean checkForCorruptJournalFiles)
public boolean isChecksumJournalFiles()
public void setChecksumJournalFiles(boolean checksumJournalFiles)
public void setBrokerService(BrokerService brokerService)
setBrokerService in interface BrokerServiceAwarepublic boolean isArchiveDataLogs()
public void setArchiveDataLogs(boolean archiveDataLogs)
archiveDataLogs - the archiveDataLogs to setpublic java.io.File getDirectoryArchive()
public void setDirectoryArchive(java.io.File directoryArchive)
directoryArchive - the directoryArchive to setpublic boolean isRewriteOnRedelivery()
public void setRewriteOnRedelivery(boolean rewriteOnRedelivery)
public boolean isArchiveCorruptedIndex()
public void setArchiveCorruptedIndex(boolean archiveCorruptedIndex)
public float getIndexLFUEvictionFactor()
public void setIndexLFUEvictionFactor(float indexLFUEvictionFactor)
public boolean isUseIndexLFRUEviction()
public void setUseIndexLFRUEviction(boolean useIndexLFRUEviction)
public void setEnableIndexDiskSyncs(boolean enableIndexDiskSyncs)
public void setEnableIndexRecoveryFile(boolean enableIndexRecoveryFile)
public void setEnableIndexPageCaching(boolean enableIndexPageCaching)
public boolean isEnableIndexDiskSyncs()
public boolean isEnableIndexRecoveryFile()
public boolean isEnableIndexPageCaching()
Copyright © 2005-2013 Red Hat, Inc.. All Rights Reserved.