idle_session_timeout
是一个 配置参数,用于确定何时终止空闲会话。默认情况下禁用。
idle_session_timeout
在 PostgreSQL 14 中添加。
用法
idle_session_timeout
如果设置为非零值,则任何在事务外部处于空闲状态的会话都将自动终止。
有关自动终止事务内处于空闲状态的会话的信息,请参阅 idle_in_transaction_session_timeout
(自 PostgreSQL 9.6 起可用)。
默认值
idle_session_timeout
的默认值为:0
(禁用)。
按 PostgreSQL 版本分列的详细信息
idle_session_timeout (PostgreSQL 17)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置在非事务状态下查询之间允许的最大空闲时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
idle_session_timeout (PostgreSQL 16)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置在非事务状态下查询之间允许的最大空闲时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
idle_session_timeout (PostgreSQL 15)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置在非事务状态下查询之间允许的最大空闲时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
idle_session_timeout (PostgreSQL 14)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置在非事务状态下查询之间允许的最大空闲时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
变更历史
- PostgreSQL 14
- 添加 (提交 9877374b)
示例
postgres=# SHOW idle_session_timeout; idle_session_timeout ---------------------- 5s (1 row)
... 至少 5 秒钟什么也不做 ...
日志文件条目将类似于以下内容
[2021-01-07 09:49:48 UTC] psql postgres postgres LOG: 00000: statement: SHOW idle_session_timeout; [2021-01-07 09:49:53 UTC] psql postgres postgres FATAL: 08P02: terminating connection due to idle-session timeout [2021-01-07 09:49:53 UTC] psql postgres postgres LOG: 00000: disconnection: session time: 0:00:07.060 user=postgres database=postgres host=::1 port=33454
尝试在同一客户端 (psql) 中执行命令将导致错误消息,报告超时并重置连接
postgres=# SELECT 1; FATAL: terminating connection due to idle-session timeout server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: Succeeded. postgres=#
参考文献
- PostgreSQL 文档: idle_session_timeout
有用链接
- pgsql-hackers 讨论主题: 终止空闲会话