达梦数据库-应用会话关闭没释放导致连接超出最大会话数限制而报错
背景:数据库器重启之后,有个备机磁盘挂了导致读写分离集群起不来,修复完集群正常重启之后,应用端界面有些模块可以登录,有些无法登录,{不同子模块用户有一些不一样,对应的应用服务器也不一样)日志提示服务器模式不匹配。

1 首先想到是不是驱动问题,但之前正常,可以排除驱动包问题
2 其次,应用服务器重启(用户只是中间件服务重启),问题依旧
3 查看数据库,在登录客户端有时会提示网络通信异常,多登录几次可以成功(检查网络,用户文件打开数,数据库服务进程文件打开数都正常)



4 查看实例日志,显示最大连接数限制

5 查看最大会话数及语句句柄设置大小,(正常来说,1500明显是足够使用的),将max_sessions修改到5000,只是登录情况好点,有些应用模块还是登录不了
select * from v$dm_ini where para_name like 'MAX_SESSION%';

6 查看应用连接情况(如下图所示25和46两个服务器都连接数明显偏大,查询也没那么多活动会话。应用会话连接数没释放)
select clnt_ip,count(*) from v$sessions group by clnt_ip;

7 将对应应用服务器重启,再查询,看是否其他服务器也会出现上千会话数,如果有将对应服务器也重启,到最后查询结果如下,登录应用操作界面,各模块都正常无报错

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了