KingbaseES V8R6 空闲事务会话超时自动终止机制
背景
如果会话在事务中停留的时间过长,则允许自动终止空闲会话。可以由配置参数idle_in_transaction_session_timeout 事务处于空闲状态的时长,它有助于防止被遗忘的交易事务,避免长期持有锁,防止vacuum清理时间很长。
而且对于长时间不释放的连接会话,它所占用的本地内存也不会释放。所以,如果这类会话很多就会对服务器内存造成耗尽的风险。
实验
idle_in_transaction_session_timeout = 10000,参数单位为毫秒,这里设置 idle in transaction 空闲事务超时时间为 10 秒。
开启会话一:
test=# begin;
BEGIN
test=# select 2;
?column?
----------
2
(1 row)
开启会话二:
select * from pg_stat_activity where pid<>pg_backend_pid();
datid | 16052
datname | test
pid | 13447
usesysid | 10
usename | system
application_name | kingbase_*&+_
client_addr |
client_hostname |
client_port | -1
backend_start | 2022-10-18 11:04:31.894706+08
xact_start | 2022-10-18 11:06:48.877390+08
query_start | 2022-10-18 11:06:56.214833+08
state_change | 2022-10-18 11:06:56.214963+08
wait_event_type | Client
wait_event | ClientRead
state | idle in transaction
backend_xid |
backend_xmin |
query | select 2;
backend_type | client backend
过10秒钟以后,就查不到这个事务了,再回到会话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.
You have mail in /var/spool/mail/kingbase
这就说明参数生效了,超过10S的空闲事务会话超时中断。
数据库日志可以查看到:
2022-10-18 11:17:28.940 CST,"system","test",13447,"[local]",634e1ab2.4b42,1,"idle in transaction",2022-10-18 11:17:06 CST,10/324,0,FATAL,25P03,"terminating connection due to idle-in-transaction timeout",,,,,,,,,"kingbase_*&+_"
13447进程连接超时被中断。
总结:
以上演示了参数idle_in_transaction_session_timeout参数的功能。由此引申出另外一个参数,client_idle_timeout,这两个参数的区别在于client_idle_timeout规定了空闲会话超时中断时间,它不存在于事务里,默认是0,表示关闭。两个参数应该根据实际应用情况配合使用。
KingbaseES V8R6 空闲事务会话超时自动终止机制的更多相关文章
- 我向PostgreSQL社区贡献的功能:空闲会话超时
经过约八个月的努力,终于完成了 PostgreSQL 空闲会话超时断开的功能. 该功能将在版本 14 中发布. 这是我第一次向 PostgreSQL 提供功能,虽然之前也有向社区提供过补丁,但是这次整 ...
- KingbaseES V8R6 ksql 关闭自动提交
背景 用过oracle或mysql的人都知道,做一个dml语句,如果发现做错了,还可以rollback,但在Kingbase ksql 中,如果执行一个dml,没有先运行begin; 的话,一执行完就 ...
- mysql 8/oracle 登录失败处理,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施
1 mysql 8 先安装密码插件 install plugin CONNECTION_CONTROL soname 'connection_control.so';install plugin CO ...
- 解决SecureCRT超时自动断开的问题
http://blog.csdn.net/hcwzq/article/details/7944941. http://discuzx.sinaapp.com/mediawiki-chapter.htm ...
- mysql 事务锁超时时间 innodb_lock_wait_timeout
mysql 事务锁超时时间 innodb_lock_wait_timeout: # 查询全局等待事务锁超时时间 SHOW GLOBAL VARIABLES LIKE 'innodb_lock_wait ...
- ESXi 6.5 总是会话超时
ESXi 6.5 客户端Web界面会话超时 在VMware ESXi 6.5中,主机客户端Web界面会话每15分钟自动超时一次,然后您必须再次重新登录ESXi主机客户端Web界面. 要避免这种繁琐的情 ...
- 如何解决SSH连接Linux超时自动断开?
最近项目开发中用到云服务器,部署了MySQL,开发团队总是反映MySQL过一会儿就断开连接了,必须手动重连才可以.反映越来越强烈,已经到了影响开发进度的高度了,必须解决! 查了资料,这个可能和SSH超 ...
- Solaris10 如何设置空闲ssh连接超时断开
在ssh的配置文件中有2个参数可以控制空闲连接超时断开.这2个参数是ClientAliveCountMax和ClientAliveInterval. Solaris10上设置空闲ssh连接超时断开的方 ...
- C#中分布式事务的超时处理问题
事务是个很精妙的存在,我们在数据层.服务层.业务逻辑层等多处地方都会使用到. 在这里我只说下TransactionScope这个微软推荐使用的隐式事务.它是从Framework 2.0开始引入的一个事 ...
- angular访问后台服务及监控会话超时的封装实现
以前一直没有想过写一些东西来把项目中用到的知识点及技术实现做一个归纳整理并分享出来.现在打算逐渐的把项目中的一些东西整理并分享出来,与大家共勉! angular本身自带访问组件http和httpcli ...
随机推荐
- 解决Springboot发起https请求报错:sun.sec urity.validator.ValidatorException: PKIX path building failed
问题描述 最近开发项目中在springboot接口中调用第三方https接口,后台日志报错: sun.sec urity.validator.ValidatorException: PKIX path ...
- linux如何发送电子邮件
使用linux时,有时我们想发邮件给朋友或同事,可不可以通过命令行直接发呢? 想通过linux监控网站或者系统状况并自动报警,如何使用脚本发出邮件给外部邮箱呢? 不 ...
- Flask学习(三)
数据库操作 数据库驱动(drivers)模块:pymysql.MySQLDB ORM ORM 全拼Object-Relation Mapping,中文意为 对象-关系映射.主要实现模型对象到关系数据库 ...
- 适配http分发Directory.Build.props文件,需要替换默认的微软sdk:8.0映像
背景 我们是把Directory.Build.props及其Import的文件,都放在http://dev.amihome.cn 那么docker build的时候,也是需要下载Directory.B ...
- 八: Mysql配置文件的使用
# Mysql配置文件的使用 1. 配置文件格式 与在命令行中指定启动选项不同的是,配置文件中的启动选项被划分为若干个组,丽个组有一个组名, 用中括号 [ ]扩起来,像这样: 像这个配置文件里就定义了 ...
- GDB调试入门笔记
目录 What? Why How 安装GDB 安装命令 查看是否安装成功 调试简单的程序 预备一个程序 调试 使用 break info list next print step 一些小技巧 在gdb ...
- YAML 语法简介与 C# 操作示例
〇.简介 YAML(Yet Another Markup Language)另一种标记语言. YAML 是一种较为人性化的数据序列化语言,可以配合目前大多数编程语言使用.YAML 的语法比较简洁直观, ...
- redis---面经
redis 偏应用的总结:redis 应用 Redis是什么? Redis是什么 对象 字符串 自增,键值对. SDS数据结构记录长度,已经使用,和总共长度,并且提前多余出容量,防止一直扩容缩容. 字 ...
- 解决 Steam for Linux 部分 Valve 游戏中文显示问题/军团要塞2的字体显示问题
解决 Steam for Linux 部分 Valve 游戏中文显示问题 发表于 Apr 7th 2019 | 分类于 Keep Digging Steam for Linux 上有许多好玩的免费游戏 ...
- 安装debian后,发现进入不了root
回想了一下,自己安装的时候,没有设置root密码! 解决方法: sudo passwd root 随后设置密码: 再次su 就可以进入root目录了!