| | |
| | | "In RS " + |
| | | replicationServerDomain.getReplicationServer().getServerId() + |
| | | ". Closing connection to DS " + getServerId() + |
| | | " for baseDn " + getServiceId() + |
| | | " for baseDn " + getBaseDN() + |
| | | " to force reconnection as new local" + |
| | | " generationId and remote one match and DS is in bad gen id: " + |
| | | newGenId); |
| | |
| | | TRACER.debugInfo( |
| | | "In RS " + |
| | | replicationServerDomain.getReplicationServer().getServerId() + |
| | | ". DS " + getServerId() + " for baseDn " + getServiceId() + |
| | | ". DS " + getServerId() + " for baseDn " + getBaseDN() + |
| | | " has already generation id " + newGenId + |
| | | " so no ChangeStatusMsg sent to him."); |
| | | } |
| | |
| | | Message message = NOTE_BAD_GEN_ID_IN_FULL_UPDATE.get( |
| | | Integer.toString(replicationServerDomain. |
| | | getReplicationServer().getServerId()), |
| | | getServiceId(), |
| | | getBaseDN(), |
| | | Integer.toString(serverId), |
| | | Long.toString(generationId), |
| | | Long.toString(newGenId)); |
| | |
| | | |
| | | if (newStatus == ServerStatus.INVALID_STATUS) |
| | | { |
| | | Message msg = ERR_RS_CANNOT_CHANGE_STATUS.get(getServiceId(), |
| | | Message msg = ERR_RS_CANNOT_CHANGE_STATUS.get(getBaseDN(), |
| | | Integer.toString(serverId), status.toString(), event.toString()); |
| | | logError(msg); |
| | | return; |
| | |
| | | "In RS " + |
| | | replicationServerDomain.getReplicationServer().getServerId() + |
| | | " Sending change status for reset gen id to " + getServerId() + |
| | | " for baseDn " + getServiceId() + ":\n" + csMsg); |
| | | " for baseDn " + getBaseDN() + ":\n" + csMsg); |
| | | } |
| | | |
| | | session.publish(csMsg); |
| | |
| | | ServerStatus newStatus = StatusMachine.computeNewStatus(status, event); |
| | | if (newStatus == ServerStatus.INVALID_STATUS) |
| | | { |
| | | Message msg = ERR_RS_CANNOT_CHANGE_STATUS.get(getServiceId(), |
| | | Message msg = ERR_RS_CANNOT_CHANGE_STATUS.get(getBaseDN(), |
| | | Integer.toString(serverId), status.toString(), event.toString()); |
| | | logError(msg); |
| | | // Status analyzer must only change from NORMAL_STATUS to DEGRADED_STATUS |
| | |
| | | "In RS " + |
| | | replicationServerDomain.getReplicationServer().getServerId() + |
| | | " Sending change status from status analyzer to " + getServerId() + |
| | | " for baseDn " + getServiceId() + ":\n" + csMsg); |
| | | " for baseDn " + getBaseDN() + ":\n" + csMsg); |
| | | } |
| | | |
| | | session.publish(csMsg); |
| | |
| | | if (event == StatusMachineEvent.INVALID_EVENT) |
| | | { |
| | | Message msg = ERR_RS_INVALID_NEW_STATUS.get(reqStatus.toString(), |
| | | getServiceId(), Integer.toString(serverId)); |
| | | getBaseDN(), Integer.toString(serverId)); |
| | | logError(msg); |
| | | return ServerStatus.INVALID_STATUS; |
| | | } |
| | |
| | | ServerStatus newStatus = StatusMachine.computeNewStatus(status, event); |
| | | if (newStatus == ServerStatus.INVALID_STATUS) |
| | | { |
| | | Message msg = ERR_RS_CANNOT_CHANGE_STATUS.get(getServiceId(), |
| | | Message msg = ERR_RS_CANNOT_CHANGE_STATUS.get(getBaseDN(), |
| | | Integer.toString(serverId), status.toString(), event.toString()); |
| | | logError(msg); |
| | | return ServerStatus.INVALID_STATUS; |
| | |
| | | heartbeatInterval = serverStartMsg.getHeartbeatInterval(); |
| | | |
| | | // generic stuff |
| | | setServiceIdAndDomain(serverStartMsg.getBaseDn(), true); |
| | | setBaseDNAndDomain(serverStartMsg.getBaseDn(), true); |
| | | setInitialServerState(serverStartMsg.getServerState()); |
| | | setSendWindowSize(serverStartMsg.getWindowSize()); |
| | | |
| | |
| | | { |
| | | // Peer DS uses protocol < V4 : send it a ReplServerStartMsg |
| | | startMsg = new ReplServerStartMsg(replicationServerId, |
| | | replicationServerURL, getServiceId(), maxRcvWindow, |
| | | replicationServerURL, getBaseDN(), maxRcvWindow, |
| | | replicationServerDomain.getDbServerState(), |
| | | localGenerationId, sslEncryption, getLocalGroupId(), |
| | | replicationServerDomain.getReplicationServer() |
| | |
| | | { |
| | | // Peer DS uses protocol V4 : send it a ReplServerStartDSMsg |
| | | startMsg = new ReplServerStartDSMsg(replicationServerId, |
| | | replicationServerURL, getServiceId(), maxRcvWindow, |
| | | replicationServerURL, getBaseDN(), maxRcvWindow, |
| | | replicationServerDomain.getDbServerState(), |
| | | localGenerationId, sslEncryption, getLocalGroupId(), |
| | | replicationServerDomain.getReplicationServer() |
| | |
| | | { |
| | | Message message = ERR_RS_INVALID_INIT_STATUS.get( |
| | | this.status.toString(), |
| | | getServiceId(), |
| | | getBaseDN(), |
| | | Integer.toString(serverId)); |
| | | throw new DirectoryException(ResultCode.OTHER, message); |
| | | } |
| | |
| | | { |
| | | Message message = WARN_BAD_GENERATION_ID_FROM_DS.get( |
| | | serverId, session.getReadableRemoteAddress(), |
| | | generationId, getServiceId(), |
| | | generationId, getBaseDN(), |
| | | getReplicationServerId(), localGenerationId); |
| | | logError(message); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | // We are an empty Replicationserver |
| | | // We are an empty ReplicationServer |
| | | if ((generationId > 0) && (!getServerState().isEmpty())) |
| | | { |
| | | // If the LDAP server has already sent changes |
| | | // it is not expected to connect to an empty RS |
| | | Message message = WARN_BAD_GENERATION_ID_FROM_DS.get( |
| | | serverId, session.getReadableRemoteAddress(), |
| | | generationId, getServiceId(), |
| | | generationId, getBaseDN(), |
| | | getReplicationServerId(), localGenerationId); |
| | | logError(message); |
| | | } |