【DM版本】:DM8
【操作系统】:麒麟v10-linux
【CPU】:80C256G
【问题描述】*:我司使用的用友财务软件,数据库是达梦,前台频繁报“连接尚未建立或已经关闭”这种错误,报错信息见截图,已经更换过数据库驱动,数据库sessions值设置的3000,并且已做过数据库服务器迁移,任然无效,请问这种问题是什么原因?怎么排查?f131391c57714ce9bcdcc61c7a899bb4.jpg
这个和session满估计没关系。一般这种错误,都是session已经断开了。但是在使用这个session的时候,数据库连接池没有检查有效性。建议看看 中间件关于 session空闲时间的相关参数。
此报错为连接断开,主要排查为连接保持方面
查看数据库中用户是否有会话空闲时间限制
服务器、中间件连接池、网络层面 等是否有会话空闲时间限制,从而中断连接
检查下如下参数:
<!-- 示例:常见配置调整 -->
<property name="maxPoolSize" value="100"/>
<property name="minPoolSize" value="10"/>
<property name="maxIdleTime" value="600"/>
<property name="checkoutTimeout" value="30000"/>
1.DM 数据库的安装目录里已经有 JDBCDRIVER18,是否使用的自带的驱动包。
2.修改 dm.ini 里面的 max_sessions 参数或是否有对数据库的监控,检查是否达到会话数上限。
3.检查是否用户设置了最大空闲时间参数,导致超时断开。
4.检查数据库服务器到应用服务器的网络波动,从应用服务器 ping 数据库服务器 -t,网络波动也会导致此报错。
5.检查连接池设置,是否设置了断开后自动连接。
若以上都没问题建议开启 JDBC 日志。出现报错后将生成的日志转发给服务部同事分析。
打开JDBC日志的方法
修改url连接串
jdbc:dm://数据库ip:端口?logDir=日志路径&logLevel=all
或者
jdbc:dm://服务名?logDir=日志路径&logLevel=all