| | |
| | | package org.opends.server.replication.server; |
| | | |
| | | import java.io.IOException; |
| | | import org.forgerock.i18n.slf4j.LocalizedLogger; |
| | | import java.util.*; |
| | | |
| | | import org.forgerock.i18n.LocalizableMessage; |
| | |
| | | import org.opends.server.replication.protocol.*; |
| | | import org.opends.server.types.*; |
| | | import static org.opends.messages.ReplicationMessages.*; |
| | | import static org.opends.server.loggers.ErrorLogger.*; |
| | | import static org.opends.server.replication.common.ServerStatus.*; |
| | | import static org.opends.server.replication.common.StatusMachine.*; |
| | | import static org.opends.server.replication.protocol.ProtocolVersion.*; |
| | |
| | | */ |
| | | public class DataServerHandler extends ServerHandler |
| | | { |
| | | |
| | | private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass(); |
| | | |
| | | /** |
| | | * Temporary generationId received in handshake/phase1, and used after |
| | | * handshake/phase2. |
| | |
| | | { |
| | | // Prevent useless error message (full update status cannot lead to bad |
| | | // gen status) |
| | | LocalizableMessage message = NOTE_BAD_GEN_ID_IN_FULL_UPDATE.get( |
| | | Integer.toString(replicationServer.getServerId()), |
| | | logger.info(NOTE_BAD_GEN_ID_IN_FULL_UPDATE, Integer.toString(replicationServer.getServerId()), |
| | | getBaseDNString(), |
| | | Integer.toString(serverId), |
| | | Long.toString(generationId), |
| | | Long.toString(newGenId)); |
| | | logError(message); |
| | | return; |
| | | } |
| | | |
| | |
| | | { |
| | | LocalizableMessage msg = ERR_RS_CANNOT_CHANGE_STATUS.get(getBaseDNString(), |
| | | Integer.toString(serverId), status.toString(), event.toString()); |
| | | logError(msg); |
| | | logger.error(msg); |
| | | // Only change allowed is from NORMAL_STATUS to DEGRADED_STATUS and vice |
| | | // versa. We may be trying to change the status while another status has |
| | | // just been entered: e.g a full update has just been engaged. |
| | |
| | | { |
| | | LocalizableMessage msg = ERR_RS_INVALID_NEW_STATUS.get(reqStatus.toString(), |
| | | getBaseDNString(), Integer.toString(serverId)); |
| | | logError(msg); |
| | | logger.error(msg); |
| | | return ServerStatus.INVALID_STATUS; |
| | | } |
| | | |
| | |
| | | { |
| | | LocalizableMessage msg = ERR_RS_CANNOT_CHANGE_STATUS.get(getBaseDNString(), |
| | | Integer.toString(serverId), status.toString(), event.toString()); |
| | | logError(msg); |
| | | logger.error(msg); |
| | | return ServerStatus.INVALID_STATUS; |
| | | } |
| | | |
| | |
| | | |
| | | replicationServerDomain.register(this); |
| | | |
| | | LocalizableMessage message = INFO_REPLICATION_SERVER_CONNECTION_FROM_DS |
| | | .get(getReplicationServerId(), getServerId(), |
| | | logger.debug(INFO_REPLICATION_SERVER_CONNECTION_FROM_DS, getReplicationServerId(), getServerId(), |
| | | replicationServerDomain.getBaseDN().toNormalizedString(), |
| | | session.getReadableRemoteAddress()); |
| | | logError(message); |
| | | |
| | | super.finalizeStart(); |
| | | } |
| | |
| | | { |
| | | if (generationId != localGenerationId) |
| | | { |
| | | LocalizableMessage message = WARN_BAD_GENERATION_ID_FROM_DS.get( |
| | | serverId, session.getReadableRemoteAddress(), |
| | | logger.warn(WARN_BAD_GENERATION_ID_FROM_DS, serverId, session.getReadableRemoteAddress(), |
| | | generationId, getBaseDNString(), |
| | | getReplicationServerId(), localGenerationId); |
| | | logError(message); |
| | | } |
| | | } |
| | | else |
| | |
| | | { |
| | | // If the LDAP server has already sent changes |
| | | // it is not expected to connect to an empty RS |
| | | LocalizableMessage message = WARN_BAD_GENERATION_ID_FROM_DS.get( |
| | | serverId, session.getReadableRemoteAddress(), |
| | | logger.warn(WARN_BAD_GENERATION_ID_FROM_DS, serverId, session.getReadableRemoteAddress(), |
| | | generationId, getBaseDNString(), |
| | | getReplicationServerId(), localGenerationId); |
| | | logError(message); |
| | | } |
| | | else |
| | | { |