A Replication Assurance Policy is used to specify the local and remote replication assurance levels and a timeout to use for update operations. Optionally, request and connection criteria can be configured in the policy to allow matching a policy to requests that satisfy such criteria.
Each operation request will be associated with exactly one Replication Assurance Policy. The server can be configured with zero or more Replication Assurance Policies to match operations against. When a client request comes in, the server iterates through the list of enabled policies according to their evaluation-order-indexes. The first policy that matches the request and connection criteria specified in the assurance policy is associated with the operation. Policies with a more restrictive set of criteria should have a lower evaluation-order-index so they are evaluate first, and policies that are less restrictive, including one with no connection or request criteria which will match all operations, should have the highest evaluation-order-index. If no match is found, a default policy with no replication assurances is associated.
There is no requirement that the servers in a replication topology share a homogeneous set of policies. Because the assurance levels associated with an operation are based on the policy configuration at the server that receives the request from the client, server-level granularity of such settings are allowed, although this is typically not the case.
The following components have a direct aggregation relation from Replication Assurance Policies:
The properties supported by this managed object are as follows:
Basic Properties: | Advanced Properties: |
---|---|
description | None |
enabled | |
evaluation-order-index | |
local-level | |
remote-level | |
timeout | |
connection-criteria | |
request-criteria |
Description | Description of the Replication Assurance Policy. |
Default Value | None |
Allowed Values | A string |
Multi-Valued | No |
Required | No |
Admin Action Required | None. Modification requires no further action |
Description | Indicates whether this Replication Assurance Policy is enabled for use in the server. If a Replication Assurance Policy is disabled, then no new operations will be associated with it. |
Default Value | true |
Allowed Values | true false |
Multi-Valued | No |
Required | Yes |
Admin Action Required | None. Modification requires no further action |
Description | When multiple Replication Assurance Policies are defined, this property determines the evaluation order for finding a Replication Assurance Policy match against an operation. Policies are evaluated based on this index from least to greatest. Values of this property must be unique but not necessarily contiguous. |
Default Value | None |
Allowed Values | An integer value. Lower limit is 0. Upper limit is 2147483647 . |
Multi-Valued | No |
Required | Yes |
Admin Action Required | None. Modification requires no further action |
Description | Specifies the assurance level used to replicate to local servers. A local server is defined as one with the same value for the location setting in the global configuration. The local-level must be set to an assurance level at least as strict as the remote-level. In other words, if remote-level is set to "received-any-remote-location" or "received-all-remote-locations", then local-level must be either "received-any-server" or "processed-all-servers". If remote-level is "processed-all-remote-servers", then local-level must be "processed-all-servers". |
Default Value | none |
Allowed Values | none - Replication to any local server is not assured. received-any-server - At least one available local server must receive a replication update before a response is sent to the client. If the client receives a response and the server on which the changed was made subsequently fails, then the change is guaranteed to have propagated to at least one other local server before the failure occurred. The effect being that the update will survive and propagate through the topology, regardless of the originating server failure. processed-all-servers - All available local servers must complete replay of the replication update before the response is sent to the client. If the client receives a response and the server on which the changed was made subsequently fails, then the change is guaranteed to have propagated to, and replayed on, all of the other available local servers before the failure occurred. The effect being that the update will be visible to all clients that access local servers after the response is sent to the client that originated the update, regardless of the originating server failure. If a singular server is enabled, or only one server is available for a particular location, processed-all-servers will never be satisfied for that replica and will return with the value of false. |
Multi-Valued | No |
Required | Yes |
Admin Action Required | None. Modification requires no further action |
Description | Specifies the assurance level used to replicate to remote servers. A remote server is defined as one with a different value for the location setting in the global configuration. |
Default Value | none |
Allowed Values | none - Replication to any server at any remote location is not assured. received-any-remote-location - At least one server at any available remote location must receive a replication update before a response is sent to the client. If the client receives a response and the server on which the changed was made subsequently fails, then the change is guaranteed to have propagated to at least one other remote server before the failure occurred. The effect being that the update will survive and propagate through the topology, regardless of the originating server failure. received-all-remote-locations - At least one server at each available location must receive a replication before the response is sent to the client. If the client receives a response and the server on which the changed was made subsequently fails, then the change is guaranteed to have propagated to at least one remote server at each location before the failure occurred. The effect being that the update will survive and propagate through the topology, regardless of the originating server failure. processed-all-remote-servers - All available servers at all locations must complete replay of the replication update before the response is sent to the client. If the client receives a response and the server on which the changed was made subsequently fails, then the change is guaranteed to have propagated to, and replayed on, all of the other available remote servers before the failure occurred. The effect being that the update will be visible to all clients that access remote servers after the response is sent to the client that originated the update, regardless of the originating server failure. If a singular server is enabled, or only one server is available for a particular location, processed-all-remote-servers will never be satisfied for that replica and will return with the value of false. |
Multi-Valued | No |
Required | Yes |
Admin Action Required | None. Modification requires no further action |
Description | Specifies the maximum length of time to wait for the replication assurance requirements to be met before timing out and replying to the client. |
Default Value | None |
Allowed Values | A duration. Lower limit is 10 milliseconds. |
Multi-Valued | No |
Required | Yes |
Admin Action Required | None. Modification requires no further action |
Description | Specifies a connection criteria used to indicate which operations from clients matching this criteria use this policy. If both a connection criteria and a request criteria are specified for a policy, then both must match an operation for the policy to be assigned. |
Default Value | None |
Allowed Values | The DN of any Connection Criteria. |
Multi-Valued | No |
Required | No |
Admin Action Required | None. Modification requires no further action |
Description | Specifies a request criteria used to indicate which operations from clients matching this criteria use this policy. If both a connection criteria and a request criteria are specified for a policy, then both must match an operation for the policy to be assigned. |
Default Value | None |
Allowed Values | The DN of any Request Criteria. |
Multi-Valued | No |
Required | No |
Admin Action Required | None. Modification requires no further action |
To list the configured Replication Assurance Policies:
dsconfig list-replication-assurance-policies [--property {propertyName}] ...
To view the configuration for an existing Replication Assurance Policy:
dsconfig get-replication-assurance-policy-prop --policy-name {name} [--tab-delimited] [--script-friendly] [--property {propertyName}] ...
To update the configuration for an existing Replication Assurance Policy:
dsconfig set-replication-assurance-policy-prop --policy-name {name} (--set|--add|--remove) {propertyName}:{propertyValue} [(--set|--add|--remove) {propertyName}:{propertyValue}] ...
To create a new Replication Assurance Policy:
dsconfig create-replication-assurance-policy --policy-name {name} --set evaluation-order-index:{propertyValue} --set timeout:{propertyValue} [--set {propertyName}:{propertyValue}] ...
To delete an existing Replication Assurance Policy:
dsconfig delete-replication-assurance-policy --policy-name {name}