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;
+    }
 }

Reply via email to