Postgres-XL集群ERROR :Failed to get pooled connections原因说明
6台服务器。其中1台(rt67-1)运行GTM,其余5台均运行1个GTM_PROXY、1个Coordinator node、3个Data node。每个服务器连接到3组网络中,每个Data node分别处在一组网络中。
-
问题描述
在连接入库并发数较高时,报错:
ERROR: Failed to get pooled connections
HINT: This may happen because one or more nodes are currently unreachable, either because of node or network failure.
Its also possible that the target node may have hit the connection limit or the pooler is configured with low connections.
Please check if all nodes are running fine and also review max_connections and max_pool_size configuration parameters
-
分析过程
检查了网络、防火墙、max_connections、max_pool_size均没有问题。无意中发现data node的参数文件中gtm_host设置为rt67-1,好像哪里不对。于是在官网上查询对该参数的定义。
-
官方文档对gtm_host的说明
Configuring Datanodes
gtm_proxy
Postgres-XL Specific Parameters
-
问题修正
通过对该参数定义的解读,发现可能是data node中该参数设置不当引起的错误。于是将该参数调整为当前服务器的gtm_proxy的IP和端口。再测试,问题得以修正。
-
其它
gtm_connect_retry_interval (integer)
Specifies how long in seconds GTM-Proxy waits between each retry to connect to GTM when communication error with GTM is detected. Default value is 60. Refer to gtm_connect_retry_count and gtm_connect_retry_idle.