Proxool是常用开源连接池,最近遇到点该连接池销毁时的问题, 记录下来。

项目中使用JPA的hibernate实现, persistence.xml中hibernate配置的连接池是proxool. 遇到的问题是项目中有很多后台运行的service, 这些service在servlet 容器做shutdown操作时候会先被关闭,最后在contextDestroy方法中做clean操作。

在调试中发现当servlet容器的JVM在接到shutdown操作时候,先清理了proxool的连接池线程prototyper, 然后才调用规范约定的contextDestroy()方法, 导致该方法中的service方法需要写一些shutdown操作的log时产生大量异常,类似于:

Attempt to refer to a unregistered pool by its alias XXX

找了很久为什么Jetty在关闭时会先清理proxool的线程,而不是等contextDestroy之后清理, 发现proxool 0.9.0的release中写到:

- Added ProxoolFacade.disableShutdownHook so that you can choose to explicitly shutdown Proxool programatically. This is useful because the order that the JVM calls shutdown hooks isn't easily controlled and you might want to shutdown Proxool *after* you've done some cleaning up yourself.

原来是proxool自己向JVM注册了shutdown hook, 在JVM关闭时会自动被调用, 在程序代码中显式调用ProxoolFacade.disableShutdownHook后禁止proxool 线程被JVM立即关闭后问题解决。

Proxool 连接池销毁问题相关推荐

  1. 【转】SSH中 整合spring和proxool 连接池

    [摘要:比来做的一个项目中应用到了毗邻池技巧,大概我们人人比拟认识的开源毗邻池有dbcp,c3p0,proxool.对那三种毗邻池来讲,从机能战失足率来讲,proxool轻微比前两种好些.本日我首要简 ...

  2. Spring3, Hibernate3.6与Proxool连接池配置

    为什么80%的码农都做不了架构师?>>>    Proxool连接池Spring3.1Hibernate3.6 鉴于Spring3.0不采用Servlet启动,改用listener, ...

  3. 控Proxool连接池的活动连接变化情况

    /Files/pony/ConnDB.txt(我用到的一个例子) 下面是摘抄的 研究了Proxool连接池的源代码后完成下面的程序,Proxool连接池的配置过程略. 网管u家u.bitscn@com ...

  4. 放弃吧,Hibernate 4直到4.3.0 Beta1还没有解决Proxool连接池不可用的问题

    本文出处:http://blog.csdn.net/chaijunkun/article/details/8811246,转载请注明.由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建议在 ...

  5. 项目中成功的运用proxool连接池

    最近做的一个项目中运用到了连接池技术,可能我们大家比较熟悉的开源连接池有dbcp,c3p0,proxool.对这三种连接池来说,从性能和出错率来说,proxool稍微比前两种好些.今天我主要简单的讲述 ...

  6. proxool连接池空闲连接中断问题解决

    原文地址:http://www.proxool.com/html/proxoolerror/20080308/49.html  mysql 八小时断开连接异常,一起说明下. 这里以mysql 8小时断 ...

  7. MyEclipse中使用Proxool+mysql连接池的方法

    该例子是针对一下情形使用: (1)使用的是mysql数据库: (2)适用于java应用程序,如果是web程序还需要修改web.xml. 首先,新建proxoolconf.xml文件,页面内容如下: & ...

  8. Hibernate连接池配置实例

    Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP.在Hibernate连接池配置时需要注意的有三点: 一.Apche的DBCP在Hibernate2中受支 ...

  9. druid连接池mysql自动关闭_探究Druid连接池“违反协议”异常

    作者:董添 使用Druid连接池和PreparedStatement Cache后,应用访问数据库的效率提高了,针对连接池的监控手段也变多了,但是随之而来也出现了一些新的问题,最近发现在给表增加字段后 ...

最新文章

  1. 激光与红外线的区别?激光雷达与毫米波雷达区别?毫米波雷达无法感知行人吗?关于Intel Realsense D435有源红外技术猜想
  2. arcscene如何显示标注_ArcGIS中标注(label)的使用技巧
  3. 2.使用windows下的客户端连接虚拟机上的oracle连不上的时候的解决方案
  4. js如何判断一个对象是不是Array
  5. android-波浪效果ripple-background
  6. 微信公众平台网站开发JS_SDK遇到的bug——wx.config注册提示成功,但部分接口注册失败问题
  7. 平衡小车之家_人教版高中物理必修一 专题 共点力作用下的动态平衡 公开课优质课课件教案视频...
  8. 专用集成电路设计实用教程(学习笔记一)
  9. 工作频率对系统功率、穿透能力、设备体积、系统性能的影响
  10. KMS知识文档管理系统如何与BPM流程管理相结合
  11. 推荐系统技术演进趋势:召回->排序->重排
  12. JAVASE基础模块十五(StringBuffer类)
  13. 面试云计算工程师岗位经常被问到的40个问题
  14. #NameError: name ‘x‘ is not defined
  15. CSRF 的攻击过程
  16. 普安特友情提示:这样去抱猫,可能会让它反感
  17. 一文讲透,分布式系统的数据分片难题
  18. 计算机基础实训评分标准,计算机实训考核办法细则.doc
  19. 盘点世界十大著名黑客攻击事件
  20. 如何设置使用电脑默认浏览器打开微信中发的链接

热门文章

  1. py2数据分析_利用数据
  2. LeetCode weekly contest 190 周赛
  3. Vue之@click、事件修饰符@click.stop与@click.prevent、按键修饰符@keyup.enter
  4. Mycat原理、应用场景
  5. 骑行318、 2016.7.8
  6. 纯中文C++代码,可运行
  7. 转载:配置nginx支持pathinfo功能
  8. 程序员伤不起的年龄——30岁
  9. websphere安装应用失败_如何使用安卓手机给任天堂Switch安装游戏NSUSBloader mobile
  10. Python 循环拼接字符串_详解Python拼接字符串的七种方式