“om.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception,但经过几次访问后又恢复正常” 问题:
通过以上信息的收集隐隐知道了问题所在(mysql经过28800秒也就是8个小时后关掉空闲链接,而c3p0是经过6000000妙才断开链接,就有可能出现c3po保持的连接有可能已经被mysql关掉了,自然就出现了hibernate不能打开session,并且都是第二天一早就出错);为了验证我的想法,决定在开发机上重现这个错误;首先在mysql配置文件my.ini 加上 wait_timeout=30 让mysql经过30妙就关掉链接,重启应用,第一次访问成功,等待一分钟后访问果然出现同样的错误,说明问题诊断正确,着手修改配置如下:
<property name="maxIdleTime">
<value>28000</value>
</property>
<property name="idleConnectionTestPeriod">
<value>28000</value>
</property>
配置解释:28000<28800 使c3p0 在mysql关不连接之前关闭自己持有的链接,配置idleConnectionTestPeriod 参数使c3po每隔28000检查已有的连接是否可用,这样应该确保拿到的连接都是可用的,如果还不放心可以加上 testConnectionOnCheckout参数每当拿出连接的时候就检查一下是否可以,这个可能会使mysql有一定的性能牺牲;
<property name="testConnectionOnCheckout">
<value>true</value>
</property>
分享到:
相关推荐
C3P0连接池是Java应用中常用的数据库连接池组件,它允许程序在不关闭物理连接的情况下,管理和重用数据库连接,从而提高了应用程序的性能和效率。C3P0库依赖于其他几个JAR包来实现其功能,包括`c3p0-0.9.2.1.jar`、`...
C3P0是一个开源的Java连接池实现,它提供了一种灵活且功能强大的数据库连接管理方式。在本文中,我们将深入探讨C3P0连接池的基本概念、工作原理以及如何在Java项目中配置和使用。 **C3P0简介** C3P0是由David Syer...
C3P0连接池是Java应用中常用的数据库连接池组件,它可以帮助我们高效、稳定地管理数据库连接,提高系统性能并降低资源消耗。本实例将详细介绍如何使用C3P0连接池来连接数据库,以及所需的配置和使用步骤。 首先,...
c3p0的主要功能包括连接池的创建、维护以及自动回收资源,使得多个并发请求可以共享数据库连接,减少频繁创建和关闭连接带来的开销。 一、c3p0简介 c3p0是一个完全开源的JDBC连接池,由Miquel Arroyo开发,遵循LGPL...
C3P0连接池是Java开发中常用的数据库连接池组件,它由M-Fenyes创建并维护,旨在提供一个高效、灵活且稳定的数据库连接管理工具。数据库连接池在多线程应用中扮演着重要角色,它能有效地管理和复用数据库连接,避免...
总之,c3p0连接池是Java应用中管理数据库连接的有效工具,通过合理配置和使用,可以显著提高系统的运行效率和稳定性。在实际开发中,应结合具体项目需求选择合适的连接池,并进行持续监控和优化。
C3P0是一个开源的Java数据库连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,数据库连接池扮演着非常重要的角色,它能够有效地管理数据库连接,提高系统性能,减少数据库资源...
C3P0是由Maurice Priess创建的一个开源项目,它旨在提供一个健壮、完全免费的JDBC连接池实现,以解决数据库连接管理的问题,提升系统的性能和稳定性。 ### C3P0基本概念 1. **数据库连接池**:数据库连接池在初始...
c3p0库通过提供连接池功能,使得数据库连接可以被多个并发请求共享,避免了频繁创建和关闭连接的开销,从而降低了系统的资源消耗。 **一、c3p0简介** c3p0是由Maurice Priester开发的开源Java连接池实现,它支持...
**c3p0数据库连接池**是用于管理数据库连接的一种高效、可靠的开源工具,它能够有效地提高应用程序处理数据库的能力,避免频繁地创建和关闭数据库连接,从而减少系统资源的消耗,提升系统的整体性能。c3p0是Mysql AB...
**c3p0连接池详解** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0由Miquel Delgado开发,其核心功能在于提高了数据库连接的效率和管理,通过池化数据库连接来减少...
- C3P0是由Miquel Armandariz开发的一个开源的JDBC连接池组件,它可以提供数据库连接的自动管理,如自动创建、获取、释放和关闭连接,从而减少了数据库操作的开销。 - C3P0通过实现DataSource接口,使得应用程序...
C3P0连接池是一种广泛使用的数据库连接池组件,它为Java应用程序提供了高效、自动管理的数据库连接。在Java开发中,使用连接池可以显著提高性能,减少数据库资源的浪费,因为连接池允许复用已经建立的数据库连接,而...
在Java开发中,数据库连接管理是一项重要的任务,它涉及到资源的有效...C3P0连接池提供了自动管理数据库连接的能力,避免了频繁创建和关闭连接的开销,而log4j则帮助我们在开发和维护过程中更好地理解程序的运行状态。
C3P0数据库连接池技术是一种广泛应用于Java后端开发中的开源组件,它提供了一种高效、灵活的方式来管理数据库连接,以优化应用程序的性能。C3P0版本号0.9.5.2是该库的一个稳定版本,包含了对多种数据库(如MySQL, ...
在Java应用中,数据库连接的建立、关闭和管理是一个耗时的过程,而C3P0则通过提供连接池功能,提高了数据库操作的效率和性能。C3P0库包含一个名为`c3p0.jar`的文件,它是使用该连接池的核心依赖。 1. **什么是...
一旦配置完成,你可以通过C3P0的数据源获取数据库连接,执行SQL操作,并在使用完毕后归还到连接池,无需手动关闭连接。 总结起来,C3P0连接池和MySQL JDBC驱动是Java应用程序与MySQL数据库高效交互的关键组件。正确...
1. **连接管理**:C3P0可以自动创建、测试、回收和关闭数据库连接,避免了手动管理连接的繁琐工作,降低了系统资源的消耗。 2. **连接池大小控制**:可以设置最小和最大连接数,确保在高并发时有足够的连接,同时...
使用c3p0连接池可以有效地管理和优化数据库连接,提高系统的性能和稳定性。下面将详细介绍c3p0的配置和使用方法。 ### 1. 添加依赖 在项目中使用c3p0,首先需要在构建文件(如Maven的pom.xml或Gradle的build....
2. **空闲连接检测**:C3P0可以定时检查并回收长时间未使用的连接,防止死连接问题。 3. **自动扩展**:当连接池中的连接被用完时,C3P0可以根据配置自动增加连接数。 4. **连接超时**:可以设置超时时间,如果在...