/* Configuration variables */
char *GtmHost = "localhost";
int GtmPort = 6666;
-static int GtmConnectTimeout = 60;
-static int GtmCommTimeout = 60;
+int GtmConnectTimeout = 60;
+int GtmCommTimeout = 60;
bool IsXidFromGTM = false;
bool gtm_backup_barrier = false;
extern bool FirstSnapshotSet;
NULL, NULL, NULL
},
+ {
+ {"gtm_connect_timeout", PGC_USERSET, UNGROUPED,
+ gettext_noop("Timeout in second to wait for GTM connection. "
+ "0 means wait forever."),
+ NULL,
+ 0
+ },
+ &GtmConnectTimeout,
+ 60, 0, INT_MAX,
+ NULL, NULL, NULL
+ },
+
+ {
+ {"gtm_comm_timeout", PGC_USERSET, UNGROUPED,
+ gettext_noop("Timeout in second to wait for a response from the "
+ "GTM or the GTM Proxy. 0 means wait forever."),
+ NULL,
+ 0
+ },
+ &GtmCommTimeout,
+ 0, 0, INT_MAX,
+ NULL, NULL, NULL
+ },
+
#endif
#endif /* PGXC */
extern char *GTMProxyDataDir;
extern char *GTMProxyConfigFileName;
extern char *GTMConfigFileName;
+extern int GTMProxyCommTimeout;
/*
GTM_PROXY_DEFAULT_WORKERS, 1, INT_MAX,
0, NULL
},
+ {
+ {
+ GTM_OPTNAME_COMM_TIMEOUT, GTMC_STARTUP,
+ gettext_noop("Timeout in second to wait for a response from the GTM. 0 means wait forever"),
+ NULL,
+ 0
+ },
+ >MProxyCommTimeout,
+ 0, 0, INT_MAX,
+ 0, NULL
+ },
/* End-of-list marker */
{
{NULL, 0, NULL, NULL, 0}, NULL, 0, 0, 0, 0, NULL
char *ListenAddresses;
int GTMProxyPortNumber;
int GTMProxyWorkerThreads;
+int GTMProxyCommTimeout = PROXY_CLIENT_TIMEOUT;
char *GTMProxyDataDir;
char *GTMProxyConfigFileName;
char *GTMConfigFileName;
*/
sprintf(gtm_connect_string, "host=%s port=%d node_name=%s remote_type=%d comm_timeout=%d",
GTMServerHost, GTMServerPortNumber, GTMProxyNodeName,
- GTM_NODE_GTM_PROXY, PROXY_CLIENT_TIMEOUT);
+ GTM_NODE_GTM_PROXY, GTMProxyCommTimeout);
thrinfo->thr_gtm_conn = PQconnectGTM(gtm_connect_string);
sprintf(gtm_connect_string, "host=%s port=%d node_name=%s "
"remote_type=%d comm_timeout=%d",
GTMServerHost, GTMServerPortNumber, GTMProxyNodeName,
- GTM_NODE_GTM_PROXY, PROXY_CLIENT_TIMEOUT);
+ GTM_NODE_GTM_PROXY, GTMProxyCommTimeout);
gtm_conn = PQconnectGTM(gtm_connect_string);
/*
* If reconnect succeeded the connection will be ready to use out of
sprintf(conn_str, "host=%s port=%d node_name=%s remote_type=%d postmaster=1 comm_timeout=%d",
GTMServerHost, GTMServerPortNumber, GTMProxyNodeName,
- GTM_NODE_GTM_PROXY_POSTMASTER, PROXY_CLIENT_TIMEOUT);
+ GTM_NODE_GTM_PROXY_POSTMASTER, GTMProxyCommTimeout);
conn = PQconnectGTM(conn_str);
if (GTMPQstatus(conn) != CONNECTION_OK)
sprintf(gtm_connect_string, "host=%s port=%d node_name=%s remote_type=%d "
"client_id=%u comm_timeout=%d",
GTMServerHost, GTMServerPortNumber, GTMProxyNodeName,
- GTM_NODE_GTM_PROXY, saveMyClientId, PROXY_CLIENT_TIMEOUT);
+ GTM_NODE_GTM_PROXY, saveMyClientId, GTMProxyCommTimeout);
elog(DEBUG1, "Worker thread connecting to %s", gtm_connect_string);
GetMyThreadInfo->thr_gtm_conn = PQconnectGTM(gtm_connect_string);