`

重启mysql数据库后,连接丢失的解决,c3p0的使用

阅读更多
第一次用c3p0,小白了。

现象:
不定期出现以下异常:
org.springframework.dao.DataAccessResourceFailureException: could not execute query
...
...
...
** BEGIN NESTED EXCEPTION **

com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Connection reset by peer: socket write error

STACKTRACE:

java.net.SocketException: Connection reset by peer: socket write error
...
...

直接原因:
直接原因不明,但是可以通过其他方法再现。

再现方法:
正常启动mysql和tomcat下的应用。然后重启mysql,访问应用,上述异常再现。

根本原因:
目前使用的dbcp连接池在丢失数据库连接后无法重新连接。

解决:
使用c3p0连接池。
实际上配置文件中已经配置了c3p0,但是并没有启动,即使配置了c3p0的日志文件,里面却没有内容。
找了很久,tmd终于找到原因了,加上下面的内容才能启动。
<property name="connection.provider_class">
    org.hibernate.connection.C3P0ConnectionProvider
</property>

顺便记下c3p0的日志输出方法:
log4j.logger.com.mchange.v2.resourcepool.BasicResourcePool=DEBUG,A5
分享到:
评论

相关推荐

    数据库连接池c3p0jar包

    总的来说,C3P0作为一款成熟的数据库连接池,对于Java开发者来说,是一个值得信赖的工具,可以帮助我们更有效地管理和使用数据库连接,提升应用程序的性能和可靠性。在实际项目中,根据具体需求合理配置C3P0,可以更...

    Java Jdbc mysql数据库连接驱动和c3p0 jar包极其配置文件

    MySQL是一种广泛使用的开源关系型数据库管理系统,而C3P0是一个开放源代码的JDBC连接池,它实现了数据源和JNDI绑定,提供了一种数据库连接管理的方式,可以提高数据库连接的效率和性能。 在这个主题中,我们主要...

    JDBC连接MySQL数据库,c3p0连接数据库

    java语言连接Mysql数据库。通过Eclipse集成开发工具,编写java类文件,实现JDBC连接。 通过c3p0连接数据库的三种方法,包括xml文件、properties文件。

    Java使用C3P0连接MySQL数据库查询

    在这个场景中,我们将深入探讨如何使用C3P0连接池来与MySQL数据库进行交互,并结合log4j进行日志记录。 首先,要使用C3P0,你需要在项目中引入相应的依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```...

    开源数据库连接池c3p0

    开源数据库连接池c3p0是一款广泛应用于Java后端开发中的数据库连接管理工具,它能够有效地管理和优化数据库连接,提高应用的性能和响应速度。c3p0的主要功能包括连接池的创建、维护以及自动回收资源,使得多个并发...

    数据库连接池C3P0.zip

    在本压缩包“数据库连接池C3P0.zip”中,包含了C3P0数据库连接池的相关jar包以及配置文件,用于帮助开发者集成到他们的Java应用中,特别是与MYSQL数据库配合使用。 C3P0的主要特性包括: 1. **连接池管理**:C3P0...

    c3p0数据库连接池所需jar包

    C3P0是一个开源的Java数据库连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,数据库连接池扮演着非常重要的角色,它能够有效地管理数据库连接,提高系统性能,减少数据库资源...

    数据库连接池dbcp和c3p0jar包

    DBCP(Apache Commons DBCP)和C3P0是两种常见的开源数据库连接池实现,它们允许开发者有效地管理和重用数据库连接,避免了每次请求数据库时创建新的连接,从而降低了系统的资源消耗。 DBCP,全称为Apache Commons ...

    C3p0、Oracle数据库连接驱动、MySQL数据库连接驱动jar包.rar

    这里我们关注的是三个核心组件:C3p0、Oracle数据库连接驱动以及MySQL数据库连接驱动。这些组件都是Java开发中常见的库,用于建立和管理数据库连接。 首先,让我们深入了解C3p0。C3p0是一个开源的JDBC连接池,它...

    hibernate C3P0数据源 连接MySQL数据库

    博文链接:https://wxinpeng.iteye.com/blog/203088

    C3P0数据库连接池

    **C3P0数据库连接池详解** C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的主要功能包括数据库连接的自动获取与释放、连接池的管理以及异常处理等,这些特性有助于...

    c3p0数据库连接池

    **c3p0数据库连接池**是用于管理数据库连接的一种高效、可靠的开源工具,它能够有效地提高应用程序处理数据库的能力,避免频繁地创建和关闭数据库连接,从而减少系统资源的消耗,提升系统的整体性能。c3p0是Mysql AB...

    c# mysql数据库连接池实现

    数据库连接池是一种资源管理技术,它预先创建并维护一定数量的数据库连接,当应用需要时,可以从池中获取连接,使用完毕后归还而不是直接关闭,从而减少了频繁创建和销毁连接的开销。在.NET Core中,对于MySQL数据库...

    JDBC + MySQL使用c3p0连接池

    总结起来,JDBC+C3P0的组合提供了一种高效、可扩展的数据库连接池解决方案,尤其适用于大型的、高并发的Web应用程序。合理配置C3P0,可以显著提升系统的性能,同时降低数据库连接管理的复杂性。

    c3p0数据库连接池示例

    **c3p0数据库连接池**是Java应用中广泛使用的第三方数据库连接管理工具,它能够有效地管理和优化数据库连接,提高应用程序的性能和效率。c3p0库通过提供连接池功能,使得数据库连接可以被多个并发请求共享,避免了...

    C3P0方式实现对MySQL数据库的操作案例

    C3P0是一种开源的Java连接池实现,它提供了对JDBC数据库连接的管理,能够有效地提高数据库操作的性能和稳定性。在这个"C3P0方式实现对MySQL数据库的操作案例"中,我们将深入探讨如何利用C3P0库来实现对MySQL数据库的...

    MyEclipse连接MySQL数据库报错解决办法

    我们现在一般网站都是利用的MySQL数据库搭建网站的,但是在网上看到很多网友吐槽数据库连接不上的问题,现在我就结合相关资料向提出一些我个人的见解,希望对大家解决问题有帮助。 一般MySQL连接不上,可能有两大...

    数据库连接池c3p0所需jar包

    - **commons-pool**:Apache Commons Pool是通用的对象池服务,可以用于创建各种资源的池化,包括C3P0在内的数据库连接池在底层使用了这个库来实现对象的管理和复用。 在实际开发中,你通常会将这些JAR包添加到项目...

    C3P0连接池配置需要的jar包

    C3P0连接池是Java应用中常用的数据库连接池组件,它允许程序在不关闭物理连接的情况下,管理和重用数据库连接,从而提高了应用程序的性能和效率。C3P0库依赖于其他几个JAR包来实现其功能,包括`c3p0-0.9.2.1.jar`、`...

    c3p0+mysql驱动jar包

    在Java编程环境中,数据库连接管理是一项关键任务,而c3p0和MySQL驱动程序是实现这一目标的重要组件。本文将详细介绍这两个组件以及如何在项目中使用它们。 c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定...

Global site tag (gtag.js) - Google Analytics