Class ReplicationServer

    • Constructor Detail

      • ReplicationServer

        public ReplicationServer​(ServerContext serverContext,
                                 ReplicationServerCfg cfg,
                                 ShutdownSynchronizer shutdownSync)
                          throws ConfigException
        Creates a new Replication server using the provided configuration entry and shutdown synchronization object.
        Parameters:
        serverContext - The directory server context
        cfg - The configuration of this replication server.
        shutdownSync - Synchronization object for shutdown of combined DS/RS instances.
        Throws:
        ConfigException - When Configuration is invalid.
    • Method Detail

      • getAllInstances

        public static List<ReplicationServer> getAllInstances()
        Get the list of every replication servers instantiated in the current VM.
        Returns:
        The list of every replication servers instantiated in the current VM.
      • isEclEnabledDomain

        public boolean isEclEnabledDomain​(Dn baseDn)
        Indicates whether the provided domain is enabled for the external changelog (ECL).
        Parameters:
        baseDn - the base DN of the domain.
        Returns:
        true if the provided domain is enabled for the External Changelog (ECL).
      • getExcludedChangelogDomains

        public Set<Dn> getExcludedChangelogDomains()
        Returns the domain base DNs which are disabled for the external changelog (ECL).
        Returns:
        the domain base DNs which are disabled for the external changelog (ECL)
      • getReplicationServerDomain

        public ReplicationServerDomain getReplicationServerDomain​(Dn baseDN)
        Get the ReplicationServerDomain associated to the base DN given in parameter.
        Parameters:
        baseDN - The base DN for which the ReplicationServerDomain must be returned
        Returns:
        The ReplicationServerDomain associated to the base DN given in parameter, or null if there is no ReplicationServerDomain associated to this baseDn
      • validateCookie

        public void validateCookie​(MultiDomainServerState cookie,
                                   Set<Dn> ignoredBaseDNs)
                            throws LdapException
        Validate that provided cookie is coherent with this replication server, when ignoring the provided set of DNs.

        The cookie is coherent if and only if it exactly has the set of DNs corresponding to the replication domains, and the states in the cookie are not older than oldest states in the server.

        Parameters:
        cookie - The multi domain state (cookie) to validate.
        ignoredBaseDNs - The set of DNs to ignore when validating
        Throws:
        LdapException - If the cookie is not valid
      • getReplicationServerDomain

        public ReplicationServerDomain getReplicationServerDomain​(Dn baseDN,
                                                                  boolean create)
        Get the ReplicationServerDomain associated to the base DN given in parameter.
        Parameters:
        baseDN - The base DN for which the ReplicationServerDomain must be returned.
        create - Specifies whether to create the ReplicationServerDomain if it does not already exist.
        Returns:
        The ReplicationServerDomain associated to the base DN given in parameter, or null if there is no ReplicationServerDomain associated to this baseDn and the create parameter was false.
      • shutdown

        public void shutdown()
        Shutdown the Replication Server service and all its connections.
      • getPurgeDelay

        public Duration getPurgeDelay()
        Retrieves the time interval after which changes must be deleted from the persistent storage.
        Returns:
        The time interval after which changes must be deleted from the persistent storage.
      • isConfigurationAcceptable

        public static boolean isConfigurationAcceptable​(ReplicationServerCfg configuration,
                                                        List<LocalizableMessage> unacceptableReasons)
        Check if the provided configuration is acceptable for add.
        Parameters:
        configuration - The configuration to check.
        unacceptableReasons - When the configuration is not acceptable, this table is use to return the reasons why this configuration is not acceptable.
        Returns:
        true if the configuration is acceptable, false other wise.
      • getGenerationId

        public long getGenerationId​(Dn baseDN)
        Get the value of generationId for the replication replicationServerDomain associated with the provided baseDN.
        Parameters:
        baseDN - The baseDN of the replicationServerDomain.
        Returns:
        The value of the generationID.
      • getServerId

        public ReplicationServerId getServerId()
        Get the replication server id.
        Returns:
        The replication server id
      • remove

        public void remove()
        Do what needed when the config object related to this replication server is deleted from the server configuration.
      • getGroupId

        public GroupId getGroupId()
        Get The replication server group id. Can be default if not defined, but never null.
        Returns:
        The replication server group id.
      • getDegradedStatusThreshold

        public int getDegradedStatusThreshold()
        Get the degraded status threshold value for status analyzer.

        The degraded status threshold is the number of pending changes for a DS, considered as threshold value to put the DS in DEGRADED_STATUS. If value is 0, status analyzer is disabled.

        Returns:
        The degraded status threshold value for status analyzer.
      • getReplicationPort

        public int getReplicationPort()
        Retrieves the port used by this ReplicationServer.
        Returns:
        The port used by this ReplicationServer.
      • getHostPort

        public com.forgerock.opendj.util.HostPort getHostPort()
        Getter on the server host port.
        Returns:
        the server host port.
      • getOldestChangeNumber

        public long getOldestChangeNumber()
                                   throws LdapException
        Returns the oldest change number in the change number index DB.
        Returns:
        the oldest change number in the change number index DB
        Throws:
        LdapException - When a problem happens
      • getNewestChangeNumber

        public long getNewestChangeNumber()
                                   throws LdapException
        Returns the newest change number in the change number index DB.
        Returns:
        the newest change number in the change number index DB
        Throws:
        LdapException - When a problem happens
      • getNewestECLCookie

        public MultiDomainServerState getNewestECLCookie()
        Returns the newest cookie value.
        Returns:
        the newest cookie value.
      • diskLowThresholdReached

        public void diskLowThresholdReached​(File directory,
                                            long thresholdInBytes)
        Description copied from interface: DiskSpaceMonitorHandler
        Notifies that the registered "low" threshold have been reached.
        Specified by:
        diskLowThresholdReached in interface DiskSpaceMonitorHandler
        Parameters:
        directory - the directory for which the threshold has been triggered
        thresholdInBytes - the threshold value in bytes
      • diskFullThresholdReached

        public void diskFullThresholdReached​(File directory,
                                             long thresholdInBytes)
        Description copied from interface: DiskSpaceMonitorHandler
        Notifies that the registered "full" threshold have been reached.
        Specified by:
        diskFullThresholdReached in interface DiskSpaceMonitorHandler
        Parameters:
        directory - the directory for which the threshold has been triggered
        thresholdInBytes - the threshold value in bytes
      • diskSpaceRestored

        public void diskSpaceRestored​(File directory,
                                      long lowThresholdInBytes,
                                      long fullThresholdInBytes)
        Description copied from interface: DiskSpaceMonitorHandler
        Notifies that the free disk space is now above both "low" and "full" thresholds.
        Specified by:
        diskSpaceRestored in interface DiskSpaceMonitorHandler
        Parameters:
        directory - the directory for which the threshold has been triggeredTODO
        lowThresholdInBytes - the low threshold value in bytes
        fullThresholdInBytes - the full threshold value in bytes
      • getWeight

        public int getWeight()
        Gets the weight affected to the replication server.

        Each replication server of the topology has a weight. When combined together, the weights of the replication servers of a same group can be translated to a percentage that determines the quantity of directory servers of the topology that should be connected to a replication server.

        For instance imagine a topology with 3 replication servers (with the same group id) with the following weights: RS1=1, RS2=1, RS3=2. This means that RS1 should have 25% of the directory servers connected in the topology, RS2 25%, and RS3 50%. This may be useful if the replication servers of the topology have a different power and one wants to spread the load between the replication servers according to their power.

        Returns:
        the weight
      • getReplicationServerDomains

        public Collection<ReplicationServerDomain> getReplicationServerDomains()
        Returns the replication server domains managed by this replication server.
        Returns:
        the replication server domains managed by this replication server
      • getChangelogDB

        public ChangelogDB getChangelogDB()
        Returns the changelogDB.
        Returns:
        the changelogDB.
      • isChangeNumberEnabled

        public boolean isChangeNumberEnabled()
        Returns whether change-log indexing is enabled for this RS.
        Returns:
        true if change-log indexing is enabled for this RS.
      • isEncrypted

        public boolean isEncrypted()
        Return whether change-log records should be encrypted.
        Returns:
        true if change-log records should be encrypted
      • getName

        public String getName()
        Returns a name that can be printed to logs for this Replication Server instance.
        Returns:
        a name that can be printed to logs for this Replication Server instance.
      • getServerContext

        public ServerContext getServerContext()
        Returns the server context.
        Returns:
        the server context