opends/src/server/org/opends/server/replication/server/DataServerHandler.java
@@ -59,6 +59,10 @@ */ public class DataServerHandler extends ServerHandler { // Temporay generationId received in handshake/phase1, // and used after handshake/phase2 long tmpGenerationId; // Status of this DS (only used if this server handler represents a DS) private ServerStatus status = ServerStatus.INVALID_STATUS; @@ -409,7 +413,7 @@ public boolean processStartFromRemote(ServerStartMsg serverStartMsg) throws DirectoryException { generationId = serverStartMsg.getGenerationId(); tmpGenerationId = serverStartMsg.getGenerationId(); protocolVersion = ProtocolVersion.minWithCurrent( serverStartMsg.getVersion()); serverId = serverStartMsg.getServerId(); @@ -474,6 +478,9 @@ boolean sessionInitiatorSSLEncryption = processStartFromRemote(inServerStartMsg); // lock with no timeout lockDomain(false); localGenerationId = replicationServerDomain.getGenerationId(); oldGenerationId = localGenerationId; @@ -490,9 +497,6 @@ return; } // lock with no timeout lockDomain(false); // ReplServerStartMsg outReplServerStartMsg = null; try @@ -652,6 +656,7 @@ * (unsaved yet on disk . will be set with the 1rst change * received) */ generationId = tmpGenerationId; if (localGenerationId > 0) { if (generationId != localGenerationId) opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -1835,20 +1835,23 @@ { for (DataServerHandler handler : directoryServers.values()) { if ((notThisOne == null) || // All DSs requested ((notThisOne != null) && (handler != notThisOne))) // All except passed one if (handler.getStatus() != ServerStatus.NOT_CONNECTED_STATUS) { TopologyMsg topoMsg = createTopologyMsgForDS(handler.getServerId()); try if ((notThisOne == null) || // All DSs requested ((notThisOne != null) && (handler != notThisOne))) // All except passed one { handler.sendTopoInfo(topoMsg); } catch (IOException e) { Message message = ERR_EXCEPTION_SENDING_TOPO_INFO.get( TopologyMsg topoMsg = createTopologyMsgForDS(handler.getServerId()); try { handler.sendTopoInfo(topoMsg); } catch (IOException e) { Message message = ERR_EXCEPTION_SENDING_TOPO_INFO.get( baseDn.toString(), "directory", Short.toString(handler.getServerId()), e.getMessage()); logError(message); logError(message); } } } } @@ -1863,16 +1866,19 @@ TopologyMsg topoMsg = createTopologyMsgForRS(); for (ReplicationServerHandler handler : replicationServers.values()) { try if (handler.getStatus() != ServerStatus.NOT_CONNECTED_STATUS) { handler.sendTopoInfo(topoMsg); } catch (IOException e) { Message message = ERR_EXCEPTION_SENDING_TOPO_INFO.get( baseDn.toString(), "replication", Short.toString(handler.getServerId()), e.getMessage()); logError(message); try { handler.sendTopoInfo(topoMsg); } catch (IOException e) { Message message = ERR_EXCEPTION_SENDING_TOPO_INFO.get( baseDn.toString(), "replication", Short.toString(handler.getServerId()), e.getMessage()); logError(message); } } } } opends/src/server/org/opends/server/replication/service/ReplicationDomain.java
@@ -1938,6 +1938,16 @@ genIdMessage = new ResetGenerationIdMsg(generationIdNewValue); } broker.publish(genIdMessage); // check that at least one ReplicationServer did change its generation-id if (generationIdNewValue == null) { checkGenerationID(this.getGenerationID()); } else { checkGenerationID(generationIdNewValue); } }