Grails运行时异常:无法为事务打开Hibernate会话

时间:2011-10-31 16:55:34

标签: hibernate grails

我现在开发了一个Grails Web应用程序及其在tomcat服务器上的应用程序。我得到以下例外:

无法打开Hibernate Session进行交易;嵌套异常是org.hibernate.TransactionException:JDBC开始失败:

当有人试图在当天使用RESTful服务时,会发生这种情况。 RESTful服务在第一次刷新后正常工作,并且在后续请求发生时也能正常工作。

Stacktrace如下:

java.net.SocketException:连接重置

at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:96)

at java.net.SocketOutputStream.write(SocketOutputStream.java:136)

at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)

at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)

at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3333)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1971)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2619)

at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4997)

at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:371)

at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:328)

at $Proxy102.setAutoCommit(Unknown Source)

......


at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)

at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)

at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)

at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)

at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)

at java.lang.Thread.run(Thread.java:662)

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

我们在DataSource.groovy中使用以下内容来解决该问题。查看链接@JamesA,前提是它似乎也有所需的信息。

dataSource {
  ...
  properties {
    ...     
    // when to test
    testOnBorrow = true
    testWhileIdle = true
    testOnReturn = false
    // what to test with
    validationQuery = "SELECT 1"
 }

}