Interface ReplicationSynchronizationProviderCfgClient

All Superinterfaces:
ConfigurationClient, SynchronizationProviderCfgClient

public interface ReplicationSynchronizationProviderCfgClient extends SynchronizationProviderCfgClient
A client-side interface for reading and modifying Replication Synchronization Provider settings.

The Replication Synchronization Provider provides multi-master replication of data across multiple directory server instances.

  • Method Details

    • definition

      Get the configuration definition associated with this Replication Synchronization Provider.
      Specified by:
      definition in interface ConfigurationClient
      Specified by:
      definition in interface SynchronizationProviderCfgClient
      Returns:
      Returns the configuration definition associated with this Replication Synchronization Provider.
    • getBootstrapReplicationServer

      SortedSet<ValueOrExpression<com.forgerock.opendj.util.HostPort>> getBootstrapReplicationServer()
      Gets the "bootstrap-replication-server" property.

      The addresses of one or more replication servers within the topology which this server should connect to in order to discover the rest of the topology.

      Addresses must be specified using the replication port of the remote replication servers using the syntax "hostname:repl-port". When using an IPv6 address as the hostname, put brackets around the address as in "[IPv6Address]:repl-port".

      Returns:
      Returns the values of the "bootstrap-replication-server" property.
    • setBootstrapReplicationServer

      void setBootstrapReplicationServer(Collection<ValueOrExpression<com.forgerock.opendj.util.HostPort>> values) throws PropertyException
      Sets the "bootstrap-replication-server" property.

      The addresses of one or more replication servers within the topology which this server should connect to in order to discover the rest of the topology.

      Addresses must be specified using the replication port of the remote replication servers using the syntax "hostname:repl-port". When using an IPv6 address as the hostname, put brackets around the address as in "[IPv6Address]:repl-port".

      Parameters:
      values - The values of the "bootstrap-replication-server" property.
      Throws:
      PropertyException - If one or more of the new values are invalid.
    • getChangetimeHeartbeatInterval

      ValueOrExpression<Long> getChangetimeHeartbeatInterval()
      Gets the "changetime-heartbeat-interval" property.

      Specifies the heartbeat interval that the directory server will use when sending its local change time to the Replication Server.

      The directory server sends a regular heartbeat to the Replication within the specified interval. The heartbeat indicates the change time of the directory server to the Replication Server.

      Default value: 1000ms

      Returns:
      Returns the value of the "changetime-heartbeat-interval" property.
    • setChangetimeHeartbeatInterval

      void setChangetimeHeartbeatInterval(ValueOrExpression<Long> value) throws PropertyException
      Sets the "changetime-heartbeat-interval" property.

      Specifies the heartbeat interval that the directory server will use when sending its local change time to the Replication Server.

      The directory server sends a regular heartbeat to the Replication within the specified interval. The heartbeat indicates the change time of the directory server to the Replication Server.

      Parameters:
      value - The value of the "changetime-heartbeat-interval" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getConnectionTimeout

      ValueOrExpression<Long> getConnectionTimeout()
      Gets the "connection-timeout" property.

      Specifies the timeout used when connecting to peers and when performing SSL negotiation.

      Default value: 5 seconds

      Returns:
      Returns the value of the "connection-timeout" property.
    • setConnectionTimeout

      void setConnectionTimeout(ValueOrExpression<Long> value) throws PropertyException
      Sets the "connection-timeout" property.

      Specifies the timeout used when connecting to peers and when performing SSL negotiation.

      Parameters:
      value - The value of the "connection-timeout" property.
      Throws:
      PropertyException - If the new value is invalid.
    • isHealthChecksEnabled

      ValueOrExpression<Boolean> isHealthChecksEnabled()
      Gets the "health-checks-enabled" property.

      Indicates whether the Replication Synchronization Providers health-checker is enabled.

      Default value: true

      Returns:
      Returns the value of the "health-checks-enabled" property.
    • setHealthChecksEnabled

      void setHealthChecksEnabled(ValueOrExpression<Boolean> value) throws PropertyException
      Sets the "health-checks-enabled" property.

      Indicates whether the Replication Synchronization Providers health-checker is enabled.

      Parameters:
      value - The value of the "health-checks-enabled" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getHeartbeatInterval

      ValueOrExpression<Long> getHeartbeatInterval()
      Gets the "heartbeat-interval" property.

      Specifies the heartbeat interval that the directory server will use when communicating with Replication Servers.

      The directory server expects a regular heartbeat coming from the Replication Server within the specified interval. If a heartbeat is not received within the interval, the Directory Server closes its connection and connects to another Replication Server.

      Default value: 1 m

      Returns:
      Returns the value of the "heartbeat-interval" property.
    • setHeartbeatInterval

      void setHeartbeatInterval(ValueOrExpression<Long> value) throws PropertyException
      Sets the "heartbeat-interval" property.

      Specifies the heartbeat interval that the directory server will use when communicating with Replication Servers.

      The directory server expects a regular heartbeat coming from the Replication Server within the specified interval. If a heartbeat is not received within the interval, the Directory Server closes its connection and connects to another Replication Server.

      Parameters:
      value - The value of the "heartbeat-interval" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getInitializationWindowSize

      ValueOrExpression<Integer> getInitializationWindowSize()
      Gets the "initialization-window-size" property.

      Specifies the window size that this directory server may use when communicating with remote Directory Servers for initialization.

      Default value: 1000

      Returns:
      Returns the value of the "initialization-window-size" property.
    • setInitializationWindowSize

      void setInitializationWindowSize(ValueOrExpression<Integer> value) throws PropertyException
      Sets the "initialization-window-size" property.

      Specifies the window size that this directory server may use when communicating with remote Directory Servers for initialization.

      Parameters:
      value - The value of the "initialization-window-size" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getIsolationPolicy

      Gets the "isolation-policy" property.

      Specifies the behavior of the directory server when writing to replicated data while none of the configured Replication Servers are available.

      Default value: reject-all-updates

      Returns:
      Returns the value of the "isolation-policy" property.
    • setIsolationPolicy

      Sets the "isolation-policy" property.

      Specifies the behavior of the directory server when writing to replicated data while none of the configured Replication Servers are available.

      Parameters:
      value - The value of the "isolation-policy" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getJavaClass

      Gets the "java-class" property.

      Specifies the fully-qualified name of the Java class that provides the Replication Synchronization Provider implementation.

      Default value: org.opends.server.replication.plugin.MultimasterReplication

      Specified by:
      getJavaClass in interface SynchronizationProviderCfgClient
      Returns:
      Returns the value of the "java-class" property.
    • setJavaClass

      Sets the "java-class" property.

      Specifies the fully-qualified name of the Java class that provides the Replication Synchronization Provider implementation.

      Specified by:
      setJavaClass in interface SynchronizationProviderCfgClient
      Parameters:
      value - The value of the "java-class" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getKeyManagerProvider

      @MandatoryProperty ValueOrExpression<String> getKeyManagerProvider()
      Gets the "key-manager-provider" property.

      Specifies the name of the key manager that should be used with this Replication Synchronization Provider.

      Default value is undefined

      Returns:
      Returns the value of the "key-manager-provider" property.
    • setKeyManagerProvider

      @MandatoryProperty void setKeyManagerProvider(ValueOrExpression<String> value) throws PropertyException
      Sets the "key-manager-provider" property.

      Specifies the name of the key manager that should be used with this Replication Synchronization Provider.

      Parameters:
      value - The value of the "key-manager-provider" property.
      Throws:
      PropertyException - If the new value is invalid.
    • isLogChangenumber

      ValueOrExpression<Boolean> isLogChangenumber()
      Gets the "log-changenumber" property.

      Indicates if this server logs the ChangeNumber in access log.

      This boolean indicates if the domain should log the ChangeNumber of replicated operations in the access log.

      Default value: false

      Returns:
      Returns the value of the "log-changenumber" property.
    • setLogChangenumber

      void setLogChangenumber(ValueOrExpression<Boolean> value) throws PropertyException
      Sets the "log-changenumber" property.

      Indicates if this server logs the ChangeNumber in access log.

      This boolean indicates if the domain should log the ChangeNumber of replicated operations in the access log.

      Parameters:
      value - The value of the "log-changenumber" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getMaxReplicationDelayHealthCheck

      ValueOrExpression<Long> getMaxReplicationDelayHealthCheck()
      Gets the "max-replication-delay-health-check" property.

      The maximum replication delay for considering the Replication Synchronization Provider healthy.

      Default value: 5s

      Returns:
      Returns the value of the "max-replication-delay-health-check" property.
    • setMaxReplicationDelayHealthCheck

      void setMaxReplicationDelayHealthCheck(ValueOrExpression<Long> value) throws PropertyException
      Sets the "max-replication-delay-health-check" property.

      The maximum replication delay for considering the Replication Synchronization Provider healthy.

      Parameters:
      value - The value of the "max-replication-delay-health-check" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getNumUpdateReplayThreads

      ValueOrExpression<Integer> getNumUpdateReplayThreads()
      Gets the "num-update-replay-threads" property.

      Specifies the number of update replay threads.

      This value is the number of threads created for replaying every updates received for all the replication domains.

      Returns:
      Returns the value of the "num-update-replay-threads" property.
    • setNumUpdateReplayThreads

      void setNumUpdateReplayThreads(ValueOrExpression<Integer> value) throws PropertyException
      Sets the "num-update-replay-threads" property.

      Specifies the number of update replay threads.

      This value is the number of threads created for replaying every updates received for all the replication domains.

      Parameters:
      value - The value of the "num-update-replay-threads" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getReferralsUrl

      SortedSet<ValueOrExpression<String>> getReferralsUrl()
      Gets the "referrals-url" property.

      The URLs other LDAP servers should use to refer to the local server.

      URLs used by peer servers in the topology to refer to the local server through LDAP referrals. If this attribute is not defined, every URLs available to access this server will be used. If defined, only URLs specified here will be used.

      Default value is undefined

      Returns:
      Returns the values of the "referrals-url" property.
    • setReferralsUrl

      void setReferralsUrl(Collection<ValueOrExpression<String>> values) throws PropertyException
      Sets the "referrals-url" property.

      The URLs other LDAP servers should use to refer to the local server.

      URLs used by peer servers in the topology to refer to the local server through LDAP referrals. If this attribute is not defined, every URLs available to access this server will be used. If defined, only URLs specified here will be used.

      Parameters:
      values - The values of the "referrals-url" property.
      Throws:
      PropertyException - If one or more of the new values are invalid.
    • getReplicationPurgeDelay

      ValueOrExpression<Long> getReplicationPurgeDelay()
      Gets the "replication-purge-delay" property.

      Minimum lifetime of changelog data and old replication meta-data in directory entries. Changelog data and replication meta-data older than this setting is eligible to be removed.

      After the purge delay has passed, the server removes old changelog data over time when it applies new updates. Replication meta-data is stored in changed directory entries. The server removes old replication meta-data either when the entry is next modified, or by a dedicated purge task, whichever happens first. The server temporarily stops removing old data when it has been unable to process updates for an extended period of time. For example, the server stops removing data when the server is offline, and when it cannot access other servers due to a network partition. Once old data is removed, the server can no longer use it for replication. Changelog and replication meta-data older than the purge delay must therefore be considered stale. Backups must be newer than the purge delay, including the time it takes to restore a backup.

      Default value: 3 days

      Returns:
      Returns the value of the "replication-purge-delay" property.
    • setReplicationPurgeDelay

      void setReplicationPurgeDelay(ValueOrExpression<Long> value) throws PropertyException
      Sets the "replication-purge-delay" property.

      Minimum lifetime of changelog data and old replication meta-data in directory entries. Changelog data and replication meta-data older than this setting is eligible to be removed.

      After the purge delay has passed, the server removes old changelog data over time when it applies new updates. Replication meta-data is stored in changed directory entries. The server removes old replication meta-data either when the entry is next modified, or by a dedicated purge task, whichever happens first. The server temporarily stops removing old data when it has been unable to process updates for an extended period of time. For example, the server stops removing data when the server is offline, and when it cannot access other servers due to a network partition. Once old data is removed, the server can no longer use it for replication. Changelog and replication meta-data older than the purge delay must therefore be considered stale. Backups must be newer than the purge delay, including the time it takes to restore a backup.

      Parameters:
      value - The value of the "replication-purge-delay" property.
      Throws:
      PropertyException - If the new value is invalid.
    • isSolveConflicts

      ValueOrExpression<Boolean> isSolveConflicts()
      Gets the "solve-conflicts" property.

      Indicates if this server solves conflict.

      This boolean indicates if this domain keeps the historical meta-data necessary to solve conflicts. When set to false the server will not maintain historical meta-data and will therefore not be able to solve conflict. This should therefore be done only if the replication is used in a single master type of deployment.

      Default value: true

      Returns:
      Returns the value of the "solve-conflicts" property.
    • setSolveConflicts

      void setSolveConflicts(ValueOrExpression<Boolean> value) throws PropertyException
      Sets the "solve-conflicts" property.

      Indicates if this server solves conflict.

      This boolean indicates if this domain keeps the historical meta-data necessary to solve conflicts. When set to false the server will not maintain historical meta-data and will therefore not be able to solve conflict. This should therefore be done only if the replication is used in a single master type of deployment.

      Parameters:
      value - The value of the "solve-conflicts" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getSourceAddress

      ValueOrExpression<com.forgerock.opendj.util.Host> getSourceAddress()
      Gets the "source-address" property.

      If specified, the server will bind to the address before connecting to the remote server.

      The address must be one assigned to an existing network interface.

      Returns:
      Returns the value of the "source-address" property.
    • setSourceAddress

      void setSourceAddress(ValueOrExpression<com.forgerock.opendj.util.Host> value) throws PropertyException
      Sets the "source-address" property.

      If specified, the server will bind to the address before connecting to the remote server.

      The address must be one assigned to an existing network interface.

      Parameters:
      value - The value of the "source-address" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getSslCertNickname

      SortedSet<ValueOrExpression<String>> getSslCertNickname()
      Gets the "ssl-cert-nickname" property.

      Specifies the nicknames (also called the aliases) of the keys or key pairs that the Replication Synchronization Provider should use when performing SSL communication.

      The property can be used multiple times (referencing different nicknames) when server certificates with different public key algorithms are used in parallel (for example, RSA, DSA, and ECC-based algorithms). When a nickname refers to an asymmetric (public/private) key pair, the nickname for the public key certificate and associated private key entry must match exactly. A single nickname is used to retrieve both the public key and the private key. This is only applicable when the Replication Synchronization Provider is configured to use SSL.

      Returns:
      Returns the values of the "ssl-cert-nickname" property.
    • setSslCertNickname

      void setSslCertNickname(Collection<ValueOrExpression<String>> values) throws PropertyException
      Sets the "ssl-cert-nickname" property.

      Specifies the nicknames (also called the aliases) of the keys or key pairs that the Replication Synchronization Provider should use when performing SSL communication.

      The property can be used multiple times (referencing different nicknames) when server certificates with different public key algorithms are used in parallel (for example, RSA, DSA, and ECC-based algorithms). When a nickname refers to an asymmetric (public/private) key pair, the nickname for the public key certificate and associated private key entry must match exactly. A single nickname is used to retrieve both the public key and the private key. This is only applicable when the Replication Synchronization Provider is configured to use SSL.

      Parameters:
      values - The values of the "ssl-cert-nickname" property.
      Throws:
      PropertyException - If one or more of the new values are invalid.
    • getSslCipherSuite

      SortedSet<ValueOrExpression<String>> getSslCipherSuite()
      Gets the "ssl-cipher-suite" property.

      Specifies the names of the SSL cipher suites that are allowed for use in SSL or TLS communication.

      Returns:
      Returns the values of the "ssl-cipher-suite" property.
    • setSslCipherSuite

      void setSslCipherSuite(Collection<ValueOrExpression<String>> values) throws PropertyException
      Sets the "ssl-cipher-suite" property.

      Specifies the names of the SSL cipher suites that are allowed for use in SSL or TLS communication.

      Parameters:
      values - The values of the "ssl-cipher-suite" property.
      Throws:
      PropertyException - If one or more of the new values are invalid.
    • isSslEncryption

      ValueOrExpression<Boolean> isSslEncryption()
      Gets the "ssl-encryption" property.

      Specifies whether SSL/TLS is used to provide encrypted communication between two OpenDJ server components.

      Default value: true

      Returns:
      Returns the value of the "ssl-encryption" property.
    • setSslEncryption

      void setSslEncryption(ValueOrExpression<Boolean> value) throws PropertyException
      Sets the "ssl-encryption" property.

      Specifies whether SSL/TLS is used to provide encrypted communication between two OpenDJ server components.

      Parameters:
      value - The value of the "ssl-encryption" property.
      Throws:
      PropertyException - If the new value is invalid.
    • getSslProtocol

      SortedSet<ValueOrExpression<String>> getSslProtocol()
      Gets the "ssl-protocol" property.

      Specifies the names of the SSL protocols that are allowed for use in SSL or TLS communication.

      Returns:
      Returns the values of the "ssl-protocol" property.
    • setSslProtocol

      void setSslProtocol(Collection<ValueOrExpression<String>> values) throws PropertyException
      Sets the "ssl-protocol" property.

      Specifies the names of the SSL protocols that are allowed for use in SSL or TLS communication.

      Parameters:
      values - The values of the "ssl-protocol" property.
      Throws:
      PropertyException - If one or more of the new values are invalid.
    • getTrustManagerProvider

      Gets the "trust-manager-provider" property.

      Specifies the name of the trust manager that should be used with the Replication Synchronization Provider .

      Default value is undefined

      Returns:
      Returns the values of the "trust-manager-provider" property.
    • setTrustManagerProvider

      @MandatoryProperty void setTrustManagerProvider(Collection<ValueOrExpression<String>> values) throws PropertyException
      Sets the "trust-manager-provider" property.

      Specifies the name of the trust manager that should be used with the Replication Synchronization Provider .

      Parameters:
      values - The values of the "trust-manager-provider" property.
      Throws:
      PropertyException - If one or more of the new values are invalid.
    • listReplicationDomains

      String[] listReplicationDomains() throws ConcurrentModificationException, LdapException
      Lists the Replication Domains.
      Returns:
      Returns an array containing the names of the Replication Domains.
      Throws:
      ConcurrentModificationException - If this Replication Synchronization Provider has been removed from the server by another client.
      LdapException - If any other error occurs.
    • getReplicationDomain

      Gets the named Replication Domain.
      Parameters:
      name - The name of the Replication Domain to retrieve.
      Returns:
      Returns the named Replication Domain.
      Throws:
      DefinitionDecodingException - If the named Replication Domain was found but its type could not be determined.
      ManagedObjectDecodingException - If the named Replication Domain was found but one or more of its properties could not be decoded.
      ManagedObjectNotFoundException - If the named Replication Domain was not found on the server.
      ConcurrentModificationException - If this Replication Synchronization Provider has been removed from the server by another client.
      LdapException - If any other error occurs.
    • createReplicationDomain

      <C extends ReplicationDomainCfgClient> C createReplicationDomain(ManagedObjectDefinition<C,? extends ReplicationDomainCfg> d, String name, Collection<PropertyException> exceptions) throws IllegalManagedObjectNameException
      Creates a new Replication Domain. The new Replication Domain will initially not contain any property values (including mandatory properties). Once the Replication Domain has been configured it can be added to the server using the ConfigurationClient.commit() method.
      Type Parameters:
      C - The type of the Replication Domain being created.
      Parameters:
      d - The definition of the Replication Domain to be created.
      name - The name of the new Replication Domain.
      exceptions - An optional collection in which to place any PropertyExceptions that occurred whilst attempting to determine the default values of the Replication Domain. This argument can be null.
      Returns:
      Returns a new Replication Domain configuration instance.
      Throws:
      IllegalManagedObjectNameException - If the name of the new Replication Domain is invalid.
    • removeReplicationDomain

      Removes the named Replication Domain.
      Parameters:
      name - The name of the Replication Domain to remove.
      Throws:
      ManagedObjectNotFoundException - If the Replication Domain does not exist.
      OperationRejectedException - If the server refuses to remove the Replication Domain due to some server-side constraint which cannot be satisfied (for example, if it is referenced by another managed object).
      ConcurrentModificationException - If this Replication Synchronization Provider has been removed from the server by another client.
      LdapException - If any other error occurs.
    • hasReplicationServer

      boolean hasReplicationServer() throws ConcurrentModificationException, LdapException
      Determines whether the Replication Server exists.
      Returns:
      Returns true if the Replication Server exists.
      Throws:
      ConcurrentModificationException - If this Replication Synchronization Provider has been removed from the server by another client.
      LdapException - If any other error occurs.
    • getReplicationServer

      Gets the Replication Server if it is present.
      Returns:
      Returns the Replication Server if it is present.
      Throws:
      DefinitionDecodingException - If the Replication Server was found but its type could not be determined.
      ManagedObjectDecodingException - If the Replication Server was found but one or more of its properties could not be decoded.
      ManagedObjectNotFoundException - If the Replication Server is not present.
      ConcurrentModificationException - If this Replication Synchronization Provider has been removed from the server by another client.
      LdapException - If any other error occurs.
    • createReplicationServer

      <C extends ReplicationServerCfgClient> C createReplicationServer(ManagedObjectDefinition<C,? extends ReplicationServerCfg> d, Collection<PropertyException> exceptions)
      Creates a new Replication Server. The new Replication Server will initially not contain any property values (including mandatory properties). Once the Replication Server has been configured it can be added to the server using the ConfigurationClient.commit() method.
      Type Parameters:
      C - The type of the Replication Server being created.
      Parameters:
      d - The definition of the Replication Server to be created.
      exceptions - An optional collection in which to place any PropertyExceptions that occurred whilst attempting to determine the default values of the Replication Server. This argument can be null.
      Returns:
      Returns a new Replication Server configuration instance.
    • removeReplicationServer

      Removes the Replication Server if it exists.
      Throws:
      ManagedObjectNotFoundException - If the Replication Server does not exist.
      OperationRejectedException - If the server refuses to remove the Replication Server due to some server-side constraint which cannot be satisfied (for example, if it is referenced by another managed object).
      ConcurrentModificationException - If this Replication Synchronization Provider has been removed from the server by another client.
      LdapException - If any other error occurs.