项目中使用的是mybatis+proxool,数据库是mysql。在进行压力测试的时候发现。proxool获得链接之后不会释放掉。会一直保持在连接池中。
proxool配置如下:
<property name="prototypeCount" value="5" />
<!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒-->
<property name="houseKeepingSleepTime" value="30000" />
<!--最小连接数(默认5个) -->
<property name="minimumConnectionCount" value="5" />
<!--最大连接数(默认15个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 -->
<property name="maximumConnectionCount" value="200" />
<!-- 如果侦察线程发现闲置连接,则会使用这个SQL语句来对这些连接进行检查 -->
<property name="houseKeepingTestSql" value="select CURRENT_DATE" />
<!-- 最大并发连接数-->
<property name="simultaneousBuildThrottle" value="50" />
<!-- 活动时间-->
<property name="maximumActiveTime" value="300000" />
项目刚启动的时候我查看了下数据库链接就只有几个。我正常操作系统链接数不会发生太大的变化。。如果我同时50个并发访问。就问增加几个连接。。诡异的是这个链接一直不会被销毁。。会一直保持在。。我看了数据库链接的确是按照我设置houseKeepingSleepTime来进行刷新。链接时间一旦过了30秒就会重置为0。。但是为毛一直不销毁啊。。按理说。如果这个链接超过了maximumActiveTime。然后houseKeep监测到超时就应该销毁啊。。但是链接数会始终保持在那。。不会销毁。。也就是说。如果我同时500人访问。。链接数会打到最大值250个。。然后就会一直保持这个链接不会销毁。。我想问下这到底是为什么。难道是我哪个地方配置的不对?其中houseKeepingSleepTime在springmvc配置会出错。所以我新建一个类。继承了ProxoolDataSource。然后就重写了一下houseKeepingSleepTime的get和set方法。。这应该没影响吧。有知道的朋友告诉我一声!
相关推荐
总的来说,Proxool连接池提供了一种有效管理数据库连接的方法,通过合理的配置和使用,能显著提升应用程序的性能和稳定性。不过,随着技术的发展,可能需要考虑采用更现代、更活跃维护的连接池解决方案。
Proxool连接池是数据库连接管理的一个开源工具,它提供了一种高效且灵活的方式来管理和复用数据库连接,以提升应用程序的性能和响应速度。在Java应用程序中,尤其是在高并发环境下,数据库连接池扮演着至关重要的...
标题 "Spring+Hibernate+Proxool连接池" 涉及到的是在Java Web开发中,如何使用Spring框架集成Hibernate ORM框架,并结合Proxool作为数据库连接池的技术实践。这通常是为了提高应用性能,有效管理和复用数据库连接,...
在这里,我们通过`dataSource`属性引用了上面配置的数据源,这样Hibernate就能使用Proxool连接池进行数据库操作。 5. 在`hibernateProperties`中,我们设置了`hibernate.dialect`为`MySQLDialect`,表示使用的是...
**Proxool连接池**:Proxool是数据库连接池的一种实现,它的主要作用是管理数据库连接,减少创建和销毁连接的开销。当多个用户请求数据库连接时,Proxool会复用已存在的连接,而不是每次请求都新建一个。这大大提高...
Proxool是Apache软件基金会的一个开源项目,提供了一个轻量级、高性能的数据库连接池解决方案。本篇文章将深入探讨Proxool数据库连接池的配置及其重要性。 首先,理解Proxool的基本概念是必要的。Proxool是Proxy + ...
- **动态扩展性**:Proxool可以根据应用需求动态地调整连接池的大小,即在需要时增加连接,在空闲时释放连接。 - **监控和日志**:Proxool提供了一套完善的监控和日志系统,可以实时查看连接池的状态,包括活动...
为了方便使用Proxool连接池,通常会创建一个工具类来管理连接的获取和释放: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class PoolManager { ...
Java连接池,特别是Proxool,是数据库管理中一个至关重要的概念,它提高了数据库操作的效率和性能。连接池在Java应用程序中起着桥梁的作用,它管理数据库连接,避免了频繁创建和销毁连接的开销。Proxool是Apache软件...
### Proxool数据库连接池配置详解 #### 一、引言 Proxool是一个轻量级的Java数据库连接池管理工具,它可以帮助开发者更高效地管理和利用数据库连接资源。通过Proxool,可以显著减少数据库连接创建和关闭的开销,...
4. **获取与释放连接**:在需要访问数据库的地方,通过`proxool`提供的API获取连接,操作完毕后及时释放连接,返回到连接池。 5. **监控与调优**:`proxool`提供了丰富的监控信息,如当前连接数、等待队列长度等,...
当遇到“使用proxool连接Sybase时处理事务的问题”,这通常涉及到事务的隔离级别、事务的自动提交状态以及事务控制语句(如BEGIN、COMMIT、ROLLBACK)的正确使用。 事务处理是数据库操作的核心部分,确保数据的一致...
Proxool通过创建虚拟的连接池来管理物理连接,当物理连接空闲一段时间后,Proxool会自动释放这些连接,以节省系统资源。但是,Proxool同样存在更新不频繁的问题,可能无法适应最新的数据库驱动和JDBC规范。 3. ...
标题提到的"java红数据连接池包下载",指的是包含了Proxool连接池及其依赖的Java包。 首先,我们要理解数据库连接池的基本概念。数据库连接池在应用程序启动时创建一定数量的数据库连接,并将它们存储在内存中,以...
Hibernate会自动从配置的Proxool连接池中获取和释放连接。 5. 监控和调优:Proxool提供了一些监控工具和属性,比如最大连接数、空闲超时时间等,可以根据应用的实际情况进行调整,以优化性能和资源使用。 综上所述...
5. 连接回收:当连接长时间未被使用或达到预设的超时时间,Proxool会自动关闭这个连接,释放资源,以保持连接池的健康状态。 使用Proxool或其他连接池技术可以带来以下好处: - 性能提升:避免了频繁的创建和销毁...
在描述中提到,“在Hibernate中使用Proxool连接池所需要的两个架包”,这可能意味着除了`Proxool.jar`之外,还需要另一个与Hibernate相关的库文件,可能是Hibernate的核心库或者特定版本的JDBC驱动,以便使Hibernate...