のタイムアウトを増やすことはできません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.groovy
とBootstrap.groovy
で各種パラメータを試していない - 私は手動でのように、セッションとトランザクションを開いてみました何の効果 :
StatelessSession session = sessionFactory.openStatelessSession() Transaction transaction = session.getTransaction() transaction.setTimeout(4800) transaction.begin() ...
が、それでも全く効果が。
データベースでは無制限のタイムアウトが許可されているため、この問題はほとんど発生していません。私が試すことができる何か他にありますか?