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都弃用(不赞成)了,因此在使用此

  功能的时候多多注意。

  

DBCP object created 日期 by the following code was never closed:的更多相关文章

  1. Object Detection with 10 lines of code - Image AI

    To perform object detection using ImageAI, all you need to do is Install Python on your computer sys ...

  2. Java常用类库(一) : Object 和日期类的简单使用

    顶哥说:Java是世界的,但项目不是! Java有非常多的类库,而我们不会也不用都去学习,毕竟你也仅仅掌握了你手机20%的功能却足够你使用,不是吗? 今天介绍以下类: l  Object l  Dat ...

  3. tomcat数据源配置DBCP

    原文件: https://www.cnblogs.com/sicd/p/4053780.html DBCP object created 日期 by the following code was ne ...

  4. Tomcat回收连接

    最近公司一个JDK1.4的老项目升级了JDK1.6后BUG不断,最可恶的连接池被占满. 因为是使用tomcat的连接池所以在config下中添加 <Resource name="jdb ...

  5. JavaEE连接池泄漏问题检测Oracle数据库

    1.项目环境 项目是典型的轻量级JavaEE项目,使用SSH框架构建,数据源使用DBCP管理,和Spring进行了整合. 项目数据库使用Oracle数据库. 项目DBCP配置内容如下 ###### D ...

  6. Tomcat连接池配置

    今日做了个小网站,数据量不大,但当发布到虚拟主机上之后,接连不断的遇到各种问题. 被折磨了数日后,在网上查了大量的相关资料,现总结如下. 一.项目在上传到远程服务器的过程中,有可能丢失文件,或文件内容 ...

  7. Chapter 3 Discovering Classes and Object

    Chatper 3 Discovering Classes and Object Exercises: 1.What is a class? A class is a template for man ...

  8. Clean Code – Chapter 6 Objects and Data Structures

    Data Abstraction Hiding implementation Data/Object Anti-Symmetry Objects hide their data behind abst ...

  9. django datetime format 日期格式化

    django datetime format 日期格式化 www.jx-lab.com python 中 date,datetime,time对象都支持strftime(format)方法,但有一些区 ...

随机推荐

  1. C++中关于new及动态内存分配的思考

    如何实现一个malloc? malloc_tutorial.pdf ———————————————————————————————————— 我们知道,使用malloc/calloc等分配内存的函数时 ...

  2. [洛谷P4341][BJWC2010]外星联络

    题目大意:给你一个长度为$n(n\leqslant3\times10^3)$的字符串,要你求出其中出现次数大于$1$的子串,并按字典序输出次数. 题解:建$SAM$后求出每个点的$size$,最后按字 ...

  3. 【MVVM Dev】ComboBox嵌入CheckBox的显示问题

    一.前言 在ComboBox中嵌入若干个CheckBox时,当我们勾选一些CheckBox,ComboBox会显示相应的勾选项. 例如:CheckBox项有A,B,C   那么勾选这三项,ComboB ...

  4. 【CF484E】Sign on Fence(主席树)

    [CF484E]Sign on Fence(主席树) 题面 懒得贴CF了,你们自己都找得到 洛谷 题解 这不就是[TJOI&HEOI 排序]那题的套路吗... 二分一个答案,把大于答案的都变成 ...

  5. hdu5279 YJC plays Minecraft 【分治NTT】

    题目链接 hdu5279 题解 给出若干个完全图,然后完全图之间首尾相连并成环,要求删边使得两点之间路径数不超过\(1\),求方案数 容易想到各个完全图是独立的,每个完全图要删成一个森林,其实就是询问 ...

  6. scala(三)

    一.面向对象编程——类 1.定义一个简单的类 class HelloWorld { private var name = "leo" def sayHello() { print( ...

  7. Amphetamine的cf日记

    之前挂上的 今天填坑 2018.2.14 #462 A 给两个集合,B分别可以从一个集合中选一个数,B想乘积最大,A想最小,A可以删除一个第一个集合中的元素,问最小能达到多少. 这题..水死啦.我居然 ...

  8. 用一次FastDFS

    FastDFS c编写的分布式文件系统,用于搭建文件服务器集群提供文件的上传.下载 特点 冗余备份 负载均衡 线性扩容 高性能.高可用 FastDFS架构 Tracker server 负载均衡和调度 ...

  9. conda 虚拟环境

    一.jupyter notbook (1)需要安装: conda install ipykernel (2)首先激活对应的conda环境 source activate 环境名称 (3)将环境写入no ...

  10. 网络流入门--最大流算法Dicnic 算法

    感谢WHD的大力支持 最早知道网络流的内容便是最大流问题,最大流问题很好理解: 解释一定要通俗! 如右图所示,有一个管道系统,节点{1,2,3,4},有向管道{A,B,C,D,E},即有向图一张.  ...