2016-04-06 6 views
0

のタイムアウトを増やすことはできませんMyBatisのを使用してGrailsの中で長時間実行されるトランザクションを実行するとき、私は、データベースのタイムアウトを取得しています:java.sql.SQLException: Connection has already been closed.は、Grailsのトランザクション(MyBatisの)

保存処理を改善することは不可能であり、それはラインですべての行を保存しますbatisGateway.operation(params)に記載されているストアドプロシージャを1000回も呼び出すと、しばらくすると実行が遅くなり、45分かかることがあります。しかし、〜30分後にタイムアウトが発生するので、Grails/MyBatis/Hibernateでオーバーライドする必要があるタイムアウトがあると私は信じています。

  • .withNewTransaction([timeout: 3600]) { ... }にタイムアウトを追加しようとしましたが効果がありません。
  • 私はDataSource.groovyBootstrap.groovyで各種パラメータを試していない - 私は手動でのように、セッションとトランザクションを開いてみました何の効果
  • StatelessSession session = sessionFactory.openStatelessSession() 
    Transaction transaction = session.getTransaction() 
    transaction.setTimeout(4800) 
    transaction.begin() 
    ... 
    

    が、それでも全く効果が。

データベースでは無制限のタイムアウトが許可されているため、この問題はほとんど発生していません。私が試すことができる何か他にありますか?

答えて