You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2016/01/29 17:39:39 UTC
svn commit: r1727613 - in /qpid/java/branches/6.0.x: ./
bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/
bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/
bdbstore/src/main/java/org/apache/qpid/server/virtualhos...
Author: kwall
Date: Fri Jan 29 16:39:39 2016
New Revision: 1727613
URL: http://svn.apache.org/viewvc?rev=1727613&view=rev
Log:
QPID-7006 , QPID-7007 : Add operations to update BDB configuration, retrieve statistics, clean log and perform checkpoint
svn merge -c 1726176,1726249 ^/qpid/java/trunk
Added:
qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentUtils.java
- copied, changed from r1726176, qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentUtils.java
Modified:
qpid/java/branches/6.0.x/ (props changed)
qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBEnvironmentContainer.java
qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacade.java
qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacade.java
qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHost.java
qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHostImpl.java
qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNode.java
qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNode.java
qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNodeImpl.java
Propchange: qpid/java/branches/6.0.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 29 16:39:39 2016
@@ -9,5 +9,5 @@
/qpid/branches/java-broker-vhost-refactor/java:1493674-1494547
/qpid/branches/java-network-refactor/qpid/java:805429-821809
/qpid/branches/qpid-2935/qpid/java:1061302-1072333
-/qpid/java/trunk:1715445-1715447,1715586,1715940,1716086-1716087,1716127-1716128,1716141,1716153,1716155,1716194,1716204,1716209,1716227,1716277,1716357,1716368,1716370,1716374,1716432,1716444-1716445,1716455,1716461,1716474,1716489,1716497,1716515,1716555,1716602,1716606-1716610,1716619,1716636,1717269,1717299,1717401,1717446,1717449,1717626,1717691,1717735,1717780,1718744,1718889,1718893,1718918,1718922,1719026,1719028,1719033,1719037,1719047,1719051,1720340,1720664,1721151,1721198,1722019,1722246,1722339,1723064,1723194,1723563,1724216,1724251,1724257,1724292,1724375,1724397,1724432,1724582,1724603,1724780,1724843-1724844,1725295,1725569,1726244-1726246,1726358,1726436,1726449,1726456,1726646,1726653,1726755,1726778,1727608
+/qpid/java/trunk:1715445-1715447,1715586,1715940,1716086-1716087,1716127-1716128,1716141,1716153,1716155,1716194,1716204,1716209,1716227,1716277,1716357,1716368,1716370,1716374,1716432,1716444-1716445,1716455,1716461,1716474,1716489,1716497,1716515,1716555,1716602,1716606-1716610,1716619,1716636,1717269,1717299,1717401,1717446,1717449,1717626,1717691,1717735,1717780,1718744,1718889,1718893,1718918,1718922,1719026,1719028,1719033,1719037,1719047,1719051,1720340,1720664,1721151,1721198,1722019,1722246,1722339,1723064,1723194,1723563,1724216,1724251,1724257,1724292,1724375,1724397,1724432,1724582,1724603,1724780,1724843-1724844,1725295,1725569,1726176,1726244-1726246,1726249,1726358,1726436,1726449,1726456,1726646,1726653,1726755,1726778,1727608
/qpid/trunk/qpid:796646-796653
Modified: qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBEnvironmentContainer.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBEnvironmentContainer.java?rev=1727613&r1=1727612&r2=1727613&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBEnvironmentContainer.java (original)
+++ qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBEnvironmentContainer.java Fri Jan 29 16:39:39 2016
@@ -19,7 +19,31 @@
package org.apache.qpid.server.store.berkeleydb;
-public interface BDBEnvironmentContainer
+import java.util.Map;
+
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.ManagedOperation;
+import org.apache.qpid.server.model.Param;
+
+public interface BDBEnvironmentContainer<X extends ConfiguredObject<X>> extends ConfiguredObject<X>
{
void setBDBCacheSize(long cacheSize);
+
+ @ManagedOperation(description = "Update BDB mutable configuration from settings in context variables")
+ void updateMutableConfig();
+
+ @ManagedOperation(description = "Instruct BDB to attempt to clean up its log files")
+ int cleanLog();
+
+ @ManagedOperation(description = "Instruct BDB to perform a checkpoint operation")
+ void checkpoint(@Param(name = "force", defaultValue = "false") boolean force);
+
+ @ManagedOperation(description = "Get the BDB environment statistics", nonModifying = true)
+ Map<String,Map<String,Object>> environmentStatistics(@Param(name="reset", defaultValue = "false", description = "If true, reset the statistics") boolean reset);
+
+ @ManagedOperation(description = "Get the BDB transaction statistics", nonModifying = true)
+ Map<String, Object> transactionStatistics(@Param(name="reset", defaultValue = "false", description = "If true, reset the statistics")boolean reset);
+
+ @ManagedOperation(description = "Get the BDB database statistics", nonModifying = true)
+ Map<String, Object> databaseStatistics(@Param(name="database", description = "database table for which to retrieve statistics")String database, @Param(name="reset", defaultValue = "false", description = "If true, reset the statistics") boolean reset);
}
Modified: qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacade.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacade.java?rev=1727613&r1=1727612&r2=1727613&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacade.java (original)
+++ qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacade.java Fri Jan 29 16:39:39 2016
@@ -45,6 +45,8 @@ public interface EnvironmentFacade
put(EnvironmentConfig.LOCK_N_LOCK_TABLES, "7");
// Turn off stats generation - feature introduced (and on by default) from BDB JE 5.0.84
put(EnvironmentConfig.STATS_COLLECT, "false");
+ put(EnvironmentConfig.FILE_LOGGING_LEVEL, "OFF");
+ put(EnvironmentConfig.CONSOLE_LOGGING_LEVEL, "OFF");
put(EnvironmentConfig.CLEANER_UPGRADE_TO_LOG_VERSION, "-1");
// Automatic cleaner adjustment has been seen to stop the cleaner working at all, disable it
// Newer versions of BDB JE 6.3 ignore this setting.
@@ -80,4 +82,16 @@ public interface EnvironmentFacade
void setCacheSize(long cacheSize);
void flushLogFailed(RuntimeException failure);
+
+ void updateMutableConfig(ConfiguredObject<?> object);
+
+ int cleanLog();
+
+ void checkpoint(final boolean force);
+
+ Map<String,Map<String,Object>> getEnvironmentStatistics(boolean reset);
+
+ Map<String, Object> getTransactionStatistics(boolean reset);
+
+ Map<String,Object> getDatabaseStatistics(String database, boolean reset);
}
Copied: qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentUtils.java (from r1726176, qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentUtils.java)
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentUtils.java?p2=qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentUtils.java&p1=qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentUtils.java&r1=1726176&r2=1727613&rev=1727613&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentUtils.java (original)
+++ qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentUtils.java Fri Jan 29 16:39:39 2016
@@ -192,18 +192,18 @@ final public class EnvironmentUtils
if(!currentlySetInEnv || !contextValue.equals(mutableConfig.getConfigParam(paramName)))
{
mutableConfig.setConfigParam(paramName, contextValue);
- LOGGER.debug("Setting BDB configuration parameter '%1' to value '%2'.", param, contextValue);
+ LOGGER.debug("Setting BDB configuration parameter '{}' to value '{}'.", param, contextValue);
}
}
else if(currentlySetInEnv && !paramsSetByDefault.contains(paramName))
{
mutableConfig.setConfigParam(paramName, param.getDefault());
- LOGGER.debug("Setting BDB configuration parameter '%1' to its default value.", param);
+ LOGGER.debug("Setting BDB configuration parameter '{}' to its default value.", param);
}
}
catch (IllegalArgumentException e)
{
- LOGGER.warn("Unable to set BDB configuration parameter '%1' to value '%2'.", param, contextValue, e);
+ LOGGER.warn("Unable to set BDB configuration parameter '{}' to value '{}'.", param, contextValue, e);
}
}
Modified: qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacade.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacade.java?rev=1727613&r1=1727612&r2=1727613&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacade.java (original)
+++ qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacade.java Fri Jan 29 16:39:39 2016
@@ -21,14 +21,19 @@
package org.apache.qpid.server.store.berkeleydb;
import java.io.File;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicReference;
import com.google.common.util.concurrent.ListenableFuture;
import com.sleepycat.je.CacheMode;
+import com.sleepycat.je.CheckpointConfig;
import com.sleepycat.je.Database;
import com.sleepycat.je.DatabaseConfig;
import com.sleepycat.je.DatabaseEntry;
@@ -42,6 +47,7 @@ import com.sleepycat.je.Transaction;
import com.sleepycat.je.TransactionConfig;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.store.berkeleydb.upgrade.Upgrader;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -60,6 +66,18 @@ public class StandardEnvironmentFacade i
private final Committer _committer;
private final File _environmentPath;
+ private static final Set<String> PARAMS_SET_BY_DEFAULT;
+
+ static
+ {
+ Set<String> excludes = new HashSet<>(ENVCONFIG_DEFAULTS.keySet());
+ excludes.addAll(Arrays.asList(EnvironmentConfig.MAX_MEMORY,
+ EnvironmentConfig.MAX_MEMORY_PERCENT
+ ));
+ PARAMS_SET_BY_DEFAULT = Collections.unmodifiableSet(excludes);
+ }
+
+
public StandardEnvironmentFacade(StandardEnvironmentConfiguration configuration)
{
_storePath = configuration.getStorePath();
@@ -84,8 +102,6 @@ public class StandardEnvironmentFacade i
envConfig.setAllowCreate(true);
envConfig.setTransactional(true);
envConfig.setCacheMode(configuration.getCacheMode());
- envConfig.setConfigParam(EnvironmentConfig.FILE_LOGGING_LEVEL, "OFF");
- envConfig.setConfigParam(EnvironmentConfig.CONSOLE_LOGGING_LEVEL, "OFF");
envConfig.setLoggingHandler(new Slf4jLoggingHandler("["+configuration.getName()+"]"));
LOGGER.debug("Cache mode {}", envConfig.getCacheMode());
@@ -243,6 +259,45 @@ public class StandardEnvironmentFacade i
}
}
+ @Override
+ public void updateMutableConfig(final ConfiguredObject<?> object)
+ {
+ EnvironmentUtils.updateMutableConfig(getEnvironment(), PARAMS_SET_BY_DEFAULT, false, object);
+ }
+
+ @Override
+ public int cleanLog()
+ {
+ return getEnvironment().cleanLog();
+ }
+
+ @Override
+ public void checkpoint(final boolean force)
+ {
+ CheckpointConfig ckptConfig = new CheckpointConfig();
+ ckptConfig.setForce(force);
+ getEnvironment().checkpoint(ckptConfig);
+ }
+
+ @Override
+ public Map<String,Map<String,Object>> getEnvironmentStatistics(boolean reset)
+ {
+ return EnvironmentUtils.getEnvironmentStatistics(getEnvironment(), reset);
+ }
+
+
+ @Override
+ public Map<String,Object> getDatabaseStatistics(String database, boolean reset)
+ {
+ return EnvironmentUtils.getDatabaseStatistics(getEnvironment(), database, reset);
+ }
+
+ @Override
+ public Map<String, Object> getTransactionStatistics(boolean reset)
+ {
+ return EnvironmentUtils.getTransactionStatistics(getEnvironment(), reset);
+ }
+
private void closeSequences()
{
RuntimeException firstThrownException = null;
Modified: qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java?rev=1727613&r1=1727612&r2=1727613&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java (original)
+++ qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java Fri Jan 29 16:39:39 2016
@@ -24,6 +24,7 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.net.InetSocketAddress;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -47,24 +48,11 @@ import java.util.concurrent.atomic.Atomi
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
-import com.sleepycat.je.Database;
-import com.sleepycat.je.DatabaseConfig;
-import com.sleepycat.je.DatabaseEntry;
-import com.sleepycat.je.DatabaseException;
-import com.sleepycat.je.Durability;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
+import com.sleepycat.je.*;
import com.sleepycat.je.Durability.ReplicaAckPolicy;
import com.sleepycat.je.Durability.SyncPolicy;
-import com.sleepycat.je.EnvironmentConfig;
-import com.sleepycat.je.EnvironmentFailureException;
-import com.sleepycat.je.EnvironmentMutableConfig;
-import com.sleepycat.je.ExceptionEvent;
-import com.sleepycat.je.LogWriteException;
-import com.sleepycat.je.Sequence;
-import com.sleepycat.je.SequenceConfig;
-import com.sleepycat.je.Transaction;
-import com.sleepycat.je.TransactionConfig;
import com.sleepycat.je.rep.*;
import com.sleepycat.je.rep.impl.node.NameIdPair;
import com.sleepycat.je.rep.util.DbPing;
@@ -75,6 +63,7 @@ import com.sleepycat.je.rep.vlsn.VLSNRan
import com.sleepycat.je.utilint.PropUtil;
import com.sleepycat.je.utilint.VLSN;
import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.store.berkeleydb.EnvironmentUtils;
import org.apache.qpid.server.store.berkeleydb.upgrade.Upgrader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -190,6 +179,21 @@ public class ReplicatedEnvironmentFacade
put(ReplicationConfig.CONSISTENCY_POLICY, NoConsistencyRequiredPolicy.NAME);
}});
+ private static final Set<String> PARAMS_SET_BY_DEFAULT;
+
+ static
+ {
+ Set<String> excludes = new HashSet<>(ENVCONFIG_DEFAULTS.keySet());
+
+ excludes.addAll(REPCONFIG_DEFAULTS.keySet());
+
+ excludes.addAll(Arrays.asList(EnvironmentConfig.MAX_MEMORY,
+ EnvironmentConfig.MAX_MEMORY_PERCENT
+ ));
+ PARAMS_SET_BY_DEFAULT = Collections.unmodifiableSet(excludes);
+ }
+
+
public static final String PERMITTED_NODE_LIST = "permittedNodes";
private final ReplicatedEnvironmentConfiguration _configuration;
@@ -720,7 +724,7 @@ public class ReplicatedEnvironmentFacade
{
LOGGER.debug("Submitting a job to set cache size on {} to {}", _prettyGroupNodeName, cacheSize);
- Future<Void> future = _environmentJobExecutor.submit(new Callable<Void>()
+ Callable<Void> task = new Callable<Void>()
{
@Override
public Void call()
@@ -728,11 +732,134 @@ public class ReplicatedEnvironmentFacade
setCacheSizeInternal(cacheSize);
return null;
}
- });
- int timeout = 1;
+ };
+ submitEnvironmentTask(1, task, "setting cache size");
+ }
+
+ @Override
+ public void updateMutableConfig(final ConfiguredObject<?> object)
+ {
+ LOGGER.debug("Submitting a job to set update mutable config on {}", _prettyGroupNodeName);
+
+ Callable<Void> task = new Callable<Void>()
+ {
+ @Override
+ public Void call()
+ {
+ EnvironmentUtils.updateMutableConfig(getEnvironment(), PARAMS_SET_BY_DEFAULT, true, object);
+ return null;
+ }
+ };
+ submitEnvironmentTask(5, task, "updating mutable config");
+
+ }
+
+
+ @Override
+ public int cleanLog()
+ {
+ LOGGER.debug("Submitting a job to clean log files on {} ", _prettyGroupNodeName);
+ int timeout = 5;
+
+ Callable<Integer> task = new Callable<Integer>()
+ {
+ @Override
+ public Integer call()
+ {
+ return getEnvironment().cleanLog();
+ }
+ };
+
+
+ Integer fileCount = submitEnvironmentTask(timeout, task, "cleaning log files");
+ return fileCount == null ? 0 : fileCount;
+ }
+
+ @Override
+ public void checkpoint(final boolean force)
+ {
+ LOGGER.debug("Submitting a job to perform checkpoint on {} ", _prettyGroupNodeName);
+ int timeout = 5;
+
+ Callable<Void> task = new Callable<Void>()
+ {
+ @Override
+ public Void call()
+ {
+ CheckpointConfig checkpointConfig = new CheckpointConfig();
+ checkpointConfig.setForce(force);
+ getEnvironment().checkpoint(checkpointConfig);
+ return null;
+ }
+ };
+
+ submitEnvironmentTask(timeout, task, "perform checkpoint");
+ }
+
+ @Override
+ public Map<String, Map<String, Object>> getEnvironmentStatistics(final boolean reset)
+ {
+ LOGGER.debug("Submitting a job to get environment statistics on {} ", _prettyGroupNodeName);
+ int timeout = 5;
+
+ Callable<Map<String,Map<String,Object>>> task = new Callable<Map<String,Map<String,Object>>>()
+ {
+ @Override
+ public Map<String,Map<String,Object>> call()
+ {
+ return EnvironmentUtils.getEnvironmentStatistics(getEnvironment(), reset);
+
+ }
+ };
+
+ return submitEnvironmentTask(timeout, task, "get environment statistics");
+ }
+
+ @Override
+ public Map<String, Object> getTransactionStatistics(final boolean reset)
+ {
+ LOGGER.debug("Submitting a job to get transaction statistics on {} ", _prettyGroupNodeName);
+ int timeout = 5;
+
+ Callable<Map<String,Object>> task = new Callable<Map<String,Object>>()
+ {
+ @Override
+ public Map<String,Object> call()
+ {
+ return EnvironmentUtils.getTransactionStatistics(getEnvironment(), reset);
+ }
+ };
+
+ return submitEnvironmentTask(timeout, task, "get transaction statistics");
+ }
+
+ @Override
+ public Map<String,Object> getDatabaseStatistics(final String database, final boolean reset)
+ {
+ LOGGER.debug("Submitting a job to get database statistics for {} on {} ", database, _prettyGroupNodeName);
+ int timeout = 5;
+
+ Callable<Map<String,Object>> task = new Callable<Map<String,Object>>()
+ {
+ @Override
+ public Map<String, Object> call()
+ {
+
+ return EnvironmentUtils.getDatabaseStatistics(getEnvironment(), database, reset);
+ }
+ };
+
+ return submitEnvironmentTask(timeout, task, "get database statistics for '" + database + "'");
+
+ }
+
+
+ private <T> T submitEnvironmentTask(final int timeout, final Callable<T> task, String action)
+ {
+ Future<T> future = _environmentJobExecutor.submit(task);
try
{
- future.get(timeout, TimeUnit.SECONDS);
+ return future.get(timeout, TimeUnit.SECONDS);
}
catch (InterruptedException e)
{
@@ -744,20 +871,25 @@ public class ReplicatedEnvironmentFacade
if (cause instanceof Error)
{
throw (Error) cause;
- } else if (cause instanceof RuntimeException)
+ }
+ else if (cause instanceof RuntimeException)
{
throw (RuntimeException) cause;
- } else
+ }
+ else
{
- throw new ConnectionScopedRuntimeException("Unexpected exception while setting cache size", e);
+ throw new ConnectionScopedRuntimeException("Unexpected exception while " + action, e);
}
}
catch (TimeoutException e)
{
- LOGGER.info("setting of cache size on {} timed out after {} seconds", _prettyGroupNodeName, timeout);
+ LOGGER.info("{} on {} timed out after {} seconds", action, _prettyGroupNodeName, timeout);
}
+
+ return null;
}
+
@Override
public void flushLogFailed(final RuntimeException e)
{
@@ -1410,8 +1542,6 @@ public class ReplicatedEnvironmentFacade
envConfig.setExceptionListener(new ExceptionListener());
envConfig.setDurability(_defaultDurability);
envConfig.setCacheMode(_configuration.getCacheMode());
- envConfig.setConfigParam(EnvironmentConfig.FILE_LOGGING_LEVEL, "OFF");
- envConfig.setConfigParam(EnvironmentConfig.CONSOLE_LOGGING_LEVEL, "OFF");
envConfig.setLoggingHandler(new Slf4jLoggingHandler("[" + _configuration.getName() + "]"));
LOGGER.info("Cache mode {}", envConfig.getCacheMode());
Modified: qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHost.java?rev=1727613&r1=1727612&r2=1727613&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHost.java (original)
+++ qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHost.java Fri Jan 29 16:39:39 2016
@@ -28,7 +28,7 @@ import org.apache.qpid.server.store.Size
import org.apache.qpid.server.store.berkeleydb.BDBEnvironmentContainer;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
-public interface BDBVirtualHost<X extends BDBVirtualHost<X>> extends VirtualHostImpl<X, AMQQueue<?>, ExchangeImpl<?>>, org.apache.qpid.server.store.FileBasedSettings, SizeMonitoringSettings, BDBEnvironmentContainer
+public interface BDBVirtualHost<X extends BDBVirtualHost<X>> extends VirtualHostImpl<X, AMQQueue<?>, ExchangeImpl<?>>, org.apache.qpid.server.store.FileBasedSettings, SizeMonitoringSettings, BDBEnvironmentContainer<X>
{
String STORE_PATH = "storePath";
Modified: qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHostImpl.java?rev=1727613&r1=1727612&r2=1727613&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHostImpl.java (original)
+++ qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHostImpl.java Fri Jan 29 16:39:39 2016
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.server.virtualhost.berkeleydb;
+import java.util.Collections;
import java.util.Map;
import org.apache.qpid.server.model.ManagedAttributeField;
@@ -30,6 +31,7 @@ import org.apache.qpid.server.store.Mess
import org.apache.qpid.server.store.berkeleydb.BDBMessageStore;
import org.apache.qpid.server.store.berkeleydb.EnvironmentFacade;
import org.apache.qpid.server.store.berkeleydb.BDBCacheSizeSetter;
+import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade;
import org.apache.qpid.server.virtualhost.AbstractVirtualHost;
@ManagedObject(category = false, type = BDBVirtualHostImpl.VIRTUAL_HOST_TYPE)
@@ -92,4 +94,96 @@ public class BDBVirtualHostImpl extends
}
}
}
+
+ @Override
+ public void updateMutableConfig()
+ {
+ getSecurityManager().authoriseUpdate(this);
+ BDBMessageStore bdbMessageStore = (BDBMessageStore) getMessageStore();
+ if (bdbMessageStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbMessageStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ environmentFacade.updateMutableConfig(this);
+ }
+ }
+ }
+
+ @Override
+ public int cleanLog()
+ {
+ getSecurityManager().authoriseUpdate(this);
+ BDBMessageStore bdbMessageStore = (BDBMessageStore) getMessageStore();
+ if (bdbMessageStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbMessageStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.cleanLog();
+ }
+ }
+ return 0;
+ }
+
+ @Override
+ public void checkpoint(final boolean force)
+ {
+ getSecurityManager().authoriseUpdate(this);
+ BDBMessageStore bdbMessageStore = (BDBMessageStore) getMessageStore();
+ if (bdbMessageStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbMessageStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ environmentFacade.checkpoint(force);
+ }
+ }
+ }
+
+ @Override
+ public Map<String, Map<String, Object>> environmentStatistics(final boolean reset)
+ {
+ BDBMessageStore bdbMessageStore = (BDBMessageStore) getMessageStore();
+ if (bdbMessageStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbMessageStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.getEnvironmentStatistics(reset);
+ }
+ }
+ return Collections.emptyMap();
+ }
+
+
+ @Override
+ public Map<String, Object> transactionStatistics(final boolean reset)
+ {
+ BDBMessageStore bdbMessageStore = (BDBMessageStore) getMessageStore();
+ if (bdbMessageStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbMessageStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.getTransactionStatistics(reset);
+ }
+ }
+ return Collections.emptyMap();
+ }
+
+ @Override
+ public Map<String, Object> databaseStatistics(String database, final boolean reset)
+ {
+ BDBMessageStore bdbMessageStore = (BDBMessageStore) getMessageStore();
+ if (bdbMessageStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbMessageStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.getDatabaseStatistics(database, reset);
+ }
+ }
+ return Collections.emptyMap();
+ }
}
Modified: qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNode.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNode.java?rev=1727613&r1=1727612&r2=1727613&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNode.java (original)
+++ qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNode.java Fri Jan 29 16:39:39 2016
@@ -28,7 +28,7 @@ import org.apache.qpid.server.store.berk
import org.apache.qpid.server.store.berkeleydb.BDBEnvironmentContainer;
-public interface BDBHAVirtualHostNode<X extends BDBHAVirtualHostNode<X>> extends BDBVirtualHostNode<X>, HASettings, BDBEnvironmentContainer
+public interface BDBHAVirtualHostNode<X extends BDBHAVirtualHostNode<X>> extends BDBVirtualHostNode<X>, HASettings
{
public static final String GROUP_NAME = "groupName";
public static final String ADDRESS = "address";
Modified: qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java?rev=1727613&r1=1727612&r2=1727613&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java (original)
+++ qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java Fri Jan 29 16:39:39 2016
@@ -73,6 +73,7 @@ import org.apache.qpid.server.model.Conf
import org.apache.qpid.server.model.ManagedAttributeField;
import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
+import org.apache.qpid.server.model.Param;
import org.apache.qpid.server.model.RemoteReplicationNode;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.StateTransition;
@@ -1376,6 +1377,80 @@ public class BDBHAVirtualHostNodeImpl ex
abstract void perform();
}
+ @Override
+ public void updateMutableConfig()
+ {
+ getSecurityManager().authoriseUpdate(getBroker());
+ ReplicatedEnvironmentFacade environmentFacade = getReplicatedEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ environmentFacade.updateMutableConfig(this);
+ }
+ }
+
+ @Override
+ public int cleanLog()
+ {
+ getSecurityManager().authoriseUpdate(getBroker());
+ ReplicatedEnvironmentFacade environmentFacade = getReplicatedEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.cleanLog();
+ }
+ return 0;
+ }
+
+ @Override
+ public void checkpoint(final boolean force)
+ {
+ getSecurityManager().authoriseUpdate(getBroker());
+ ReplicatedEnvironmentFacade environmentFacade = getReplicatedEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ environmentFacade.checkpoint(force);
+ }
+ }
+
+ @Override
+ public Map<String, Map<String, Object>> environmentStatistics(final boolean reset)
+ {
+ ReplicatedEnvironmentFacade environmentFacade = getReplicatedEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.getEnvironmentStatistics(reset);
+ }
+ else
+ {
+ return Collections.emptyMap();
+ }
+ }
+
+ @Override
+ public Map<String, Object> transactionStatistics(final boolean reset)
+ {
+ ReplicatedEnvironmentFacade environmentFacade = getReplicatedEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.getTransactionStatistics(reset);
+ }
+ else
+ {
+ return Collections.emptyMap();
+ }
+ }
+ @Override
+ public Map<String, Object> databaseStatistics(String database, final boolean reset)
+ {
+ ReplicatedEnvironmentFacade environmentFacade = getReplicatedEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.getDatabaseStatistics(database, reset);
+ }
+ else
+ {
+ return Collections.emptyMap();
+ }
+ }
public static Map<String, Collection<String>> getSupportedChildTypes()
{
return Collections.singletonMap(VirtualHost.class.getSimpleName(), (Collection<String>) Collections.singleton(BDBHAVirtualHostImpl.VIRTUAL_HOST_TYPE));
Modified: qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNode.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNode.java?rev=1727613&r1=1727612&r2=1727613&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNode.java (original)
+++ qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNode.java Fri Jan 29 16:39:39 2016
@@ -23,7 +23,7 @@ package org.apache.qpid.server.virtualho
import org.apache.qpid.server.model.ManagedAttribute;
import org.apache.qpid.server.store.berkeleydb.BDBEnvironmentContainer;
-public interface BDBVirtualHostNode<X extends BDBVirtualHostNode<X>> extends org.apache.qpid.server.model.VirtualHostNode<X>, org.apache.qpid.server.store.FileBasedSettings, BDBEnvironmentContainer
+public interface BDBVirtualHostNode<X extends BDBVirtualHostNode<X>> extends org.apache.qpid.server.model.VirtualHostNode<X>, org.apache.qpid.server.store.FileBasedSettings, BDBEnvironmentContainer<X>
{
String STORE_PATH = "storePath";
Modified: qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNodeImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNodeImpl.java?rev=1727613&r1=1727612&r2=1727613&view=diff
==============================================================================
--- qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNodeImpl.java (original)
+++ qpid/java/branches/6.0.x/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNodeImpl.java Fri Jan 29 16:39:39 2016
@@ -32,6 +32,7 @@ import org.apache.qpid.server.model.Mana
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.store.DurableConfigurationStore;
import org.apache.qpid.server.store.berkeleydb.BDBConfigurationStore;
+import org.apache.qpid.server.store.berkeleydb.BDBMessageStore;
import org.apache.qpid.server.store.berkeleydb.EnvironmentFacade;
import org.apache.qpid.server.store.berkeleydb.BDBCacheSizeSetter;
import org.apache.qpid.server.virtualhostnode.AbstractStandardVirtualHostNode;
@@ -94,4 +95,95 @@ public class BDBVirtualHostNodeImpl exte
}
}
}
+
+ @Override
+ public void updateMutableConfig()
+ {
+ getSecurityManager().authoriseUpdate(getBroker());
+ BDBConfigurationStore bdbConfigurationStore = (BDBConfigurationStore) getConfigurationStore();
+ if (bdbConfigurationStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbConfigurationStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ environmentFacade.updateMutableConfig(this);
+ }
+ }
+ }
+
+ @Override
+ public int cleanLog()
+ {
+ getSecurityManager().authoriseUpdate(getBroker());
+ BDBConfigurationStore bdbConfigurationStore = (BDBConfigurationStore) getConfigurationStore();
+ if (bdbConfigurationStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbConfigurationStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.cleanLog();
+ }
+ }
+ return 0;
+ }
+
+ @Override
+ public void checkpoint(final boolean force)
+ {
+ getSecurityManager().authoriseUpdate(getBroker());
+ BDBConfigurationStore bdbConfigurationStore = (BDBConfigurationStore) getConfigurationStore();
+ if (bdbConfigurationStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbConfigurationStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ environmentFacade.checkpoint(force);
+ }
+ }
+ }
+
+ @Override
+ public Map<String, Map<String, Object>> environmentStatistics(final boolean reset)
+ {
+ BDBConfigurationStore bdbConfigurationStore = (BDBConfigurationStore) getConfigurationStore();
+ if (bdbConfigurationStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbConfigurationStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.getEnvironmentStatistics(reset);
+ }
+ }
+ return Collections.emptyMap();
+ }
+
+ @Override
+ public Map<String, Object> transactionStatistics(final boolean reset)
+ {
+ BDBConfigurationStore bdbConfigurationStore = (BDBConfigurationStore) getConfigurationStore();
+ if (bdbConfigurationStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbConfigurationStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.getTransactionStatistics(reset);
+ }
+ }
+ return Collections.emptyMap();
+ }
+
+ @Override
+ public Map<String, Object> databaseStatistics(String database, final boolean reset)
+ {
+ BDBConfigurationStore bdbConfigurationStore = (BDBConfigurationStore) getConfigurationStore();
+ if (bdbConfigurationStore != null)
+ {
+ EnvironmentFacade environmentFacade = bdbConfigurationStore.getEnvironmentFacade();
+ if (environmentFacade != null)
+ {
+ return environmentFacade.getDatabaseStatistics(database, reset);
+ }
+ }
+ return Collections.emptyMap();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org