为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:V7.6.0
【操作系统】:kylin
【CPU】:aarch64
【问题描述】*:线上生产环境,访问Dm数据库的时候,出现连接已重置,这个问题并不是每个查询都会出现。
sql是一个没有参数分组的查询语句,查询的数据量一万五左右。
配置的参数配置为下图所示。
1、使用数据库服务器上,$DM_HOME/drivers 目录下的驱动包
2、查看会话数是否不够
select * from v$parameter where name='MAX_SESSIONS';
3、检查是否用户设置了最大空闲时间参数,导致超时断开。
select b.username 账号,b.password_versions 密码策略,a.sess_per_user 同时拥有的会话数,a.conn_idle_time 会话访问服务器的时间上限 from sysusers a,dba_users b where a.id=b.user_id;
4、从应用服务器长 ping 数据库服务器,网络是否波动也会导致此报错
5、检查应用的连接池设置,是否设置了断开后自动连接
6、以上都检查后,可以开启 JDBC 日志进一步分析(开启参考:https://eco.dameng.com/community/article/ea82c4859f3a509443aea48f1ae4ff9c)。
推荐增加 testWhileIdle 和 timeBetweenEvictionRunsMillis 配合,验证连接有效性。