hibernate,mysql数据库,连接正常,可是数个操作后出现Cannot open connection,貌似是连接数太多,求解

Eureal 2012-04-13 09:49:15
<property name="hibernate.connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
</property>
<!-- 数据库连接的名字,有点别称的意思,只是作为备注或者标识的属性 -->
<property name="myeclipse.connection.profile">MySQL</property>
<!--c3p0连接池的最大连接数-->
<property name="hibernate.c3p0.max_size">50</property>
<!--c3p0连接池的最小连接数-->
<property name="hibernate.c3p0.min_size">1</property>
<!--c3p0连接池连接的超时时长如果空闲连接的空闲超过了timeout,就会删除-->
<property name="hibernate.c3p0.timeout">1800</property>
<!--c3p0缓存Statement的数量数-->
<property name="hibernate.c3p0.max_statements">50</property>
<!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒-->
<property name="hibernate.c3p0.idle_test_period">120</property>
<!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
以上是连接池信息,
org.hibernate.exception.GenericJDBCException: Cannot open connection
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:78)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
... 24 more
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source

我每次都关闭了session。(session.close()),难道是数据库没关闭,求高人点解啊?
...全文
3459 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiekou0704 2014-04-25
  • 打赏
  • 举报
回复
坐等大神解决。。。。。。。。。mark
tony4geek 2014-04-25
  • 打赏
  • 举报
回复
快乐的使者 2014-04-25
  • 打赏
  • 举报
回复

连接数调大点
2:你的连接用完了没关闭,,
一般都是第2个问题导致的,,检查你的代码!!
楼上:连接用完了怎么关闭啊!求解释啊!有解决的哥们请加我qq:575527292.
SimonDW 2013-10-23
  • 打赏
  • 举报
回复
用另外的客户端连上MySQL。然后用show processlist观察一下有多少个session以及session的状态和当前执行的任务。 如果有很多idle的session,可能是你连接池没配置好。 如果有很多没执行玩得语句,可能是你程序问题。 如果执行一段时间后,mysql客户端都连不上的话, 建议先用客户端连上mysql,然后再运行程序。这样还可以观察程序运行后的链接增长情况。 我记得c3p0有一个属性是检查链接有效性的,设为select 1 即可
wenjie4892543 2013-10-22
  • 打赏
  • 举报
回复
这个问题解决办法: 1:连接数调大点 2:你的连接用完了没关闭,, 一般都是第2个问题导致的,,检查你的代码!!
shpery 2013-10-18
  • 打赏
  • 举报
回复
既然你连接没问题,开始使用也没有,估计就是容量问题了, 把连接数调大点 小了可能是数据溢出
sunbo624 2013-10-18
  • 打赏
  • 举报
回复
用连接池就别关session
秃了的老猫 2013-10-17
  • 打赏
  • 举报
回复
把最小链接数和最大连接数都调大点试试,我当初用c3p0池的时候,出现过类似情况
在路上___ 2013-10-17
  • 打赏
  • 举报
回复
哥们,我现在跟你遇到了同一个问题,你是怎么解决的,麻烦给我说下,我的QQ 617628097
Eureal 2012-04-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
一般是数据库连接参数或者URL或者用户密码啥的配置错误,导致无法获取数据库连接。请检查下配置文件中关于数据库连接的部分,或者把它贴出来。
[/Quote]
数据库连接参数和密码是没有问题的,因为一开始进行数据库操作是没有问题的,只是操作多了,以后就出现这样的问题,我用其他数据库工具也无法打开mysql,说是too many connections。我用的是hibernate C3p0连接池。前面我已经给出连接的信息了。
MiceRice 2012-04-13
  • 打赏
  • 举报
回复
一般是数据库连接参数或者URL或者用户密码啥的配置错误,导致无法获取数据库连接。请检查下配置文件中关于数据库连接的部分,或者把它贴出来。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