zoukankan      html  css  js  c++  java
  • DBCP object created 日期 by the following code was never closed:

    1、分析    

      看到标题 DBCP 首先想到的肯定是 数据库连接池哪方面有问题,那么先别着急去解决,不要一股脑就钻进逻辑代码中,然后启用调试就开始一步一步

    的分析。我们首先要做的就是想,想想数据库连接池,在项目中是如何实现的,那么不管你或早或晚,都会想到数据库连接池相关的配置文件和代码。那么

    问题来了,是否是配置文件配置的有问题(挖掘技术哪家强?)?

      那么先来分析下各项连接池配置的属性:

      #回收被遗弃的(一般是忘了释放的)数据库连接到连接池中。
      dataBase.removeAbandoned =false

      # 数据库连接过多长时间不用将被视为被遗弃而收回连接池中。
      dataBase.removeAbandonedTimeout = 30

      # 将被遗弃的数据库连接的回收记入日志。
      dataBase.logAbandoned = false

      #连接池的最大数据库连接数,设为0 表示无限制。
      dataBase.maxActive = 200

      #数据库连接的最大空闲连接数。超过此空闲连接数,,数据库连接将被标记为不可用,然后被释放。设为0 表示无限制。
      dataBase.maxIdle=40

      #最大建立连接等待时间。如果超过此时间将接到异常。设为-1 表示无限制
      dataBase.maxWait=10000

      #取得、返回对象和空闲时是否进行验证,检查对象是否有效,默认都为false即不验证
      dataBase.testOnBorrow=true
      dataBase.testWhileIdle=true
      dataBase.testOnReturn=true
      dataBase.validationQuery=select 1 from dual

      说明:

      1. #回收被遗弃的(一般是忘了释放的)数据库连接到连接池中。
      dataBase.removeAbandoned =false

      如果这个值为true一般是用来调试的时候用的,正式发布后应该改为false,2. # 将被遗弃的数据库连接的回收记入日志。 

      dataBase.logAbandoned = false

      这个如果设置为true就会引起如下错误:
      DBCP object created 日期 by the following code was never closed:
      java.lang.Exception
      

      3.#连接池的最大数据库连接数,设为0 表示无限制。 

      dataBase.maxActive = 200

      #数据库连接的最大空闲时间。超过此空闲时间,数据库连接将被标记为不可用,然后被释放。设为0 表示无限制。
      dataBase.maxIdle=40

      会有可能出现:Cannot get a connection, pool error Timeout waiting for idle object这样的错误

      (转载网上资料)  

    2、深入

      不小心暴露的解决方法,那么 到底是为什么呢?

      原因是:dataBase.removeAbandoned = true  

      设置为true以后,使用这个配置将会使用AbandonedObjectPool,同时上方也提到过,此配置只建议在开发阶段使用

      因为,AbandonedObjectPool能帮你发现占用连接过长的代码,比如LOG信息,说明getCustomerOnline占用连接的时间

      超过了removeAbandonedTimeout设定的时间,所以设置dataBase.removeAbandoned = false就行了,

      AbandonedObjectPool只在开发使用,在后续的版本会去掉,并且现在的API都弃用(不赞成)了,因此在使用此

      功能的时候多多注意。

      

  • 相关阅读:
    ubuntu安装redis
    ubuntu安装mongodb
    IO-MYSQL的理解
    HTTP协议理解
    linux面试
    mysql引擎事物支持
    ubuntu安装scrapy方法
    mysql关系型和非关系型区别
    mysql引擎
    vue优势
  • 原文地址:https://www.cnblogs.com/sicd/p/4053780.html
Copyright © 2011-2022 走看看