`
darkjune
  • 浏览: 309953 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Proxool 连接池销毁问题

    博客分类:
  • java
 
阅读更多

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连接池使用详细说明

    Proxool连接池是数据库连接管理的一种解决方案,它允许应用程序高效地管理和复用数据库连接,以提高系统的性能和响应速度。下面将详细讲解Proxool连接池的使用方法及其核心概念。 1. **Proxool简介** Proxool是...

    在Hibernate中配置Proxool连接池

    Proxool连接池可以有效地复用已建立的数据库连接,减少数据库的连接创建和销毁,从而提高系统性能。同时,通过调整配置,我们可以控制连接池的大小、超时策略等,以适应不同的应用需求和环境。 总的来说,在...

    proxool连接池配置

    -- 连接池的别名 --> <alias>DBPool</alias> - <!-- proxool只能管理由自己产生的连接 --> <driver-url>jdbc:sqlserver://localhost:1433;dataBaseName=books</driver-url> - <!-- JDBC驱动程序 --> ...

    proxool连接池jar包

    `proxool连接池jar包`是一个包含Proxool数据库连接池技术的软件包。Proxool作为源码开放的项目,源自著名的开源平台SourceForge,它为Java开发者提供了一个高效且易于管理的数据库连接池解决方案。数据库连接池在多...

    Proxool连接池jar包

    Proxool连接池是数据库连接管理的一个开源工具,它提供了一种高效且灵活的方式来管理和复用数据库连接,以提升应用程序的性能和响应速度。在Java应用程序中,尤其是在高并发环境下,数据库连接池扮演着至关重要的...

    Proxool连接池实例.zip

    在这个"Proxool连接池实例.zip"压缩包中,我们可以推测包含了一些关于如何在C#环境下集成和使用Proxool连接池的示例代码和相关资源。 首先,让我们深入理解一下Proxool连接池的工作原理。Proxool维护了一个数据库...

    Proxool连接池配置

    标题与描述均聚焦于“Proxool连接池配置”,这一主题是Java开发中数据库连接管理的重要环节。Proxool作为一款轻量级的开源数据库连接池实现,它提供了高效的数据库连接管理和复用机制,旨在减少应用程序创建和销毁...

    ssh小框架(proxool连接池)

    **Proxool连接池**:Proxool是数据库连接池的一种实现,它的主要作用是管理数据库连接,减少创建和销毁连接的开销。当多个用户请求数据库连接时,Proxool会复用已存在的连接,而不是每次请求都新建一个。这大大提高...

    Proxool连接池及使用文档

    在学习Proxool的过程中,提供的文档是十分重要的,它将详细介绍如何配置、使用和诊断Proxool连接池,以确保你在实际项目中能够充分利用其优势,优化数据库访问效率。通过阅读文档,你可以了解更深入的细节,例如连接...

    配置Hibernate使用Proxool连接池

    本篇文章将详细讲解如何配置Hibernate框架以使用Proxool连接池。 首先,我们需要了解Hibernate和Proxool的基本概念。Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了Java应用与数据库之间的交互,...

    mysqlproxool连接池

    - 监控与日志:定期检查连接池状态,记录异常,以便于问题排查。 - 定期维护:定期清理无用的连接,保持连接池的健康。 以上就是关于MySQL ProxyPool连接池的相关知识点,希望对你在MyEclipse中的实践有所帮助。...

    proxool 连接池实例

    下面我们将深入探讨Proxool连接池的使用、配置以及其核心概念。 **一、Proxool简介** Proxool是由iBatis团队开发的,其设计目标是提供一个简单易用、功能全面且性能优异的数据库连接池。与C3P0、DBCP、HikariCP等...

    Spring+Hibernate+Proxool连接池

    本话题将深入探讨如何在Spring中整合Hibernate ORM框架,并结合Proxool连接池来实现高效、稳定的数据库连接管理。 标题“Spring+Hibernate+Proxool连接池”意味着我们将讨论如何将这三大组件集成在一起,以构建一个...

    java数据库连接池Proxool

    Java数据库连接池(Database Connection Pool)是Java应用中用于管理数据库连接的一种技术,它通过复用已存在的数据库连接,减少创建和销毁连接的开销,从而提高了应用的性能和效率。Proxool是其中一个轻量级、开源...

    proxool连接池

    ### Proxool连接池知识点详解 #### 一、Proxool连接池简介 Proxool是一个轻量级的Java数据库连接池实现,它能够管理多个数据源,并为每个数据源维护一个连接池。通过Proxool,应用程序可以高效地复用数据库连接,...

    spring+dwr+proxool连接池

    3. **Proxool连接池**: Proxool是一个轻量级的数据库连接池,它可以提高数据库连接的复用性,减少创建和销毁连接的开销。在本项目中,Proxool可能被Spring用来管理数据库连接,确保高效、稳定的数据存取。 4. **...

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

    在IT行业中,数据库连接管理是系统性能优化的关键因素之一,而`proxool`是一个非常实用的连接池组件,尤其在项目开发中起到了重要的作用。本文将深入探讨如何在项目中成功地运用`proxool`连接池,以提高系统的稳定性...

    proxool+mysql+tomcat连接池所需jar包

    然后在应用运行过程中,当需要与数据库交互时,不再直接创建新的连接,而是从连接池中获取一个已存在的连接,用完后归还,而不是关闭,这样减少了数据库连接创建和销毁的开销。 标题中提到的"proxool"是一个开源的...

    数据库连接池包(proxool.jar)

    Proxool是Apache软件基金会提供的一款开源的数据库连接池实现,它的主要功能是管理和复用数据库连接,避免了频繁创建和关闭数据库连接所导致的性能开销。在Java环境下,Proxool.jar是使用Proxool数据库连接池服务的...

Global site tag (gtag.js) - Google Analytics