达梦数据库专用机报错会话读取数据页数超过资源限制设置值
应用报错:专用机报错会话读取数据页数超过资源限制设置值
1、 问题描述
某单位程序中某个账户连接操作达梦数据库,日志中报错“会话读取数据页数超出超过资源限制值”,程序抛出异常处理并回退事务。此类问题一般出现在安全版ZYJ数据库上,像通用机的企业版数据库所有新建用户的资源限制默认都是无限制
2、解决方法
检查该业务用户的资源限制是否合理(尤其关于会话读取数据页总量和每次请求的数据页量)
-- 查询用户资源限制项(CPU、内存、读取页数) SELECT B.NAME AS "用户名", A.CPU_PER_CALL AS "用户的一个请求能够使用的 CPU 时间上限(秒)", A.CPU_PER_SESSION AS "一个会话允许使用的 CPU 时间上限(秒)", A.MEM_SPACE AS "会话占有的私有内存空间上限(MB)", A.READ_PER_CALL AS "每个请求能够读取的数据页数", A.READ_PER_SESSION AS "一个会话能够读取的总数据页数上限", A.INFO1 AS "一个会话连接、访问和操作数据库服务器的时间上限(10分钟)" FROM SYSRESOURCES A, SYSOBJECTS B WHERE B.TYPE$ ='UR' AND B.SUBTYPE$='USER' AND B.ID = A.ID;
注意:查询结果中字段参数值为0表示无限制。
3 、重新调整该业务用户的资源限制(根据实际情况设置某资源项)
此处报错主要是因为磁盘读取数据页报错。
使用SYSSSO用户登录达梦数据库(管理工具或disql)执行以下SQL语句即可解决问题。
注意:建议不要在安全版的管理工具图形界面上设置资源限制,或许遇到意想不到BUG。
ALTER USER 用户名 LIMIT READ_PER_SESSION UNLIMITED, READ_PER_CALL UNLIMITED;
再次验证已解决