client_connection_check_interval

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

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

client_connection_check_intervalPostgreSQL 14 中被添加。

用法

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

目前仅 Linux 支持此功能。

默认值

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

按 PostgreSQL 版本详细信息

client_connection_check_interval (PostgreSQL 19)

设置 0
单位 毫秒
类别 连接和身份验证 / TCP 设置
简短描述 设置在运行查询期间检查断开连接的时间间隔。
扩展描述 0 禁用连接检查。
上下文 user
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源行  
需要重启 false

文档: client_connection_check_interval

client_connection_check_interval (PostgreSQL 18)

设置 0
单位 毫秒
类别 连接和身份验证 / TCP 设置
简短描述 设置在运行查询期间检查断开连接的时间间隔。
扩展描述 0 禁用连接检查。
上下文 user
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源行  
需要重启 false

文档: client_connection_check_interval

client_connection_check_interval (PostgreSQL 17)

设置 0
单位 毫秒
类别 连接和身份验证 / TCP 设置
简短描述 设置在运行查询期间检查断开连接的时间间隔。
扩展描述  
上下文 user
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源行  
需要重启 false

文档: client_connection_check_interval

client_connection_check_interval (PostgreSQL 16)

设置 0
单位 毫秒
类别 连接和身份验证 / TCP 设置
简短描述 设置在运行查询期间检查断开连接的时间间隔。
扩展描述  
上下文 user
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源行  
需要重启 false

文档: client_connection_check_interval

client_connection_check_interval (PostgreSQL 15)

设置 0
单位 毫秒
类别 连接和身份验证 / 连接设置
简短描述 设置在运行查询期间检查断开连接的时间间隔。
扩展描述  
上下文 user
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源行  
需要重启 false

文档: client_connection_check_interval

client_connection_check_interval (PostgreSQL 14)

设置 0
单位 毫秒
类别 连接和身份验证 / 连接设置
简短描述 设置在运行查询期间检查断开连接的时间间隔。
扩展描述  
上下文 user
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源行  
需要重启 false

文档: 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”的任何评论、建议或更正请在此处 提交