opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -42,6 +42,8 @@ import org.opends.server.replication.common.ServerStatus; import org.opends.server.replication.protocol.*; import org.opends.server.replication.server.changelog.api.ChangelogException; import org.opends.server.replication.server.changelog.je.DraftCNDbHandler; import org.opends.server.replication.server.changelog.je.DraftCNDbIterator; import org.opends.server.types.*; import org.opends.server.util.ServerConstants; opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -53,6 +53,9 @@ import org.opends.server.replication.plugin.MultimasterReplication; import org.opends.server.replication.protocol.*; import org.opends.server.replication.server.changelog.api.ChangelogException; import org.opends.server.replication.server.changelog.je.DbHandler; import org.opends.server.replication.server.changelog.je.DraftCNDbHandler; import org.opends.server.replication.server.changelog.je.ReplicationDbEnv; import org.opends.server.types.*; import org.opends.server.util.LDIFReader; import org.opends.server.util.ServerConstants; @@ -484,8 +487,8 @@ boolean sslEncryption =replSessionSecurity.isSslEncryption(remoteServerURL); if (debugEnabled()) TRACER.debugInfo("RS " + this.getMonitorInstanceName() + " connects to " + remoteServerURL); TRACER.debugInfo("RS " + getMonitorInstanceName() + " connects to " + remoteServerURL); Socket socket = new Socket(); Session session = null; @@ -937,7 +940,7 @@ * @return The time after which changes must be deleted from the * persistent storage (in milliseconds). */ long getTrimAge() public long getTrimAge() { return purgeDelay * 1000; } @@ -1190,8 +1193,7 @@ */ public long getGenerationId(String baseDN) { ReplicationServerDomain rsd = this.getReplicationServerDomain(baseDN, false); ReplicationServerDomain rsd = getReplicationServerDomain(baseDN, false); if (rsd!=null) return rsd.getGenerationId(); return -1; @@ -1682,8 +1684,7 @@ * @throws DirectoryException * when needed. */ public DraftCNDbHandler getDraftCNDbHandler() throws DirectoryException public DraftCNDbHandler getDraftCNDbHandler() throws DirectoryException { synchronized (draftCNLock) { @@ -1786,7 +1787,7 @@ int lastDraftCN; Boolean dbEmpty = false; Long newestDate = 0L; DraftCNDbHandler draftCNDbH = this.getDraftCNDbHandler(); DraftCNDbHandler draftCNDbH = getDraftCNDbHandler(); // Get the first DraftCN from the DraftCNdb int firstDraftCN = draftCNDbH.getFirstKey(); @@ -1923,27 +1924,6 @@ } } /** * Shuts down replication when an unexpected database exception occurs. Note * that we do not expect lock timeouts or txn timeouts because the replication * databases are deadlock free, thus all operations should complete * eventually. * * @param e * The unexpected database exception. */ void handleUnexpectedChangelogException(ChangelogException e) { MessageBuilder mb = new MessageBuilder(); mb.append(ERR_CHANGELOG_SHUTDOWN_DATABASE_ERROR.get()); mb.append(". "); mb.append(stackTraceToSingleLineString(e)); logError(mb.toMessage()); shutdown(); } /** * Get the replication server DB directory. * This is useful for tests to be able to do some cleanup. Might even be opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -48,6 +48,7 @@ import org.opends.server.replication.protocol.*; import org.opends.server.replication.server.changelog.api.ChangelogException; import org.opends.server.replication.server.changelog.api.ReplicationIterator; import org.opends.server.replication.server.changelog.je.DbHandler; import org.opends.server.types.*; import org.opends.server.util.TimeThread; opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java
File was renamed from opends/src/server/org/opends/server/replication/server/DbHandler.java @@ -25,7 +25,7 @@ * Copyright 2006-2010 Sun Microsystems, Inc. * Portions copyright 2011-2013 ForgeRock AS */ package org.opends.server.replication.server; package org.opends.server.replication.server.changelog.je; import java.util.ArrayList; import java.util.Date; @@ -40,9 +40,11 @@ import org.opends.server.core.DirectoryServer; import org.opends.server.replication.common.ChangeNumber; import org.opends.server.replication.protocol.UpdateMsg; import org.opends.server.replication.server.ReplicationDB.ReplServerDBCursor; import org.opends.server.replication.server.ReplicationServer; import org.opends.server.replication.server.ReplicationServerDomain; import org.opends.server.replication.server.changelog.api.ChangelogException; import org.opends.server.replication.server.changelog.api.ReplicationIterator; import org.opends.server.replication.server.changelog.je.ReplicationDB.ReplServerDBCursor; import org.opends.server.types.Attribute; import org.opends.server.types.Attributes; import org.opends.server.types.InitializationException; opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
File was renamed from opends/src/server/org/opends/server/replication/server/DraftCNDB.java @@ -25,7 +25,7 @@ * Copyright 2009 Sun Microsystems, Inc. * Portions Copyright 2011-2013 ForgeRock AS */ package org.opends.server.replication.server; package org.opends.server.replication.server.changelog.je; import java.io.Closeable; import java.util.concurrent.locks.ReadWriteLock; @@ -35,6 +35,7 @@ import org.opends.messages.MessageBuilder; import org.opends.server.loggers.debug.DebugTracer; import org.opends.server.replication.common.ChangeNumber; import org.opends.server.replication.server.ReplicationServer; import org.opends.server.replication.server.changelog.api.ChangelogException; import org.opends.server.types.DebugLogLevel; @@ -127,11 +128,11 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); } catch (ChangelogException e) { replicationServer.handleUnexpectedChangelogException(e); dbenv.shutdownOnException(e); } } @@ -255,7 +256,7 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); return 0; } } @@ -323,17 +324,11 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); return 0; } } private void handleUnexpectedDatabaseException(DatabaseException e) { ChangelogException ex = new ChangelogException(e); replicationServer.handleUnexpectedChangelogException(ex); } /** * {@inheritDoc} */ @@ -514,7 +509,7 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); } } } @@ -547,7 +542,7 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); } } } opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
File was renamed from opends/src/server/org/opends/server/replication/server/DraftCNData.java @@ -25,7 +25,7 @@ * Copyright 2009 Sun Microsystems, Inc. * Portions Copyright 2010-2013 ForgeRock AS. */ package org.opends.server.replication.server; package org.opends.server.replication.server.changelog.je; import java.io.UnsupportedEncodingException; opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
File was renamed from opends/src/server/org/opends/server/replication/server/DraftCNDbHandler.java @@ -25,7 +25,7 @@ * Copyright 2009-2010 Sun Microsystems, Inc. * Portions Copyright 2011-2013 ForgeRock AS */ package org.opends.server.replication.server; package org.opends.server.replication.server.changelog.je; import java.util.ArrayList; import java.util.List; @@ -42,8 +42,10 @@ import org.opends.server.replication.common.ChangeNumber; import org.opends.server.replication.common.MultiDomainServerState; import org.opends.server.replication.common.ServerState; import org.opends.server.replication.server.DraftCNDB.DraftCNDBCursor; import org.opends.server.replication.server.ReplicationServer; import org.opends.server.replication.server.ReplicationServerDomain; import org.opends.server.replication.server.changelog.api.ChangelogException; import org.opends.server.replication.server.changelog.je.DraftCNDB.DraftCNDBCursor; import org.opends.server.types.Attribute; import org.opends.server.types.Attributes; import org.opends.server.types.InitializationException; opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbIterator.java
File was renamed from opends/src/server/org/opends/server/replication/server/DraftCNDbIterator.java @@ -25,13 +25,13 @@ * Copyright 2009 Sun Microsystems, Inc. * Portions Copyright 2011-2013 ForgeRock AS */ package org.opends.server.replication.server; package org.opends.server.replication.server.changelog.je; import org.opends.messages.Message; import org.opends.server.loggers.debug.DebugTracer; import org.opends.server.replication.common.ChangeNumber; import org.opends.server.replication.server.DraftCNDB.DraftCNDBCursor; import org.opends.server.replication.server.changelog.api.ChangelogException; import org.opends.server.replication.server.changelog.je.DraftCNDB.DraftCNDBCursor; import org.opends.server.types.DebugLogLevel; import static org.opends.server.loggers.debug.DebugLogger.*; opends/src/server/org/opends/server/replication/server/changelog/je/JEReplicationIterator.java
File was renamed from opends/src/server/org/opends/server/replication/server/JEReplicationIterator.java @@ -25,14 +25,14 @@ * Copyright 2006-2009 Sun Microsystems, Inc. * Portions Copyright 2011-2013 ForgeRock AS */ package org.opends.server.replication.server; package org.opends.server.replication.server.changelog.je; import org.opends.messages.Message; import org.opends.server.replication.common.ChangeNumber; import org.opends.server.replication.protocol.UpdateMsg; import org.opends.server.replication.server.ReplicationDB.ReplServerDBCursor; import org.opends.server.replication.server.changelog.api.ChangelogException; import org.opends.server.replication.server.changelog.api.ReplicationIterator; import org.opends.server.replication.server.changelog.je.ReplicationDB.ReplServerDBCursor; /** * Berkeley DB JE implementation of IReplicationIterator. opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
File was renamed from opends/src/server/org/opends/server/replication/server/ReplicationDB.java @@ -25,7 +25,7 @@ * Copyright 2006-2010 Sun Microsystems, Inc. * Portions Copyright 2011-2013 ForgeRock AS */ package org.opends.server.replication.server; package org.opends.server.replication.server.changelog.je; import java.io.Closeable; import java.io.UnsupportedEncodingException; @@ -37,6 +37,8 @@ import org.opends.messages.MessageBuilder; import org.opends.server.replication.common.ChangeNumber; import org.opends.server.replication.protocol.UpdateMsg; import org.opends.server.replication.server.ReplicationServer; import org.opends.server.replication.server.ReplicationServerDomain; import org.opends.server.replication.server.changelog.api.ChangelogException; import org.opends.server.util.StaticUtils; @@ -212,7 +214,7 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); } finally { @@ -220,12 +222,6 @@ } } private void handleUnexpectedDatabaseException(DatabaseException e) { ChangelogException ex = new ChangelogException(e); replicationServer.handleUnexpectedChangelogException(ex); } private void insertCounterRecordIfNeeded(ChangeNumber changeNumber) throws DatabaseException { @@ -373,7 +369,7 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); return null; } finally @@ -432,7 +428,7 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); return null; } finally @@ -493,7 +489,7 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); } finally { @@ -717,7 +713,7 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); } } } @@ -750,7 +746,7 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); } } } @@ -956,7 +952,7 @@ } catch (DatabaseException e) { handleUnexpectedDatabaseException(e); dbenv.shutdownOnException(e); } finally { opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationData.java
File was renamed from opends/src/server/org/opends/server/replication/server/ReplicationData.java @@ -25,7 +25,7 @@ * Copyright 2006-2009 Sun Microsystems, Inc. * Portions Copyright 2010-2011 ForgeRock AS. */ package org.opends.server.replication.server; package org.opends.server.replication.server.changelog.je; import java.io.UnsupportedEncodingException; opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
File was renamed from opends/src/server/org/opends/server/replication/server/ReplicationDbEnv.java @@ -25,7 +25,7 @@ * Copyright 2006-2009 Sun Microsystems, Inc. * Portions Copyright 2011-2013 ForgeRock AS */ package org.opends.server.replication.server; package org.opends.server.replication.server.changelog.je; import java.io.File; import java.io.UnsupportedEncodingException; @@ -34,6 +34,7 @@ import org.opends.messages.Message; import org.opends.messages.MessageBuilder; import org.opends.server.loggers.debug.DebugTracer; import org.opends.server.replication.server.ReplicationServer; import org.opends.server.replication.server.changelog.api.ChangelogException; import com.sleepycat.je.*; @@ -567,4 +568,43 @@ throw new ChangelogException(e); } } /** * Shuts down replication when an unexpected database exception occurs. Note * that we do not expect lock timeouts or txn timeouts because the replication * databases are deadlock free, thus all operations should complete * eventually. * * @param e * The unexpected database exception. */ void shutdownOnException(DatabaseException e) { innerShutdownOnException(e); } /** * Shuts down replication when an unexpected changelog exception occurs. Note * that we do not expect lock timeouts or txn timeouts because the replication * databases are deadlock free, thus all operations should complete * eventually. * * @param e * The unexpected changelog exception. */ void shutdownOnException(ChangelogException e) { innerShutdownOnException(e); } private void innerShutdownOnException(Exception e) { MessageBuilder mb = new MessageBuilder(); mb.append(ERR_CHANGELOG_SHUTDOWN_DATABASE_ERROR.get()); mb.append(". "); mb.append(stackTraceToSingleLineString(e)); logError(mb.toMessage()); replicationServer.shutdown(); } } opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDraftCNKey.java
File was renamed from opends/src/server/org/opends/server/replication/server/ReplicationDraftCNKey.java @@ -25,7 +25,7 @@ * Copyright 2009 Sun Microsystems, Inc. * Portions Copyright 2010-2013 ForgeRock AS. */ package org.opends.server.replication.server; package org.opends.server.replication.server.changelog.je; import java.io.UnsupportedEncodingException; opends/src/server/org/opends/server/replication/server/changelog/je/package-info.java
New file @@ -0,0 +1,34 @@ /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at * trunk/opends/resource/legal-notices/OpenDS.LICENSE * or https://OpenDS.dev.java.net/OpenDS.LICENSE. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, * add the following below this CDDL HEADER, with the fields enclosed * by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Portions Copyright 2013 ForgeRock AS */ /** * This package contains the Berkeley DB JE implementation for the changelog * database API. */ @org.opends.server.types.PublicAPI( stability = org.opends.server.types.StabilityLevel.PRIVATE) package org.opends.server.replication.server.changelog.je; opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
@@ -53,10 +53,10 @@ import org.opends.server.replication.plugin.LDAPReplicationDomain; import org.opends.server.replication.plugin.MultimasterReplication; import org.opends.server.replication.protocol.*; import org.opends.server.replication.server.DraftCNDbHandler; import org.opends.server.replication.server.ReplServerFakeConfiguration; import org.opends.server.replication.server.ReplicationServer; import org.opends.server.replication.server.ReplicationServerDomain; import org.opends.server.replication.server.changelog.je.DraftCNDbHandler; import org.opends.server.replication.service.ReplicationBroker; import org.opends.server.tools.LDAPSearch; import org.opends.server.tools.LDAPWriter; opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java
File was renamed from opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DbHandlerTest.java @@ -25,11 +25,7 @@ * Copyright 2006-2010 Sun Microsystems, Inc. * Portions Copyright 2011-2013 ForgeRock AS */ package org.opends.server.replication.server; import static org.opends.server.TestCaseUtils.*; import static org.opends.server.loggers.debug.DebugLogger.*; import static org.testng.Assert.*; package org.opends.server.replication.server.changelog.je; import java.io.File; import java.io.IOException; @@ -42,9 +38,15 @@ import org.opends.server.replication.common.ChangeNumber; import org.opends.server.replication.common.ChangeNumberGenerator; import org.opends.server.replication.protocol.DeleteMsg; import org.opends.server.replication.server.ReplServerFakeConfiguration; import org.opends.server.replication.server.ReplicationServer; import org.opends.server.replication.server.changelog.api.ReplicationIterator; import org.testng.annotations.Test; import static org.opends.server.TestCaseUtils.*; import static org.opends.server.loggers.debug.DebugLogger.*; import static org.testng.Assert.*; /** * Test the dbHandler class */ opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandlerTest.java
File was renamed from opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DraftCNDbHandlerTest.java @@ -25,7 +25,7 @@ * Copyright 2009-2010 Sun Microsystems, Inc. * Portions Copyright 2011-2013 ForgeRock AS */ package org.opends.server.replication.server; package org.opends.server.replication.server.changelog.je; import static org.testng.Assert.*; @@ -35,7 +35,12 @@ import org.opends.server.replication.ReplicationTestCase; import org.opends.server.replication.common.ChangeNumber; import org.opends.server.replication.common.ChangeNumberGenerator; import org.opends.server.replication.server.DraftCNDB.DraftCNDBCursor; import org.opends.server.replication.server.ReplServerFakeConfiguration; import org.opends.server.replication.server.ReplicationServer; import org.opends.server.replication.server.changelog.je.DraftCNDbHandler; import org.opends.server.replication.server.changelog.je.DraftCNDbIterator; import org.opends.server.replication.server.changelog.je.ReplicationDbEnv; import org.opends.server.replication.server.changelog.je.DraftCNDB.DraftCNDBCursor; import org.testng.annotations.Test; /**