opends/lib/je.jarBinary files differ
opends/src/messages/messages/jeb.properties
@@ -386,3 +386,6 @@ entries to process SEVERE_ERR_JEB_REBUILD_SUFFIX_ERROR_205=Rebuild of base DN %s failed \ because it not available SEVERE_ERR_CONFIG_JEB_DURABILITY_CONFLICT_206=Configuration attributes \ ds-cfg-db-txn-no-sync and ds-cfg-db-txn-write-no-sync are mutually \ exclusive and cannot be both set at the same time opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
@@ -40,8 +40,10 @@ import com.sleepycat.je.DatabaseException; import com.sleepycat.je.EnvironmentConfig; import com.sleepycat.je.RunRecoveryException; import com.sleepycat.je.EnvironmentFailureException; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import org.opends.server.backends.jeb.importLDIF.*; import org.opends.server.admin.std.meta.LocalDBIndexCfgDefn; import org.opends.server.admin.std.server.MonitorProviderCfg; @@ -312,7 +314,7 @@ { EnvironmentConfig envConfig = ConfigurableEnvironment.parseConfigEntry(cfg); envConfig.setLockTimeout(0); envConfig.setLockTimeout(0, TimeUnit.MICROSECONDS); rootContainer = initializeRootContainer(envConfig); } @@ -997,7 +999,6 @@ envConfig.setReadOnly(true); envConfig.setAllowCreate(false); envConfig.setTransactional(false); envConfig.setTxnNoSync(false); envConfig.setConfigParam("je.env.isLocking", "true"); envConfig.setConfigParam("je.env.runCheckpointer", "true"); @@ -1130,7 +1131,6 @@ envConfig.setReadOnly(false); envConfig.setAllowCreate(true); envConfig.setTransactional(false); envConfig.setTxnNoSync(false); envConfig.setConfigParam(EnvironmentConfig.ENV_IS_LOCKING, "true"); envConfig.setConfigParam(EnvironmentConfig.ENV_RUN_CHECKPOINTER, "false"); envConfig.setConfigParam(EnvironmentConfig.ENV_RUN_CLEANER, "false"); @@ -1273,7 +1273,6 @@ envConfig.setReadOnly(true); envConfig.setAllowCreate(false); envConfig.setTransactional(false); envConfig.setTxnNoSync(false); envConfig.setConfigParam("je.env.isLocking", "true"); envConfig.setConfigParam("je.env.runCheckpointer", "true"); @@ -1364,7 +1363,6 @@ envConfig.setReadOnly(false); envConfig.setAllowCreate(true); envConfig.setTransactional(false); envConfig.setTxnNoSync(false); envConfig.setConfigParam(EnvironmentConfig.ENV_IS_LOCKING, "true"); envConfig.setConfigParam( EnvironmentConfig.ENV_RUN_CHECKPOINTER, "false"); @@ -1522,18 +1520,9 @@ List<Message> unacceptableReasons) { // Make sure that the logging level value is acceptable. String loggingLevel = cfg.getDBLoggingLevel(); if (! (loggingLevel.equals("OFF") || loggingLevel.equals("SEVERE") || loggingLevel.equals("WARNING") || loggingLevel.equals("INFORMATION") || loggingLevel.equals("CONFIG") || loggingLevel.equals("FINE") || loggingLevel.equals("FINER") || loggingLevel.equals("FINEST") || loggingLevel.equals("OFF"))) { try { Level.parse(cfg.getDBLoggingLevel()); } catch (Exception e) { Message message = ERR_JEB_INVALID_LOGGING_LEVEL.get( String.valueOf(cfg.getDBLoggingLevel()), String.valueOf(cfg.dn())); @@ -1665,7 +1654,6 @@ envConfig.setReadOnly(true); envConfig.setAllowCreate(false); envConfig.setTransactional(false); envConfig.setTxnNoSync(false); envConfig.setConfigParam("je.env.isLocking", "true"); envConfig.setConfigParam("je.env.runCheckpointer", "true"); @@ -1700,7 +1688,8 @@ DirectoryException createDirectoryException(DatabaseException e) { ResultCode resultCode = DirectoryServer.getServerErrorResultCode(); Message message; if (e instanceof RunRecoveryException) { if ((e instanceof EnvironmentFailureException) && !rootContainer.isValid()) { message = NOTE_BACKEND_ENVIRONMENT_UNUSABLE.get(getBackendID()); logError(message); DirectoryServer.sendAlertNotification(DirectoryServer.getInstance(), opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
@@ -26,6 +26,7 @@ */ package org.opends.server.backends.jeb; import com.sleepycat.je.Durability; import com.sleepycat.je.EnvironmentConfig; import com.sleepycat.je.dbi.MemoryBudget; @@ -370,9 +371,6 @@ registerProp("je.evictor.lruOnly", ATTR_EVICTOR_LRU_ONLY); registerProp("je.evictor.nodesPerScan", ATTR_EVICTOR_NODES_PER_SCAN); registerProp("je.log.fileMax", ATTR_DATABASE_LOG_FILE_MAX); registerProp("java.util.logging.FileHandler.on", ATTR_LOGGING_FILE_HANDLER_ON); registerProp("java.util.logging.level", ATTR_LOGGING_LEVEL); registerProp("je.checkpointer.bytesInterval", ATTR_CHECKPOINTER_BYTES_INTERVAL); registerProp("je.checkpointer.wakeupInterval", @@ -469,9 +467,20 @@ EnvironmentConfig envConfig = defaultConfig(); // Handle the attributes that do not have a JE property. envConfig.setTxnNoSync(cfg.isDBTxnNoSync()); envConfig.setTxnWriteNoSync(cfg.isDBTxnWriteNoSync()); // Durability settings. if (cfg.isDBTxnNoSync() && cfg.isDBTxnWriteNoSync()) { throw new ConfigException( ERR_CONFIG_JEB_DURABILITY_CONFLICT.get()); } if (cfg.isDBTxnNoSync()) { envConfig.setDurability(Durability.COMMIT_NO_SYNC); } if (cfg.isDBTxnWriteNoSync()) { envConfig.setDurability(Durability.COMMIT_WRITE_NO_SYNC); } // Iterate through the config attributes associated with a JE property. for (Map.Entry<String, String> mapEntry : attrMap.entrySet()) @@ -534,11 +543,6 @@ // Set JE property. try { envConfig.setConfigParam(jePropertyName, jePropertyValue); // This is a special case that JE cannot validate before // actually setting it. Validate it before it gets to JE. if (jePropertyName.equals("java.util.logging.level")) { java.util.logging.Level.parse(jePropertyValue); } // If this property shadows an existing config attribute. if (configAttrMap.containsKey(jePropertyName)) { Message message = ERR_CONFIG_JE_PROPERTY_SHADOWS_CONFIG.get( opends/src/server/org/opends/server/backends/jeb/EnvManager.java
@@ -22,7 +22,7 @@ * CDDL HEADER END * * * Copyright 2006-2008 Sun Microsystems, Inc. * Copyright 2006-2009 Sun Microsystems, Inc. */ package org.opends.server.backends.jeb; import org.opends.messages.Message; @@ -62,7 +62,7 @@ { return name.endsWith(".jdb") || name.endsWith(".del") || name.equals("je.lck"); name.startsWith("je."); } }; } opends/src/server/org/opends/server/backends/jeb/Index.java
@@ -314,7 +314,7 @@ private void deleteKey(DatabaseEntry key, ImportIDSet importIdSet, DatabaseEntry data) throws DatabaseException { OperationStatus status = read(null, key, data, LockMode.RMW); OperationStatus status = read(null, key, data, LockMode.DEFAULT); if(status == OperationStatus.SUCCESS) { newImportIDSet.clear(false); newImportIDSet.remove(data.getData(), importIdSet); @@ -337,7 +337,7 @@ private void insertKey(DatabaseEntry key, ImportIDSet importIdSet, DatabaseEntry data) throws DatabaseException { OperationStatus status = read(null, key, data, LockMode.RMW); OperationStatus status = read(null, key, data, LockMode.DEFAULT); if(status == OperationStatus.SUCCESS) { newImportIDSet.clear(false); if (newImportIDSet.merge(data.getData(), importIdSet)) opends/src/server/org/opends/server/backends/jeb/JECompressedSchema.java
@@ -52,8 +52,8 @@ import com.sleepycat.je.DatabaseConfig; import com.sleepycat.je.DatabaseEntry; import com.sleepycat.je.DatabaseException; import com.sleepycat.je.DeadlockException; import com.sleepycat.je.Environment; import com.sleepycat.je.LockConflictException; import com.sleepycat.je.LockMode; import com.sleepycat.je.OperationStatus; @@ -655,7 +655,7 @@ DirectoryServer.getServerErrorResultCode(), m); } } catch (DeadlockException de) catch (LockConflictException ce) { continue; } opends/src/server/org/opends/server/backends/jeb/RootContainer.java
@@ -637,22 +637,6 @@ } /** * Get the environment lock stats of the JE environment used in this * root container. * * @param statsConfig The configuration to use for the EnvironmentStats * object. * @return The environment status of the JE environment. * @throws DatabaseException If an error occurs while retriving the stats * object. */ public LockStats getEnvironmentLockStats(StatsConfig statsConfig) throws DatabaseException { return env.getLockStats(statsConfig); } /** * Get the environment transaction stats of the JE environment used * in this root container. * @@ -1060,4 +1044,14 @@ } return totalCleaned; } /** * Returns whether this container JE database environment is * open, valid and can be used. * * @return {@code true} if valid, or {@code false} otherwise. */ public boolean isValid() { return env.isValid(); } } opends/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java
@@ -22,7 +22,7 @@ * CDDL HEADER END * * * Copyright 2006-2008 Sun Microsystems, Inc. * Copyright 2006-2009 Sun Microsystems, Inc. */ package org.opends.server.monitors; @@ -49,7 +49,6 @@ import com.sleepycat.je.DatabaseException; import com.sleepycat.je.EnvironmentStats; import com.sleepycat.je.JEVersion; import com.sleepycat.je.LockStats; import com.sleepycat.je.StatsConfig; import com.sleepycat.je.TransactionStats; @@ -210,14 +209,12 @@ public ArrayList<Attribute> getMonitorData() { EnvironmentStats environmentStats = null; LockStats lockStats = null; TransactionStats transactionStats = null; StatsConfig statsConfig = new StatsConfig(); try { environmentStats = rootContainer.getEnvironmentStats(statsConfig); lockStats = rootContainer.getEnvironmentLockStats(statsConfig); transactionStats = rootContainer.getEnvironmentTransactionStats(statsConfig); } catch (DatabaseException e) @@ -237,7 +234,6 @@ monitorAttrs.add(Attributes.create(versionType, jeVersion)); addAttributesForStatsObject(monitorAttrs, environmentStats, "Environment"); addAttributesForStatsObject(monitorAttrs, lockStats, "Lock"); addAttributesForStatsObject(monitorAttrs, transactionStats, "Transaction"); return monitorAttrs; opends/src/server/org/opends/server/replication/server/DbHandler.java
@@ -50,7 +50,7 @@ import org.opends.server.replication.server.ReplicationDB.ReplServerDBCursor; import com.sleepycat.je.DatabaseException; import com.sleepycat.je.DeadlockException; import com.sleepycat.je.LockConflictException; /** * This class is used for managing the replicationServer database for each @@ -460,7 +460,7 @@ cursor.close(); done = true; } catch (DeadlockException e) catch (LockConflictException e) { cursor.abort(); if (tries == DEADLOCK_RETRIES) opends/src/server/org/opends/server/replication/server/DraftCNDB.java
@@ -42,7 +42,7 @@ import com.sleepycat.je.Database; import com.sleepycat.je.DatabaseEntry; import com.sleepycat.je.DatabaseException; import com.sleepycat.je.DeadlockException; import com.sleepycat.je.LockConflictException; import com.sleepycat.je.LockMode; import com.sleepycat.je.OperationStatus; import com.sleepycat.je.Transaction; @@ -126,7 +126,7 @@ txn = null; done = true; } catch (DeadlockException e) catch (LockConflictException e) { if (txn != null) txn.abort(); @@ -565,7 +565,7 @@ closeLockedCursor(cursor); cursor = null; } catch (DeadlockException e1) catch (LockConflictException e1) { // The DB documentation states that a DeadlockException // on the close method of a cursor that is aborting should opends/src/server/org/opends/server/replication/server/DraftCNDbHandler.java
@@ -49,7 +49,7 @@ import org.opends.server.types.InitializationException; import com.sleepycat.je.DatabaseException; import com.sleepycat.je.DeadlockException; import com.sleepycat.je.LockConflictException; /** * This class is used for managing the replicationServer database for each @@ -365,7 +365,7 @@ cursor.close(); done = true; } catch (DeadlockException e) catch (LockConflictException e) { cursor.abort(); if (tries == DEADLOCK_RETRIES) opends/src/server/org/opends/server/replication/server/ReplicationDB.java
@@ -42,7 +42,7 @@ import com.sleepycat.je.DatabaseEntry; import com.sleepycat.je.DatabaseException; import com.sleepycat.je.Database; import com.sleepycat.je.DeadlockException; import com.sleepycat.je.LockConflictException; import com.sleepycat.je.LockMode; import com.sleepycat.je.OperationStatus; import com.sleepycat.je.Transaction; @@ -130,7 +130,7 @@ txn = null; done = true; } catch (DeadlockException e) catch (LockConflictException e) { if (txn != null) txn.abort(); @@ -535,7 +535,7 @@ closeLockedCursor(cursor); cursor = null; } catch (DeadlockException e1) catch (LockConflictException e1) { // The DB documentation states that a DeadlockException // on the close method of a cursor that is aborting should opends/src/server/org/opends/server/replication/server/ReplicationDbEnv.java
@@ -47,6 +47,7 @@ import com.sleepycat.je.LockMode; import com.sleepycat.je.OperationStatus; import com.sleepycat.je.Transaction; import java.util.concurrent.TimeUnit; /** * This class is used to represent a Db environment that can be used @@ -89,7 +90,6 @@ envConfig.setAllowCreate(true); envConfig.setTransactional(true); envConfig.setConfigParam("je.cleaner.expunge", "true"); envConfig.setConfigParam("java.util.logging.FileHandler.on", "true"); envConfig.setConfigParam("je.cleaner.threads", "2"); envConfig.setConfigParam("je.checkpointer.highPriority", "true"); @@ -102,7 +102,7 @@ // deleted at the beginning of the Replication log, this should never // cause any deadlock. It is therefore safe to increase the TXN timeout // to 10 seconds. envConfig.setTxnTimeout(10000000); envConfig.setTxnTimeout(10, TimeUnit.SECONDS); dbEnvironment = new Environment(new File(path), envConfig); /*