client_connection_check_interval
用于检查客户端连接是否仍然活动的配置参数
client_connection_check_interval
是一个用于检查客户端连接是否仍然活动的配置参数,前提是底层操作系统支持此功能。
client_connection_check_interval
在 PostgreSQL 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 (PostgreSQL 16)
设置 | 0 |
单位 | 毫秒 |
类别 | 连接和身份验证 / TCP 设置 |
简短描述 | 设置在运行查询时检查断开连接的时间间隔。 |
额外描述 | |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认值 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行号 | |
待重启 | 否 |
client_connection_check_interval (PostgreSQL 15)
设置 | 0 |
单位 | 毫秒 |
类别 | 连接和身份验证 / 连接设置 |
简短描述 | 设置在运行查询时检查断开连接的时间间隔。 |
额外描述 | |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认值 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行号 | |
待重启 | 否 |
client_connection_check_interval (PostgreSQL 14)
设置 | 0 |
单位 | 毫秒 |
类别 | 连接和身份验证 / 连接设置 |
简短描述 | 设置在运行查询时检查断开连接的时间间隔。 |
额外描述 | |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认值 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行号 | |
待重启 | 否 |
更改历史记录
- PostgreSQL 14
- 添加 (提交 c30f54ad)
示例
当 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
过期后立即检测到的,并且远早于查询终止的时间。
参考
- PostgreSQL 14 文档: client_connection_check_interval
分类
另请参阅
tcp_user_timeout