Class Topology
- java.lang.Object
-
- org.opends.server.replication.common.Topology
-
public final class Topology extends Object
Represents the topology of servers this local server is participating in.A server may be a DS, a RS or a DS/RS.
If the topology contains servers with version 6.5 or lower, there can be multiple entries for the same server because there are multiple server ids per server.
The topology is updated with information from the local server and with information provided by the
TopologyMsgreceived. A server is automatically removed from the topology if there is no update received from it during a given period of time.The topology provides a way to know the list of all participating RSs through the
getChangelogEndpoints()method. As a RS may listen to several interfaces, it provides one to many endpoints to contact for each RS.
-
-
Constructor Summary
Constructors Constructor Description Topology(ServerContext serverContext, ServerId<?> localServerId)Creates an empty topology.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddLocalAdminPorts(Collection<com.forgerock.opendj.util.HostPort> adminEndpoints)Adds administrative host ports to the local server.voidaddLocalLdapPorts(ConnectionSecurity connSecurity, Collection<com.forgerock.opendj.util.HostPort> ldapEndpoints)Adds LDAP (LDAPS / StartTLS) host ports to the local server.voidaddLocalReplicationDomain(ReplicaId replicaId, Dn baseDn)Adds a replication domain to the local server in the topology.voidapplyTopologyMessage(TopologyMsg topoMsg, Dn baseDn, ReplicationServerId senderId)Updates the topology with the provided topology message.Set<Set<com.forgerock.opendj.util.HostPort>>getChangelogEndpoints()Returns the set of replication endpoints for all the replication servers in the topology.booleanisLocalServerEndpoint(com.forgerock.opendj.util.HostPort endpoint)Indicates whether the providedHostPortcorresponds to this local server.booleanisLocalServerHost(com.forgerock.opendj.util.Host host)Indicates whether the providedHostPorthas the sameHostas this local server.voidremoveBootstrapServersForReplicationDomain(Dn domainBaseDn)Removes the bootstrap servers - i.e the servers known in the configuration - for a replication domain.voidremoveBootstrapServersForReplicationServer()Removes the bootstrap servers - i.e the servers known in the configuration - for the replication server.voidremoveLocalAdminPorts(Collection<com.forgerock.opendj.util.HostPort> adminEndpoints)Removes administrative host ports from the local server.voidremoveLocalLdapPorts(ConnectionSecurity connSecurity, Collection<com.forgerock.opendj.util.HostPort> ldapEndpoints)Removes LDAP (LDAPS / StartTLS) host ports from the local server.voidremoveLocalReplicationDomain(ReplicaId replicaId, Dn baseDn)Removes a replication domain from the local server in the topology.voidsetBootstrapServersForReplicationDomain(Set<com.forgerock.opendj.util.HostPort> bootstrapServers, Dn domainBaseDn)Sets the bootstrap servers - i.e the servers known in the configuration - for a replication domain.voidsetBootstrapServersForReplicationServer(Set<com.forgerock.opendj.util.HostPort> bootstrapServers)Sets the bootstrap servers - i.e the servers known in the configuration - for the replication server.voidsetLocalReplicationServer(ReplicationServerId rsId, com.forgerock.opendj.discovery.GroupId groupId, Duration changelogPurgeDelay, SortedSet<com.forgerock.opendj.util.Host> changelogEndpoints, int replicationPort)Sets the local replication server in the topology, merging it with any existing local replication domains.DSInfotoDSInfoOrNull(ReplicaId replicaId)Returns the information available from the topology for this replica ID as aDSInfoobject.RSInfotoRSInfoOrNull(ReplicationServerId replicationServerId)Returns the information available from the topology for this replication server ID as aRSInfoobject.StringtoString()voidupdateLocalGroupId(String groupId)Updates the groupID for the local server.
-
-
-
Constructor Detail
-
Topology
public Topology(ServerContext serverContext, ServerId<?> localServerId) throws ConfigException
Creates an empty topology.- Parameters:
serverContext- The server context.localServerId- The server id for the local server- Throws:
ConfigException- if the configuration cannot be read
-
-
Method Detail
-
isLocalServerEndpoint
public boolean isLocalServerEndpoint(com.forgerock.opendj.util.HostPort endpoint)
Indicates whether the providedHostPortcorresponds to this local server.- Parameters:
endpoint- the address to test.- Returns:
trueif the providedHostPortcorresponds to this local server.
-
isLocalServerHost
public boolean isLocalServerHost(com.forgerock.opendj.util.Host host)
Indicates whether the providedHostPorthas the sameHostas this local server.Note that the test is comparing hosts without DNS lookup so it requires that the hosts are provided in the same form (i.e with the same hostname or the same IP address).
- Parameters:
host- the address to test.- Returns:
trueif the providedHostPorthas the sameHostas this local server.
-
getChangelogEndpoints
public Set<Set<com.forgerock.opendj.util.HostPort>> getChangelogEndpoints()
Returns the set of replication endpoints for all the replication servers in the topology.A replication server can listen on several addresses, so there could be multiple endpoints for it.
- Returns:
- the set of replication endpoints for all servers in the topology.
-
setBootstrapServersForReplicationDomain
public void setBootstrapServersForReplicationDomain(Set<com.forgerock.opendj.util.HostPort> bootstrapServers, Dn domainBaseDn)
Sets the bootstrap servers - i.e the servers known in the configuration - for a replication domain.- Parameters:
bootstrapServers- the set of host and port of the bootstrap servers.domainBaseDn- the base dn of the replication domain
-
setBootstrapServersForReplicationServer
public void setBootstrapServersForReplicationServer(Set<com.forgerock.opendj.util.HostPort> bootstrapServers)
Sets the bootstrap servers - i.e the servers known in the configuration - for the replication server.- Parameters:
bootstrapServers- the set of host and port of the bootstrap servers.
-
removeBootstrapServersForReplicationDomain
public void removeBootstrapServersForReplicationDomain(Dn domainBaseDn)
Removes the bootstrap servers - i.e the servers known in the configuration - for a replication domain.- Parameters:
domainBaseDn- the base dn of the replication domain
-
removeBootstrapServersForReplicationServer
public void removeBootstrapServersForReplicationServer()
Removes the bootstrap servers - i.e the servers known in the configuration - for the replication server.
-
setLocalReplicationServer
public void setLocalReplicationServer(ReplicationServerId rsId, com.forgerock.opendj.discovery.GroupId groupId, Duration changelogPurgeDelay, SortedSet<com.forgerock.opendj.util.Host> changelogEndpoints, int replicationPort)
Sets the local replication server in the topology, merging it with any existing local replication domains.- Parameters:
rsId- the server ID of the local server.groupId- the group ID of the local server.changelogPurgeDelay- the purge delay for the changelog.changelogEndpoints- the addresses of the local replication server.replicationPort- the port of the local replication server.
-
addLocalReplicationDomain
public void addLocalReplicationDomain(ReplicaId replicaId, Dn baseDn)
Adds a replication domain to the local server in the topology.- Parameters:
replicaId- The replicaId of the local server.baseDn- The baseDn of the replication domain.
-
removeLocalReplicationDomain
public void removeLocalReplicationDomain(ReplicaId replicaId, Dn baseDn)
Removes a replication domain from the local server in the topology.- Parameters:
replicaId- The replicaId of the local server.baseDn- The baseDn of the replication domain.
-
addLocalAdminPorts
public void addLocalAdminPorts(Collection<com.forgerock.opendj.util.HostPort> adminEndpoints)
Adds administrative host ports to the local server.- Parameters:
adminEndpoints- the administrative host ports
-
addLocalLdapPorts
public void addLocalLdapPorts(ConnectionSecurity connSecurity, Collection<com.forgerock.opendj.util.HostPort> ldapEndpoints)
Adds LDAP (LDAPS / StartTLS) host ports to the local server.- Parameters:
connSecurity- connection security for the provided host portsldapEndpoints- the ldap host ports
-
removeLocalAdminPorts
public void removeLocalAdminPorts(Collection<com.forgerock.opendj.util.HostPort> adminEndpoints)
Removes administrative host ports from the local server.- Parameters:
adminEndpoints- the administrative host ports
-
removeLocalLdapPorts
public void removeLocalLdapPorts(ConnectionSecurity connSecurity, Collection<com.forgerock.opendj.util.HostPort> ldapEndpoints)
Removes LDAP (LDAPS / StartTLS) host ports from the local server.- Parameters:
connSecurity- connection security for the provided host portsldapEndpoints- the ldap host ports
-
toDSInfoOrNull
public DSInfo toDSInfoOrNull(ReplicaId replicaId)
Returns the information available from the topology for this replica ID as aDSInfoobject.- Parameters:
replicaId- the replica ID- Returns:
- the available information as an DSInfo
-
toRSInfoOrNull
public RSInfo toRSInfoOrNull(ReplicationServerId replicationServerId)
Returns the information available from the topology for this replication server ID as aRSInfoobject.- Parameters:
replicationServerId- the replication server ID- Returns:
- the available information as an RSInfo
-
updateLocalGroupId
public void updateLocalGroupId(String groupId)
Updates the groupID for the local server.- Parameters:
groupId- the new groupID
-
applyTopologyMessage
public void applyTopologyMessage(TopologyMsg topoMsg, Dn baseDn, ReplicationServerId senderId)
Updates the topology with the provided topology message.- Parameters:
topoMsg- a topology message received from a remote RS.baseDn- the base Dn of the domain for which the topology message was received.senderId- the id of the RS that sent the topology message.
-
-