client_connection_check_interval

用于检查客户端连接是否仍然活动的配置参数

client_connection_check_interval 是一个用于检查客户端连接是否仍然活动的配置参数,前提是底层操作系统支持此功能。

client_connection_check_intervalPostgreSQL 14 中添加。

用法

check_client_connection_interval 仅在支持 POLLRDHUP 对 poll 系统调用的扩展的操作系统上可用。

目前仅 Linux 支持。

默认值

check_client_connection_interval 的默认值为:0(禁用)。

按 PostgreSQL 版本分列的详细信息

client_connection_check_interval (PostgreSQL 17)

设置 0
单位 毫秒
类别 连接和身份验证 / TCP 设置
简短描述 设置在运行查询时检查断开连接的时间间隔。
额外描述  
上下文 用户
变量类型 整数
来源 默认值
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
待重启

文档: client_connection_check_interval

client_connection_check_interval (PostgreSQL 16)

设置 0
单位 毫秒
类别 连接和身份验证 / TCP 设置
简短描述 设置在运行查询时检查断开连接的时间间隔。
额外描述  
上下文 用户
变量类型 整数
来源 默认值
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
待重启

文档: client_connection_check_interval

client_connection_check_interval (PostgreSQL 15)

设置 0
单位 毫秒
类别 连接和身份验证 / 连接设置
简短描述 设置在运行查询时检查断开连接的时间间隔。
额外描述  
上下文 用户
变量类型 整数
来源 默认值
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
待重启

文档: client_connection_check_interval

client_connection_check_interval (PostgreSQL 14)

设置 0
单位 毫秒
类别 连接和身份验证 / 连接设置
简短描述 设置在运行查询时检查断开连接的时间间隔。
额外描述  
上下文 用户
变量类型 整数
来源 默认值
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
待重启

文档: client_connection_check_interval

更改历史记录

示例

check_client_connection_interval 禁用(设置为 0)时,PostgreSQL 仅在查询完成后才会检测到客户端断开连接

postgres=# SHOW client_connection_check_interval;
 client_connection_check_interval 
----------------------------------
 0
(1 row)

postgres=# SELECT pg_sleep(15);
Terminated

相应的日志文件条目

[2021-04-02 11:09:23 UTC] psql postgres postgres LOG:  00000: statement: SELECT pg_sleep(15);
[2021-04-02 11:09:38 UTC] psql postgres postgres LOG:  00000: disconnection: session time: 0:03:17.753 user=postgres database=postgres host=127.0.0.1 port=38516

启用 check_client_connection_interval

postgres=# SHOW client_connection_check_interval;
 client_connection_check_interval 
----------------------------------
 5s
(1 row)

postgres=# SELECT pg_sleep(15);
Terminated

相应的日志文件条目

[2021-04-02 11:14:20 UTC] psql postgres postgres LOG:  00000: statement: SELECT pg_sleep(15);
[2021-04-02 11:14:25 UTC] psql postgres postgres FATAL:  08006: connection to client lost
[2021-04-02 11:14:25 UTC] psql postgres postgres STATEMENT:  SELECT pg_sleep(15);
[2021-04-02 11:14:25 UTC] psql postgres postgres LOG:  00000: disconnection: session time: 0:00:34.703 user=postgres database=postgres host=127.0.0.1 port=38594

这里,客户端断开连接是在 check_client_connection_interval 过期后立即检测到的,并且远早于查询终止的时间。

分类

GUC 配置项

另请参阅

tcp_user_timeout

反馈

提交任何关于 "client_connection_check_interval" 的评论、建议或更正 此处