Class ProxyBackendCfgDefn
- java.lang.Object
-
- org.forgerock.opendj.config.AbstractManagedObjectDefinition<C,S>
-
- org.forgerock.opendj.config.ManagedObjectDefinition<ProxyBackendCfgClient,ProxyBackendCfg>
-
- org.forgerock.opendj.server.config.meta.ProxyBackendCfgDefn
-
public final class ProxyBackendCfgDefn extends ManagedObjectDefinition<ProxyBackendCfgClient,ProxyBackendCfg>
An interface for querying the Proxy Backend managed object definition meta information.A Proxy Backend forwards LDAP requests to other servers.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ProxyBackendCfgDefn.HashFunction
Defines the set of permissable values for the "hash-function" property.static class
ProxyBackendCfgDefn.LoadBalancingAlgorithm
Defines the set of permissable values for the "load-balancing-algorithm" property.
-
Method Summary
-
Methods inherited from class org.forgerock.opendj.config.AbstractManagedObjectDefinition
getAggregationPropertyDefinition, getAggregationPropertyDefinitions, getAllAggregationPropertyDefinitions, getAllChildren, getAllConstraints, getAllPropertyDefinitions, getAllRelationDefinitions, getAllReverseAggregationPropertyDefinitions, getAllReverseRelationDefinitions, getAllTags, getChild, getChildren, getConstraints, getDescription, getDescription, getName, getParent, getPropertyDefinition, getPropertyDefinitions, getRelationDefinition, getRelationDefinitions, getReverseAggregationPropertyDefinitions, getReverseRelationDefinitions, getSynopsis, getSynopsis, getUserFriendlyName, getUserFriendlyName, getUserFriendlyPluralName, getUserFriendlyPluralName, hasChildren, hasOption, hasTag, initialize, isChildOf, isParentOf, isTop, registerConstraint, registerOption, registerPropertyDefinition, registerRelationDefinition, registerTag, resolveManagedObjectDefinition, toString, toString
-
-
-
-
Method Detail
-
getInstance
public static ProxyBackendCfgDefn getInstance()
Get the Proxy Backend configuration definition singleton.- Returns:
- Returns the Proxy Backend configuration definition singleton.
-
createClientConfiguration
public ProxyBackendCfgClient createClientConfiguration(ManagedObject<? extends ProxyBackendCfgClient> impl)
Description copied from class:ManagedObjectDefinition
Creates a client configuration view of the provided managed object. Modifications made to the underlying managed object will be reflected in the client configuration view and vice versa.- Specified by:
createClientConfiguration
in classManagedObjectDefinition<ProxyBackendCfgClient,ProxyBackendCfg>
- Parameters:
impl
- The managed object.- Returns:
- Returns a client configuration view of the provided managed object.
-
createServerConfiguration
public ProxyBackendCfg createServerConfiguration(ServerManagedObject<? extends ProxyBackendCfg> impl)
Description copied from class:ManagedObjectDefinition
Creates a server configuration view of the provided server managed object.- Specified by:
createServerConfiguration
in classManagedObjectDefinition<ProxyBackendCfgClient,ProxyBackendCfg>
- Parameters:
impl
- The server managed object.- Returns:
- Returns a server configuration view of the provided server managed object.
-
getServerConfigurationClass
public Class<ProxyBackendCfg> getServerConfigurationClass()
Description copied from class:ManagedObjectDefinition
Gets the server configuration class instance associated with this managed object definition.- Specified by:
getServerConfigurationClass
in classManagedObjectDefinition<ProxyBackendCfgClient,ProxyBackendCfg>
- Returns:
- Returns the server configuration class instance associated with this managed object definition.
-
getBackendIdPropertyDefinition
public StringPropertyDefinition getBackendIdPropertyDefinition()
Get the "backend-id" property definition.Specifies a name to identify the associated backend.
The name must be unique among all backends in the server. The backend ID may not be altered after the backend is created in the server.
- Returns:
- Returns the "backend-id" property definition.
-
getBaseDnPropertyDefinition
public DnPropertyDefinition getBaseDnPropertyDefinition()
Get the "base-dn" property definition.Specifies the base DN(s) for the data that the backend handles.
A single backend may be responsible for one or more base DNs. Note that no two backends may have the same base DN although one backend may have a base DN that is below a base DN provided by another backend (similar to the use of sub-suffixes in the Sun Java System Directory Server). If any of the base DNs is subordinate to a base DN for another backend, then all base DNs for that backend must be subordinate to that same base DN. When the "route-all" property is set to "true" then the "base-dn" property is ignored.
- Returns:
- Returns the "base-dn" property definition.
-
getBindConnectionPoolIdleTimeoutPropertyDefinition
public DurationPropertyDefinition getBindConnectionPoolIdleTimeoutPropertyDefinition()
Get the "bind-connection-pool-idle-timeout" property definition.The time out period after which unused non-core bind connections will be closed and removed from the bind connection pool.
- Returns:
- Returns the "bind-connection-pool-idle-timeout" property definition.
-
getBindConnectionPoolMaxSizePropertyDefinition
public IntegerPropertyDefinition getBindConnectionPoolMaxSizePropertyDefinition()
Get the "bind-connection-pool-max-size" property definition.Maximum size of the connection pool that will be used for sending bind requests
Only one bind request at a time can be pending on a connection and bind requests may take a significant amount of time to process depending on the remote server's password policies. Therefore, the maximum pool size should be reasonably high in order to be able to process bind requests concurrently.
- Returns:
- Returns the "bind-connection-pool-max-size" property definition.
-
getBindConnectionPoolMinSizePropertyDefinition
public IntegerPropertyDefinition getBindConnectionPoolMinSizePropertyDefinition()
Get the "bind-connection-pool-min-size" property definition.Minimum size of the connection pool that will be used for sending bind requests
- Returns:
- Returns the "bind-connection-pool-min-size" property definition.
-
getConnectionTimeoutPropertyDefinition
public DurationPropertyDefinition getConnectionTimeoutPropertyDefinition()
Get the "connection-timeout" property definition.Specifies the timeout used when connecting to servers, performing SSL negotiation, and for individual search and bind requests.
If the timeout expires then the current operation will be aborted and retried against another LDAP server if one is available.
- Returns:
- Returns the "connection-timeout" property definition.
-
getDiscoveryIntervalPropertyDefinition
public DurationPropertyDefinition getDiscoveryIntervalPropertyDefinition()
Get the "discovery-interval" property definition.Interval between two server configuration discovery executions.
Specifies how frequently to read the configuration of the servers in order to discover any configuration change.
- Returns:
- Returns the "discovery-interval" property definition.
-
getEnabledPropertyDefinition
public BooleanPropertyDefinition getEnabledPropertyDefinition()
Get the "enabled" property definition.Indicates whether the backend is enabled in the server.
If a backend is not enabled, then its contents are not accessible when processing operations.
- Returns:
- Returns the "enabled" property definition.
-
getHashFunctionPropertyDefinition
public EnumPropertyDefinition<ProxyBackendCfgDefn.HashFunction> getHashFunctionPropertyDefinition()
Get the "hash-function" property definition.Specifies the hash function which will be used for data distribution.
This setting only applies to data distribution. Once this server is deployed, this setting must not be modified. Doing so could result in data loss. The hash function is used by the router to map incoming requests to a target server based on the request's target DN. The role of the hash function is to ensure that the flow of incoming requests is evenly distributed on the set of servers.
- Returns:
- Returns the "hash-function" property definition.
-
getHeartbeatIntervalPropertyDefinition
public DurationPropertyDefinition getHeartbeatIntervalPropertyDefinition()
Get the "heartbeat-interval" property definition.Specifies the heartbeat interval that the Proxy Backend will use when communicating with the remote servers.
The Proxy Backend sends a heartbeat request to the servers every heartbeat interval. The heartbeat serves 3 purposes: keepalive, heartbeat and recovery. The hearbeat requests are small requests sent to prevent the connection from appearing idle and being forcefully closed (keepalive). The heartbeat responses inform the Proxy Backend the server is available (heartbeat). If a heartbeat answer is not received within the interval, the Proxy Backend closes the unresponsive connection and connects to another server. After an unresponsive connection is closed, the server is contacted each heartbeat interval to determine whether it is available again (recovery).
- Returns:
- Returns the "heartbeat-interval" property definition.
-
getHeartbeatSearchRequestBaseDnPropertyDefinition
public DnPropertyDefinition getHeartbeatSearchRequestBaseDnPropertyDefinition()
Get the "heartbeat-search-request-base-dn" property definition.Specifies the name of the entry that will be targeted by heartbeat requests.
By default heartbeat requests will attempt to read the remote server's root DSE, which is sufficient to determine whether the remote server is available, but it will not detect whether a particular backend is available. Set the heartbeat request base DN to the base entry of the backend containing application data in order to detect whether a remote server is available and handling requests against the backend.
- Returns:
- Returns the "heartbeat-search-request-base-dn" property definition.
-
getJavaClassPropertyDefinition
public ClassPropertyDefinition getJavaClassPropertyDefinition()
Get the "java-class" property definition.Specifies the fully-qualified name of the Java class that provides the backend implementation.
- Returns:
- Returns the "java-class" property definition.
-
getKeyManagerProviderPropertyDefinition
public AggregationPropertyDefinition<KeyManagerProviderCfgClient,KeyManagerProviderCfg> getKeyManagerProviderPropertyDefinition()
Get the "key-manager-provider" property definition.Specifies the name of the key manager that should be used with this Proxy Backend.
- Returns:
- Returns the "key-manager-provider" property definition.
-
getLoadBalancingAlgorithmPropertyDefinition
public EnumPropertyDefinition<ProxyBackendCfgDefn.LoadBalancingAlgorithm> getLoadBalancingAlgorithmPropertyDefinition()
Get the "load-balancing-algorithm" property definition.How to load balance between servers within a shard
- Returns:
- Returns the "load-balancing-algorithm" property definition.
-
getPartitionBaseDnPropertyDefinition
public DnPropertyDefinition getPartitionBaseDnPropertyDefinition()
Get the "partition-base-dn" property definition.Specifies the base DN(s) which will be used for "affinity" load-balancing algorithm and data distribution
This settings only applies for "affinity" load-balancing and data distribution. When applied to "affinity" load-balancing within a single shard, this setting provides consistency for add/delete operations targeting entries within the same sub-tree. Entries immediately subordinate to the partition base DNs will be considered to be the root of a sub-tree whose entries belong to the same shard. For example, a partition base DN of "ou=people,dc=example,dc=com" would mean that "uid=bjensen,ou=people,dc=example,dc=com" and "deviceid=12345,uid=bjensen,ou=people,dc=example,dc=com" both belong to the same shard, and all operations targeting them would be routed to the same remote server. When applied to data distribution across multiple shards, this setting consistently routes operations targeting an entry below the partition DN to the same shard. Requests targeting the partition DN or above are routed to any shard. Search requests are routed to all shards unless their scope is under the partition DN. For example, if the partition base DN is set to "ou=people,dc=example,dc=com", a search with base DN "uid=bjensen,ou=people,dc=example,dc=com" or "deviceid=12345,uid=bjensen,ou=people,dc=example,dc=com" is always routed to the same shard. A search with base DN "ou=people,dc=example,dc=com" is routed to all shards.
- Returns:
- Returns the "partition-base-dn" property definition.
-
getProxyUserDnPropertyDefinition
public DnPropertyDefinition getProxyUserDnPropertyDefinition()
Get the "proxy-user-dn" property definition.The bind DN that is used to forward LDAP requests to remote servers.
The proxy connects to the remote server using this bind DN and uses the proxied authorization control to forward requests on behalf of the proxy users. This bind DN must exist on all the remote servers.
- Returns:
- Returns the "proxy-user-dn" property definition.
-
getProxyUserPasswordPropertyDefinition
public StringPropertyDefinition getProxyUserPasswordPropertyDefinition()
Get the "proxy-user-password" property definition.Clear-text password associated with the proxy bind DN.
The proxy password must be the same on all the remote servers.
- Returns:
- Returns the "proxy-user-password" property definition.
-
getRequestConnectionPoolSizePropertyDefinition
public IntegerPropertyDefinition getRequestConnectionPoolSizePropertyDefinition()
Get the "request-connection-pool-size" property definition.The size of the connection pool which will be used for sending all requests other than bind requests.
Unlike bind requests, other types of request may be processed concurrently on the same connection, so this connection pool should be configured with a smaller number of connections, such as 10.
- Returns:
- Returns the "request-connection-pool-size" property definition.
-
getRouteAllPropertyDefinition
public BooleanPropertyDefinition getRouteAllPropertyDefinition()
Get the "route-all" property definition.Route requests to all discovered public naming contexts.
When the "route-all" property is set to "true" then the "base-dn" property is ignored.
- Returns:
- Returns the "route-all" property definition.
-
getShardPropertyDefinition
public AggregationPropertyDefinition<ServiceDiscoveryMechanismCfgClient,ServiceDiscoveryMechanismCfg> getShardPropertyDefinition()
Get the "shard" property definition.Specifies one or more shards which will be used for distributing data and requests.
When multiple shards are configured, this setting consistently routes write requests for the same target entry below the partition DN to the same shard. Requests targeting an entry under the partition DN are always routed to a single shard. Requests targeting the partition DN or above are routed to any shard. Search requests are routed to all shards unless their scope is under the partition DN. For example, a search with base DN "uid=bjensen,ou=people,dc=example,dc=com" or "deviceid=12345,uid=bjensen,ou=people,dc=example,dc=com" is always routed to the same shard. A search with base DN "ou=people,dc=example,dc=com" is routed to all shards.
- Returns:
- Returns the "shard" property definition.
-
getSslCertNicknamePropertyDefinition
public StringPropertyDefinition getSslCertNicknamePropertyDefinition()
Get the "ssl-cert-nickname" property definition.Specifies the nicknames (also called the aliases) of the keys or key pairs that the Proxy Backend 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 Proxy Backend is configured to use SSL.
- Returns:
- Returns the "ssl-cert-nickname" property definition.
-
getUseSaslExternalPropertyDefinition
public BooleanPropertyDefinition getUseSaslExternalPropertyDefinition()
Get the "use-sasl-external" property definition.Indicates whether the Proxy Backend should use certificate based authentication when communicating with backend servers.
If enabled, the Proxy Backend will use mutual TLS when connecting to backend servers. Once the TLS handshake has completed, a SASL/External LDAP bind request will be sent in order to associate the TLS client certificate with an LDAP account on the remote backend server. A key manager provider containing the client certificate must be configured in order to use this feature.
- Returns:
- Returns the "use-sasl-external" property definition.
-
-