diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 692d8a2a17..fb400a3a91 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1035,6 +1035,25 @@ include_dir 'conf.d' + + remote_servers_connection_check_interval (integer) + + remote_servers_connection_check_interval configuration parameter + + + + + Sets the time interval between optional checks that the remote servers + are still alive. If this parameter is set to a valid value, registered + callback functions are executed at the specified time interval. + If your FDW extension does not implement a callback function, nothing + happens after the specified amount of time. If the value is specified + without units, it is taken as milliseconds. The default value is + 0, this means the feature is disabled. + + + + diff --git a/doc/src/sgml/fdwhandler.sgml b/doc/src/sgml/fdwhandler.sgml index dbf5dd3d15..3b75a77067 100644 --- a/doc/src/sgml/fdwhandler.sgml +++ b/doc/src/sgml/fdwhandler.sgml @@ -2136,4 +2136,40 @@ GetForeignServerByName(const char *name, bool missing_ok); + + Checking the Health of Remote Servers via Foreign Data Wrapper + + + For verifying the health of remote servers, callback functions can be + registered that runs periodically. The time interval is controlled by + . + The API for registering functions is: + +CheckingRemoteServersCallbackItem * +RegisterCheckingRemoteServersCallback(CheckingRemoteServersCallback callback, void *arg); + + Only functions that return ForeignServer* can be + registered as callback functions. Please set to void* arg + if you want to pass an argument. The returning value must be set as the argument + of following enable and disable fucntions. + If you have problems with the health check results and want to abort the transaction, + please return the pointer of downed server as ForeignServer*. + + + Note that starting or stopping the periodic execution is FDW's responsibility. + If you want to start verification, the following function must be performed + after registering callback functions: + +int +TryEnableRemoteServerCheckingTimeout(CheckingRemoteServersCallbackItem *item) + + If you want to stop, the following function must be performed: + +int +TryDisableRemoteServerCheckingTimeout(CheckingRemoteServersCallbackItem *item) + + + + +