idle_in_transaction_session_timeout

一个配置参数,用于确定会话在事务打开后多久终止。

idle_in_transaction_session_timeout 是一个 配置参数,用于确定在事务打开后多久终止会话。默认情况下禁用。

idle_in_transaction_session_timeoutPostgreSQL 9.6 中添加。

默认值

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

按PostgreSQL版本查看详情

idle_in_transaction_session_timeout (PostgreSQL 18)

设置 0
单位 毫秒 (ms)
类别 客户端连接默认值/语句行为
简短描述 设置在事务中查询之间允许的最大空闲时间。
额外描述 值为 0 将关闭超时。
上下文 用户
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
等待重启

文档: idle_in_transaction_session_timeout

idle_in_transaction_session_timeout (PostgreSQL 17)

设置 0
单位 毫秒 (ms)
类别 客户端连接默认值/语句行为
简短描述 设置在事务中查询之间允许的最大空闲时间。
额外描述 值为 0 将关闭超时。
上下文 用户
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
等待重启

文档: idle_in_transaction_session_timeout

idle_in_transaction_session_timeout (PostgreSQL 16)

设置 0
单位 毫秒 (ms)
类别 客户端连接默认值/语句行为
简短描述 设置在事务中查询之间允许的最大空闲时间。
额外描述 值为 0 将关闭超时。
上下文 用户
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
等待重启

文档: idle_in_transaction_session_timeout

idle_in_transaction_session_timeout (PostgreSQL 15)

设置 0
单位 毫秒 (ms)
类别 客户端连接默认值/语句行为
简短描述 设置在事务中查询之间允许的最大空闲时间。
额外描述 值为 0 将关闭超时。
上下文 用户
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
等待重启

文档: idle_in_transaction_session_timeout

idle_in_transaction_session_timeout (PostgreSQL 14)

设置 0
单位 毫秒 (ms)
类别 客户端连接默认值/语句行为
简短描述 设置在事务中查询之间允许的最大空闲时间。
额外描述 值为 0 将关闭超时。
上下文 用户
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
等待重启

文档: idle_in_transaction_session_timeout

idle_in_transaction_session_timeout (PostgreSQL 13)

设置 0
单位 毫秒 (ms)
类别 客户端连接默认值/语句行为
简短描述 设置任何空闲事务允许的最大持续时间。
额外描述 值为 0 将关闭超时。
上下文 用户
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
等待重启

文档: idle_in_transaction_session_timeout

idle_in_transaction_session_timeout (PostgreSQL 12)

设置 0
单位 毫秒 (ms)
类别 客户端连接默认值/语句行为
简短描述 设置任何空闲事务允许的最大持续时间。
额外描述 值为 0 将关闭超时。
上下文 用户
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
等待重启

文档: idle_in_transaction_session_timeout

idle_in_transaction_session_timeout (PostgreSQL 11)

设置 0
单位 毫秒 (ms)
类别 客户端连接默认值/语句行为
简短描述 设置任何空闲事务允许的最大持续时间。
额外描述 值为 0 将关闭超时。
上下文 用户
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
等待重启

文档: idle_in_transaction_session_timeout

idle_in_transaction_session_timeout (PostgreSQL 10)

设置 0
单位 毫秒 (ms)
类别 客户端连接默认值/语句行为
简短描述 设置任何空闲事务允许的最大持续时间。
额外描述 值为 0 将关闭超时。
上下文 用户
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
等待重启

文档: idle_in_transaction_session_timeout

idle_in_transaction_session_timeout (PostgreSQL 9.6)

设置 0
单位 毫秒 (ms)
类别 客户端连接默认值/语句行为
简短描述 设置任何空闲事务允许的最大持续时间。
额外描述 值为 0 将关闭超时。
上下文 用户
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行号  
等待重启

文档: idle_in_transaction_session_timeout

更改历史

源代码

GUC变量在 src/backend/storage/lmgr/proc.c

int                     IdleInTransactionSessionTimeout = 0;

GUC配置在 src/backend/utils/misc/guc.c

	{
		{"idle_in_transaction_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
			gettext_noop("Sets the maximum allowed duration of any idling transaction."),
			gettext_noop("A value of 0 turns off the timeout."),
			GUC_UNIT_MS
		},
		&IdleInTransactionSessionTimeout,
		0, 0, INT_MAX,
		NULL, NULL, NULL
	},

超时在PostgresMain() (src/backend/tcop/postgres.c) 中启动和执行。

示例

演示idle_in_transaction_session_timeout 的效果,设置一个非现实的短时间5s

postgres=# SET idle_in_transaction_session_timeout = '5s';
SET

postgres=# SHOW idle_in_transaction_session_timeout;
 idle_in_transaction_session_timeout 
-------------------------------------
 5s
(1 row)
postgres=# SELECT clock_timestamp(); clock_timestamp ---------------------------- 2019-08-06 16:32:44.603+01 (1 row) postgres=# BEGIN ; BEGIN

… *至少等待5秒钟* …

postgres=*# SELECT 1;
FATAL:  terminating connection due to idle-in-transaction 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=# SELECT clock_timestamp();
       clock_timestamp        
------------------------------
 2019-08-06 16:32:52.92625+01
(1 row)

服务器日志文件中将有一条类似于以下内容的条目

[2019-08-06 16:32:50 CET] psql postgres postgres FATAL:  25P03: terminating connection due to idle-in-transaction timeout

分类

GUC配置项用户和角色

参见

idle_session_timeoutstatement_timeouttransaction_timeout

反馈

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