反馈已提交

网络繁忙

连接池满问题

  • 文档创建者:文档助手1
  • 历史版本:15
  • 最近更新:Scyalcire 于 2020-12-25
  • 1. 问题描述

    若日志报 ORA-12519 TNS:no appropriate service handler found,是数据库连接失败的错误,12519 错误是监听不能提供服务。

    2. 原因

    原因是我们定义数据连接后,点击连接时,此时会用掉一个连接池中的一个连接。
    而在定义数据集后,点击预览按钮,此时连接池就会分配连接,可能会使用之前那个连接(之前的连接已释放),或分配一个其他的连接或新建一个连接。
    若此时连接池所有连接都已用完,就会报如下错误:

    当客户请求数据库连接时,首先是查看连接池中是否有空闲连接(指当前没有分配出去的连接)。
    假如存在空闲连接,则把连接分配给用户,并作相应的处理(即标记该连接为正在使用,引用计数加 1)。
    假如没有空闲连接,则查看当前所开的连接数是不是已经达到 maxConn(最大连接数),若没达到就重新创建一个连接给请求的客户;
    若达到就按设定的 maxWaitTime(最大等待时间)进行等待;
    若等待 maxWaitTime 后,仍没有空闲连接,就抛出无空闲连接的异常给用户。

    3. 解决方案

    若您在FR 连接池属性 的设置中,已将最大连接数设置得过大,还出现如上的报错,此时通常就是数据库进程(processes)达到上限导致的,可增大数据库中的连接数目来解决此问题。如下在数据库中修改最大连接数:

    查看当前的连接数

    select count(*) from V$process;

    查看数据库允许的最大连接数

    select value from V$parameter where name='processes';

    修改最大连接数为1000

    alter system set processes=1000 scope=spfile

    重启数据库,再查询最大连接数,数字改变就表示已修改成功。

    说明:当客户释放数据库连接时,先判定该连接的引用次数是否已超过规定值,假如超过就删除该连接,并判定当前连接池内总的连接数是否小于 minConn(最小连接数),若小于就将连接池布满;假如没超过就将该连接标记为开放状态,可供再次复用。可看出正是这套策略保证了数据库连接的有效复用,避免频繁地建立、释放连接所带来的系统资源开销。

    附件列表


    主题: 数据准备
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持