Hibernate 无法增加Grails事务(MyBatis)的超时

Hibernate 无法增加Grails事务(MyBatis)的超时,hibernate,grails,mybatis,Hibernate,Grails,Mybatis,使用MyBatis在Grails中执行长时间运行的事务时,我遇到数据库超时:java.sql.SQLException:连接已关闭。 改进保存过程是不可行的,它通过调用batisGateway.operation(params)中描述的存储过程来逐行保存所有内容,多达1000次,一段时间后开始缓慢运行,可能需要45分钟。然而,我在大约30分钟后得到超时,这使我相信Grails/MyBatis/Hibernate中设置了一些超时,我需要覆盖它们 我尝试使用newTransaction([time

使用MyBatis在Grails中执行长时间运行的事务时,我遇到数据库超时:
java.sql.SQLException:连接已关闭。

改进保存过程是不可行的,它通过调用
batisGateway.operation(params)
中描述的存储过程来逐行保存所有内容,多达1000次,一段时间后开始缓慢运行,可能需要45分钟。然而,我在大约30分钟后得到超时,这使我相信Grails/MyBatis/Hibernate中设置了一些超时,我需要覆盖它们

  • 我尝试使用newTransaction([timeout:3600]){…}向
    添加超时-没有效果
  • 我在
    DataSource.groovy
    Bootstrap.groovy
    中尝试了各种参数-没有效果
  • 我尝试手动打开会话和事务,如:

    StatelessSession session = sessionFactory.openStatelessSession()
    Transaction transaction = session.getTransaction()
    transaction.setTimeout(4800)
    transaction.begin()
    ...
    
    但仍然没有效果


我的数据库允许无限的超时,所以问题很可能不存在。还有什么我可以尝试的吗?

这是因为连接由于某种原因被取消了。见: