java holder详解_connection holder is null 异常详解
文章转自:http://my.oschina.net/haogrgr/blog/224010 非常感谢原作者,思路非常清晰
今天在一台配置很低的机器上运行批量更新的程序~~~
大概跑了三十分钟~~~这配置~~~这程序~~~
然后华丽丽的报异常了~~~
具体异常是这样的,
这个是最初的异常, 后面还有一大批异常,
说什么holder为空
第一眼看到holder就像到Spring的源码, 里面到处是holder(笑)
但是这里的holder不是Spirng里面的,是Druid的
这个holder大概是用来hou住连接池里面的连接的.
然后为什么为空了呢? 目测是哪个链接坏了, 或者被意外的关闭了...
根据异常调源码 at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:942)
看不出啥来. 只能将日志继续看看, 还是看不出啥来
然后看了上面代码几遍后, 老觉得 isRemoveAbandoned() 这个方法有鬼.
查看调用处,:
恩, 这个DestroyConnectionThread非常可疑, 跳
继续
擦, 这里不对头, timeMillis >= removeAbandonedTimeoutMillis timeMillis 这个是getConnection()被调用时的时间
意思就是一个连接被get后, 超过了 removeAbandonedTimeoutMillis这么久我就弄死你.
然后继续找removeAbandonedTimeoutMillis 这玩意在哪里设置的 ,最后发现是在
初始化配置的这里设置的, 这两个参数的大概意思就是,
通过datasource.getConnontion() 取得的连接必须在removeAbandonedTimeout这么多秒内调用close(),要不我就弄死你.(就是conn不能超过指定的租期)
然后调成2个小时~~~
然后程序成功跑完~~~华丽丽的等了50分钟
总结:
连接池为了防止程序从池里取得连接后忘记归还的情况, 而提供了一些参数来设置一个租期, 使用这个可以在一定程度上防止连接泄漏
但是如果你的业务真要跑这么久~~~~那还是注意下这个设置.
java holder详解_connection holder is null 异常详解相关推荐
- java全栈系列之JavaSE-面向对象(异常详解)043
Exception可以被程序处理的异常 异常指的是程序在运行中出现了无法预料的状况,异常发生在程序运行期间.程序中可以选择捕获异常,也可以不处理使用默认的异常 算术异常 通常是由于算术计算错误导致的 ...
- java holder详解,Java基础系列18:Holder技术的实现原理分析
一 简介 (1)Java中的Holder是什么? 我这里说的Holder即这个类:javax.xml.ws.Holder 这个类属于JAX-WS 2.0规范中的一个类.它的作用是为不可变的对象引用提供 ...
- Java异常详解及如何处理
来源:Java异常详解及如何处理 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言 ...
- java io类库,Java利用io类库对各种文件的操作详解
Java中文网 - Java利用io类库对各种文件的操作详解 java中提供了io类库,可以轻松的用java实现对文件的各种操作.下面就来说一下如何用java来实现这些操作. 新建目录 //Strin ...
- java的markword_【转帖】Java工具结构与锁实现原理及MarkWord详解
Java工具结构与锁实现原理及MarkWord详解 https://www.pianshen.com/article/2382167638/ 我们都知道,Java工具存储在堆(Heap)内存.那么一个 ...
- java 获取用户的MAC地址多种方法实例详解
java 获取用户的MAC地址多种方法实例详解 这篇文章主要介绍了JAVA实现获取用户的MAC地址的多种方法实例,需要的朋友可以参考下 java实现获取用户的MAC地址方法: 方法一:将本机地址与局域 ...
- Java Web中的EL(表达式语言)详解
Java Web中的EL(表达式语言)详解 表达式语言(Expression Language)简称EL,它是JSP2.0中引入的一个新内容.通过EL可以简化在JSP开发中对对象的引用,从而规范页面 ...
- java调用javascript函数_[Java教程]JavaScript函数的4种调用方法详解
[Java教程]JavaScript函数的4种调用方法详解 0 2016-08-09 00:00:12 在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C# ...
- Java中print、printf、println的区别 详解
Java中print.printf.println的区别详解 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和pr ...
最新文章
- 使用VS2008怎么连接自带的SQL Server2005的Express版本数据库
- 本地Python连接服务器中的Mysql数据库
- 【Gym - 101612C】【2017-2018NEERC】Consonant Fencity(状压枚举,预处理)
- 云开发听说过没? Compilr 屌爆的在线开发工具 -_-#
- java 解析数据包_一种基于Java语言的网络通讯数据包解析方法与流程
- webpack 基本功能和原理
- 如何将特定提交推送到远程,而不是之前的提交?
- 详解Javascript的继承实现
- java weka 使用_如何在Java代码中的Weka中使用日期类型?
- php memcached 加锁,用memcached实现的php锁机制
- 记录下docker命令
- linux终端字体颜色_使用printf打印出各种颜色字体
- 智慧家安监控系统——用Java + html、css、js实现
- 什么是自底向上/自上而下的显著性目标检测?
- 如何设计好一个接口?
- DTV 学习(一) 基本概念、分类
- ASP.NET开发工具Web Matrix介绍
- 软件全家桶-持续收录中(个人常用软件)
- 将时间戳转换为日期格式:moment、new Date()
- DIY数控雕刻机,我的第一台数控雕刻机
热门文章
- BIGEMAP谷歌卫星地图下载器
- Cartesian coordinate system
- 《一代大商孟洛川》经典台词
- PyQT5打包后报错:Could not find QtWebEngineProcess.exe
- IDEA 自定义代码模板
- can转光纤 海上风电消防火灾报警系统中消防主机超远距离联网方案
- AD936x+ZYNQ搭建OpenWIFI
- “蚂蚁牙黑,蚂蚁呀吼”一夜间火遍全网?别忽略了潜在风险
- 学硕停招,985高校这些专业开始只留专硕
- 服务器未响应wan口连接失败,路由器WAN口连接失败如何解决 路由器WAN口连接失败解决方法【详解】...