iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Hibernate如何使用C3P0的连接池
  • 694
分享到

Hibernate如何使用C3P0的连接池

2023-06-03 08:06:08 694人浏览 泡泡鱼
摘要

这篇文章主要介绍“Hibernate如何使用C3P0的连接池”,在日常操作中,相信很多人在Hibernate如何使用C3P0的连接池问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hibernate如何使用C3

这篇文章主要介绍“Hibernate如何使用C3P0的连接池”,在日常操作中,相信很多人在Hibernate如何使用C3P0的连接池问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hibernate如何使用C3P0的连接池”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

最近的一个项目在Hibernate使用C3P0的连接池,数据库Mysql开发测试没有问题,在运行中每个一段长的空闲时间就出现异常:[@more@]最近的一个项目在Hibernate使用C3P0的连接池,数据库Mysql。开发测试没有问题,在运行中每个一段长的空闲时间就出现异常:

java 代码

  1. org.hibernate.exception.JDBCConnectionException: could not execute query  

  2.    at org.hibernate.exception.sqlStateConverter.convert(SQLStateConverter.java:74)  

  3.    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)  

  4.    .......  

  5. Caused by: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:  

  6.  

  7.  

  8. ** BEGIN NESTED EXCEPTION **    

  9.  

  10. com.mysql.jdbc.CommunicationsException  

  11. MESSAGE: Communications link failure due to underlying exception:    

  12.  

  13. ** BEGIN NESTED EXCEPTION **    

  14.  

  15. java.net.SocketException  

  16. MESSAGE: Broken pipe  

  17.  

  18. STACKTRACE:  

  19.  

  20. java.net.SocketException: Broken pipe  

  21.    at java.net.SocketOutputStream.socketWrite0(Native Method)  

  22.    ......  

  23. ** END NESTED EXCEPTION **  

查看了Mysql的文档,以及Connector/J的文档以及在线说明发现,出现这种异常的原因是:

Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。这就是问题的所在,在C3P0 pools中的connections如果空闲超过8小时,Mysql将其断开,而C3P0并不知道该connection已经失效,如果这时有Client请求connection,C3P0将该失效的Connection提供给Client,将会造成上面的异常。

解决的方法有3种:

  1. 增加wait_timeout的时间。

  2. 减少Connection pools中connection的lifetime。

  3. 测试Connection pools中connection的有效性。

当然最好的办法是同时综合使用上述3种方法,下面就DBCP和C3P0分别做一说明,假设wait_timeout为默认的8小时

DBCP增加以下配置信息:

  1. //set to 'SELECT 1'  

  2. validationQuery = "SELECT 1"  

  3. //set to 'true'  

  4. testWhileIdle = "true"    

  5. //some positive integer  

  6. timeBetweenEvictionRunsMillis = 3600000  

  7. //set to something smaller than 'wait_timeout'  

  8. minEvictableIdleTimeMillis = 18000000  

  9. //if you don't mind a hit for every getConnection(), set to "true"  

  10. testOnBorrow = "true"  

C3P0增加以下配置信息:

  1. //set to 'SELECT 1'      

  2. preferredTestQuery = 'SELECT 1'    

  3. //set to something much less than wait_timeout, prevents connections from Going stale  

  4. idleConnectionTestPeriod = 18000    

  5. //set to something slightly less than wait_timeout, preventing 'stale' connections from being handed out  

  6. maxIdleTime = 25000    

  7. //if you can take the perfORMance 'hit', set to "true"  

  8. testConnectionOnCheckout = true    

更多的配置信息大家可以查看C3P0文档,Connector/J文档,以及DBCP的文档。

到此,关于“Hibernate如何使用C3P0的连接池”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Hibernate如何使用C3P0的连接池

