Replication blocked due to missing entry on consumer (Error 32 - No Such Object)
You can use the IBMSLAPD_REPL_ADD_MISSING_ENTRY environment variable to unblock replication in case of error 32 - No Such Object.
In many customer environments, the major issue with Directory replication is the replication getting blocked due to missing entry on the consumer (Error 32 - No Such Object). When supplier sends in a modify operation, the consumer rejects it (validly) stating the entry that needs to modified doesn't exist on that consumer. Many admins do not understand the reason behind the replication blockage and simply skip the change(s). This makes the data between the replicated servers to be different and requiring a data re-synchronization which is time consuming and business affecting.
- Here are some of the cases which can lead to such errors
- The problem happens due to in-experienced admin folks skipping the replication changes. And don’t have understanding/expertise to synchronize data.
- The servers are loaded with different data to start with - For example, the admin exports the ldif file at a given time. The source server is still online, taking updates from the client applications (adds, mods, deletes etc). Then after some time they load the ldif file (which is already outdated). They will face the replication blockages on modifications to missing entries.
- Load balancer issues in combination with 1 and 2.
To handle this case, upon receiving error 32, the supplier server need to look into its own database to see if the entry is existing. If the entry is existing on the supplier then it sends that entry via add operation to the consumer. This will unblock the replication.
Environment variable IBMSLAPD_REPL_ADD_MISSING_ENTRY is introduced to enable/disable this functionality. If environment variable's value is not set or set to TRUE, then this functionality is enabled. i.e. Supplier will send add request for the missing entry to the consumer. If set to FALSE then this functionality is disabled. i.e. Supplier will not send add request to consumer. By default, this is set to TRUE.
- Adding the variable to configuration file
-
- Using the LDAP client utility:
- Issue the ldapmodify command of the following
format against the supplier server:
idsldapmodify -p port -D adminDN -w adminPW dn: cn=Front End, cn=Configuration changetype: modify add: ibm-slapdSetenv ibm-slapdSetenv: IBMSLAPD_REPL_ADD_MISSING_ENTRY=TRUE - Restart the directory server instance.
- Issue the ldapmodify command of the following
format against the supplier server:
- From command prompt
- Set the environment variable IBMSLAPD_REPL_ADD_MISSING_ENTRY.
- On AIX® and Linux™ systems (ksh shell):
-
export IBMSLAPD_REPL_ADD_MISSING_ENTRY=TRUE/FALSE - On Windows™ systems:
-
set IBMSLAPD_REPL_ADD_MISSING_ENTRY=TRUE/FALSE
For the set value of the environment variable to be effective, restart the directory server instance from the same shell where the IBMSLAPD_REPL_ADD_MISSING_ENTRY environment variable was set.