Repository: activemq Updated Branches: refs/heads/trunk 546714550 -> 232b8c51e
Implements AMQ-5072: Support configuring a different directory for the KahaDB index files. Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/232b8c51 Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/232b8c51 Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/232b8c51 Branch: refs/heads/trunk Commit: 232b8c51e97903a9a4da64633d3a80a0afaf250b Parents: 5467145 Author: Hiram Chirino <[email protected]> Authored: Fri Feb 21 11:08:27 2014 -0500 Committer: Hiram Chirino <[email protected]> Committed: Fri Feb 21 11:08:27 2014 -0500 ---------------------------------------------------------------------- .../activemq/store/kahadb/MessageDatabase.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/232b8c51/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java ---------------------------------------------------------------------- diff --git a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java index 2d2dd55..4775f1b 100644 --- a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java +++ b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java @@ -224,6 +224,7 @@ public abstract class MessageDatabase extends ServiceSupport implements BrokerSe protected boolean deleteAllMessages; protected File directory = DEFAULT_DIRECTORY; + protected File indexDirectory = null; protected Thread checkpointThread; protected boolean enableJournalDiskSyncs=true; protected boolean archiveDataLogs; @@ -2385,8 +2386,12 @@ public abstract class MessageDatabase extends ServiceSupport implements BrokerSe // Initialization related implementation methods. // ///////////////////////////////////////////////////////////////// - private PageFile createPageFile() { - PageFile index = new PageFile(directory, "db"); + private PageFile createPageFile() throws IOException { + if( indexDirectory == null ) { + indexDirectory = directory; + } + IOHelper.mkdirs(indexDirectory); + PageFile index = new PageFile(indexDirectory, "db"); index.setEnableWriteThread(isEnableIndexWriteAsync()); index.setWriteBatchSize(getIndexWriteBatchSize()); index.setPageCacheSize(indexCacheSize); @@ -2503,7 +2508,7 @@ public abstract class MessageDatabase extends ServiceSupport implements BrokerSe return this.metadata.producerSequenceIdTracker.getAuditDepth(); } - public PageFile getPageFile() { + public PageFile getPageFile() throws IOException { if (pageFile == null) { pageFile = createPageFile(); } @@ -3057,4 +3062,12 @@ public abstract class MessageDatabase extends ServiceSupport implements BrokerSe } } } + + public File getIndexDirectory() { + return indexDirectory; + } + + public void setIndexDirectory(File indexDirectory) { + this.indexDirectory = indexDirectory; + } }
