2014-09-01 32 views
1

我的应用程序使用Hibernate。我正在研究智能交通系统(ITS)。因此,我每10秒钟就会跟踪一次公交车的位置(纬度,经度)。我每10秒调用一次ajax方法,向servlet发出请求。我的应用程序正常工作了一段时间后,它显示误差,如何解决异常“com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:数据源拒绝建立连接”?

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 

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配置文件。

<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 --> 

任何一个可以告诉我什么是我必须做的,为什么变化?

回答

2

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

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

+0

是的,每当我接近会议。 – Raghu 2014-09-01 08:17:12

+0

我的进程列表显示'*************************** 90. row ******* Id:454 User:根 主机:本地主机:54282 DB:bus_serverdb 命令:睡眠 时间:28 国家: 信息:NULL' – Raghu 2014-09-01 08:25:36

0

确保您在月底关闭正确会话您方法进程在你的Servlet中。

+0

是每次我在我靠近会议时间finally块。 – Raghu 2014-09-01 08:17:41

相关问题