http://activemq.2283324.n4.nabble.com/activemq-database-cleanup-td2346636.html
does activemq delete consumed / expired messages from the database on
its own or should i have a job deleting old messages running in the
background?
corollary: if activemq is doing the cleanup and the database is
filling up should i be worried about my app leaking messages that
aren't being consumed?
It generally does it on its own. For queues messages are deleted
immediately (though with the use of the journal that only happens when
a checkpoint occurs). For durable topics there is a background thread
which goes and tries to delete any message which has been consumed by
all the durable subscribers.
For expired messages we are currently quite passive and kinda zap them
as we go along. I'm sure we could be a bit more aggressive in our
removal of expired messages.
http://activemq.apache.org/kahadb.html
KahaDB Properties
property name | default value | Comments |
---|---|---|
directory | activemq-data | the path to the directory to use to store the message store data and log files |
indexWriteBatchSize | 1000 | number of indexes written in a batch |
indexCacheSize | 10000 | number of index pages cached in memory |
enableIndexWriteAsync | false | if set, will asynchronously write indexes |
journalMaxFileLength | 32mb | a hint to set the maximum size of the message data logs |
enableJournalDiskSyncs | true | ensure every non transactional journal write is followed by a disk sync (JMS durability requirement) |
cleanupInterval | 30000 | time (ms) before checking for a discarding/moving message data logs that are no longer used |
checkpointInterval | 5000 | time (ms) before checkpointing the journal |
ignoreMissingJournalfiles | false | If enabled, will ignore a missing message log file |
checkForCorruptJournalFiles | false | If enabled, will check for corrupted Journal files on startup and try and recover them |
checksumJournalFiles | false | create a checksum for a journal file - to enable checking for corrupted journals |
Available since version 5.4: | ||
archiveDataLogs | false | If enabled, will move a message data log to the archive directory instead of deleting it. |
directoryArchive | null | Define the directory to move data logs to when they all the messages they contain have been consumed. |
databaseLockedWaitDelay | 10000 | time (ms) before trying to get acquire a the database lock (used by shared master/slave) |
maxAsyncJobs | 10000 | the maximum number of asynchronous messages that will be queued awaiting storage (should be the same as the number of concurrent MessageProducers) |
concurrentStoreAndDispatchTransactions | true | enable the dispatching of messages to interested clients to happen concurrently with storing a transaction |
concurrentStoreAndDispatchTopics | true | enable the dispatching of Topic messages to interested clients to happen concurrently with message storage |
concurrentStoreAndDispatchQueues | true | enable the dispatching of Queue messages to interested clients to happen concurrently with message storage |