This content has been marked as final. Show 2 replies
Unfortunately, at the moment, the answer to both of these questions is
no. However, we are planning significant improvements in this area
for a future release, which will make both of these operations
For now the only way to make Replication Manager stop trying to
connect to a removed site is to close the environment handle, and
reopen and restart (without mentioning the removed site in a call to
repmgr_add_remote_site() again, of course). You can shut down and
restart one surviving site at a time, so that the replication group as
a whole remains available during this process.
Note too that you can adjust how often repmgr tries to reopen a
connection (rep_set_timeout(DB_REP_CONNECTION_RETRY)), so that you can
reduce, if not eliminate, the annoyance.
As for detecting the disappearance of a client, repmgr prints an error
message when it loses a connection. If you were really determined,
you could install an error message callback function using
DB_ENV->set_errcall() and examine the message text. You would
probably want to check for at least a couple of different possible
error messages: "can't read from %s", "EOF on connection from %s",
"socket writing failure".
Also note that DB_ENV->repmgr_site_list() reports the connection
status of all known remote sites.