diff --git a/activemq-core/src/main/java/org/apache/activemq/kaha/impl/async/AsyncDataManager.java b/activemq-core/src/main/java/org/apache/activemq/kaha/impl/async/AsyncDataManager.java index 84ed26f2e7..b8895a9e74 100644 --- a/activemq-core/src/main/java/org/apache/activemq/kaha/impl/async/AsyncDataManager.java +++ b/activemq-core/src/main/java/org/apache/activemq/kaha/impl/async/AsyncDataManager.java @@ -564,4 +564,12 @@ public final class AsyncDataManager { this.lastAppendLocation.set(lastSyncedLocation); } + public boolean isUseNio() { + return useNio; + } + + public void setUseNio(boolean useNio) { + this.useNio = useNio; + } + } diff --git a/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapter.java b/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapter.java index 19691e2112..cbf779ce54 100644 --- a/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapter.java +++ b/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapter.java @@ -100,6 +100,9 @@ public class AMQPersistenceAdapter implements PersistenceAdapter, UsageListener, private BrokerService brokerService; private AtomicLong storeSize = new AtomicLong(); private boolean persistentIndex=true; + private boolean useNio = true; + private int maxFileLength = AsyncDataManager.DEFAULT_MAX_FILE_LENGTH; + public String getBrokerName() { return this.brokerName; @@ -609,6 +612,8 @@ public class AMQPersistenceAdapter implements PersistenceAdapter, UsageListener, protected AsyncDataManager createAsyncDataManager() { AsyncDataManager manager = new AsyncDataManager(storeSize); manager.setDirectory(new File(directory, "journal")); + manager.setMaxFileLength(maxFileLength); + manager.setUseNio(useNio); return manager; } @@ -706,4 +711,20 @@ public class AMQPersistenceAdapter implements PersistenceAdapter, UsageListener, public long size(){ return storeSize.get(); } + + public boolean isUseNio() { + return useNio; + } + + public void setUseNio(boolean useNio) { + this.useNio = useNio; + } + + public int getMaxFileLength() { + return maxFileLength; + } + + public void setMaxFileLength(int maxFileLength) { + this.maxFileLength = maxFileLength; + } } diff --git a/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapterFactory.java b/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapterFactory.java index 720d131afc..045a539aee 100644 --- a/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapterFactory.java +++ b/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapterFactory.java @@ -17,6 +17,8 @@ package org.apache.activemq.store.amq; import java.io.File; + +import org.apache.activemq.kaha.impl.async.AsyncDataManager; import org.apache.activemq.store.PersistenceAdapter; import org.apache.activemq.store.PersistenceAdapterFactory; import org.apache.activemq.store.ReferenceStoreAdapter; @@ -39,6 +41,9 @@ public class AMQPersistenceAdapterFactory implements PersistenceAdapterFactory { private ReferenceStoreAdapter referenceStoreAdapter; private boolean syncOnWrite; private boolean persistentIndex=true; + private boolean useNio = true; + private int maxFileLength = AsyncDataManager.DEFAULT_MAX_FILE_LENGTH; + /** * @return a AMQPersistenceAdapter @@ -52,6 +57,8 @@ public class AMQPersistenceAdapterFactory implements PersistenceAdapterFactory { result.setSyncOnWrite(isSyncOnWrite()); result.setPersistentIndex(isPersistentIndex()); result.setReferenceStoreAdapter(getReferenceStoreAdapter()); + result.setUseNio(isUseNio()); + result.setMaxFileLength(getMaxFileLength()); return result; } @@ -147,4 +154,20 @@ public class AMQPersistenceAdapterFactory implements PersistenceAdapterFactory { public void setSyncOnWrite(boolean syncOnWrite) { this.syncOnWrite = syncOnWrite; } + + public boolean isUseNio() { + return useNio; + } + + public void setUseNio(boolean useNio) { + this.useNio = useNio; + } + + public int getMaxFileLength() { + return maxFileLength; + } + + public void setMaxFileLength(int maxFileLength) { + this.maxFileLength = maxFileLength; + } }