暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【干货攻略】应用报错无法获取连接问题处理

达梦E学 2023-12-21
111



前提

数据库会话没达到限制,应用报错无法打开连接?本期重点介绍该报错的处理方式。





问题描述


近日,收到某项目反馈,应用报错,连接不上数据库。如下图所示:




问题排查


从图上看到报错不能新建连接,也不是数据库驱动抛出的错误。
(1)为保险起见,登录数据库查询数据库的最大会话数,和设置的最大会话数,看是否有超过。
    SQL> select * from v$dm_ini where para_name like 'MAX_SESSIONS'; --结果是1500
      SQL> select count(*) from v$sessions; --结果是482
      从查询出的结果来看,数据库的会话数没有超过限制,所以排除这个原因。
      (2)既然数据库连接数没超,那么就需要排查应用设置的连接池多大,是否有超过。询问应用人员,得知连接池里面设置的最大连接数是300。
      (3)进一步确认每台应用服务器的连接数在数据库里面是否达到限制。这里通过客户端的主机名或主机ip来分组查询。
        SQL> select clnt_host,count(*) from v$sessions group by clnt_name order by 1 desc;

        从图上可以看到有个应用已经达到连接池设置的300限制值了。






        问题解决


        至此故障原因已经找到,应用不能连接数据库,是因为某个应用的连接数达到连接池限制值导致,需要释放连接后才能获取到连接,才能登录数据库。这里需要交给应用人员进一步分析为何没有释放连接。

        以上为本期分享,希望能带给大家帮助。想要了解更多往期干货,可访问页面最下方#达梦技术干货攻略#合集。


        点击了解相关分享:

        【干货攻略】OUT OF SPACE报错处理

        【干货攻略】间隔分区表merge into报错-2903:间隔分区不支持自动扩展

        【干货攻略】SQL优化之like与in

        【开班通知】DM8-DCP线上培训班招生中(2023-12月)

        关于举办2023年国产数据库师资能力提升专项培训(中级)研修班的通知



        END

        达梦知识普及

        扫码关注我们
        学习共享
        知识普及

        作者:CSW
        审核:林夕
        排版:达梦培训中心
        原文:引用自“达梦在线服务平台”



        文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论