首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决异常的“com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:数据源拒绝建立连接“?

如何解决异常的“com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:数据源拒绝建立连接“?
EN

Stack Overflow用户
提问于 2014-09-01 15:35:46
回答 2查看 13.5K关注 0票数 1

我的应用程序使用Hibernate。我在ITS(智能交通系统)上工作,所以每10秒我就会跟踪一次公交车的位置(纬度,经度)。我每隔10秒调用一次ajax方法,该方法向servlet发出请求。我的应用程序在一段时间内运行良好,之后它显示错误为,

代码语言:javascript
复制
org.hibernate.exception.JDBCConnectionException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:99)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473)
at 

代码语言:javascript
复制
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection,  message from server: "Too many connections"
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)

我不知道如何解决这个问题。我搜索了很多资源,发现它是关于在hibernate配置文件中管理连接池的。

下面是我的Hiberenate配置文件。

代码语言:javascript
复制
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/bus_serverdb</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>

<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- Disable the second-level cache  -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>

<!-- Drop and re-create the database schema on startup -->
<!-- <property name="hbm2ddl.auto">create</property> -->

<!-- Names the annotated entity class -->

有人能告诉我我必须做什么改变吗?为什么?

EN

回答 2

Stack Overflow用户

发布于 2014-09-01 15:39:29

服务器的响应是“连接太多”

  • 增加最大连接数(并确保未使用的连接已关闭/使用池)
  • 使用

检查服务器上的活动连接

请参阅http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html

票数 2
EN

Stack Overflow用户

发布于 2014-09-01 15:45:50

确保在Servlet中的方法过程结束时正确关闭会话。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25600907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档