本文链接: https://www.lsjlt.com/news/233643.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Hibernate如何使用C3P0的连接池
    这篇文章主要介绍“Hibernate如何使用C3P0的连接池”,在日常操作中,相信很多人在Hibernate如何使用C3P0的连接池问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hibernate如何使用C3...
    99+
    2023-06-03
  • c3p0数据库连接池如何使用
    这期内容当中小编将会给大家带来有关c3p0数据库连接池如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、jar包引用开源项目,自然要先下载人家的jar包,我这里有...
    99+
    2024-04-02
  • Hibernate 中如何使用dbcp连接池
    Hibernate 中如何使用dbcp连接池,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Hibernate dbcp连接池在Hibernate3.0中,已经不...
    99+
    2023-06-17
  • c3p0数据库连接池如何在Java项目中使用
    今天就跟大家聊聊有关c3p0数据库连接池如何在Java项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。c3p0是什么c3p0的出现,是为了大大提高应用程序和数据库之间访问效率...
    99+
    2023-05-31
    java 数据库连接池 c3p0
  • c3p0数据库连接池如何进行配置
    这篇文章将为大家详细讲解有关c3p0数据库连接池如何进行配置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。c3p0的配置方式分为三种,分别是setters一个个地设置各个配置项2.类路径下提...
    99+
    2023-05-31
    c3p0 数据库连接池
  • 详解springboot 使用c3p0数据库连接池的方法
    使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了。所以使用c3p0连接池吧。引入的maven依赖:<dependency> <groupId>...
    99+
    2023-05-31
    spring boot c3p0
  • Java Hibernate中的连接池该如何理解
    本篇文章为大家展示了Java Hibernate中的连接池该如何理解,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以...
    99+
    2023-06-17
  • (16)Hibernate对连接池的支持
    除非我们用爱去对待一个人,否则我们无法了解他。 We never can have a true view of man unless we have a love for him.1、连接池知识...
    99+
    2024-04-02
  • IDEA2020如何新建spring项目和创建c3p0连接池
    这篇文章将为大家详细讲解有关IDEA2020如何新建spring项目和创建c3p0连接池,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言     &nb...
    99+
    2023-06-20
  • 详解IDEA2020新建spring项目和c3p0连接池的创建和使用
    目录前言 1、环境准备:maven配置2、导入jar包:c3p0-0.9.5.4.jar和mysql-connector-java.jar 3、编写测试类测试连接...
    99+
    2024-04-02
  • golang mysql的连接池如何使用
    本文小编为大家详细介绍“golang mysql的连接池如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“golang mysql的连接池如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-05
  • 如何正确的使用Jedis连接池
    今天就跟大家聊聊有关如何正确的使用Jedis连接池,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、构建redis连接池,返还到连接池private static JedisPool...
    99+
    2023-05-31
    jedis 连接池
  • 如何使用ADO.NET中FAQ连接池
    这篇文章将为大家详细讲解有关如何使用ADO.NET中FAQ连接池,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ADO.NET有很多值得学习的地方,这里我们主要介绍ADO.NET FAQ连接池,包括介绍连接...
    99+
    2023-06-17
  • Hibernate如何连接配置
    小编给大家分享一下Hibernate如何连接配置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在Hibernate3.0中,已经不再支持dbcp了,Hiberna...
    99+
    2023-06-17
  • sqlite数据库连接池如何使用
    SQLite数据库是一种轻量级的数据库,不支持连接池。每个连接都是一个独立的数据库文件,因此在SQLite中并不需要使用连接池。 如...
    99+
    2024-04-09
    sqlite
  • 如何使用 PHP 设置 MySQL 连接池?
    使用 php 设置 mysql 连接池,可以提高性能和可伸缩性。步骤包括:1. 安装 mysqli 扩展;2. 创建连接池类;3. 设置连接池配置;4. 创建连接池实例;5. 获取和释放...
    99+
    2024-05-13
    mysql 连接池
  • 如何使用DataAdapter优化ADO.NET连接池
    这篇文章主要为大家展示了“如何使用DataAdapter优化ADO.NET连接池”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用DataAdapter优化ADO.NET连接池”这篇文章吧。...
    99+
    2023-06-17
  • Druid数据库连接池如何使用
    这篇文章主要介绍了Druid数据库连接池如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Druid数据库连接池如何使用文章都会有所收获,下面我们一起来看看吧。概述数据库连接池是个容器,负责分配、管理数据库...
    99+
    2023-07-05
  • python3 flask 使用连接池
    在真实的线上环境连接数据库一般都是要使用连接池的,连接池统一管理数据库连接,可以提高应用性能。python数据库连接池可以使用dbutils和PySQLPool但是这两个库似乎都只支持python2不支持python3,最后折腾了半天,P...
    99+
    2023-01-31
    连接池 flask
  • golangmysql的连接池的具体使用
    目录1.mysql-通过sql建立连接池2.mysql-gorm 建立连接池3.连接池相较于单个client4.通用连接池参考1.mysql-通过sql建立连接池 连接池用sql.O...
    99+
    2023-02-21
    golang mysql连接池 golang 连接池
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作