我正在使用JDBC API在informix数据库中的表中插入超过190 000行。首先,我将连接自动提交设置为false,并且我在每第1000行进行连接提交。但是我得到了这个例外:
java.sql.SQLException: Long transaction aborted.
at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:413)
at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3494)
at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3807)
at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2610)
at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2526)
at com.informix.jdbc.IfxSqli.j(IfxSqli.java:2197)
at com.informix.jdbc.IfxSqli.getaRow(IfxSqli.java:4525)
at com.informix.jdbc.IfxResultSet.next(IfxResultSet.java:526)
at etaxarchive.FillDataManager.insertIntoTable(FillDataManager.java:173)
at etaxarchive.FillDataManager.fillTableData(FillDataManager.java:129)
at etaxarchive.ETaxArchiveManager.insertDataInArchiveTables(ETaxArchiveManager.java:224)
at etaxarchive.ETaxArchiveManager.archiveData(ETaxArchiveManager.java:97)
at etaxarchive.ETaxArchive.main(ETaxArchive.java:38)
Caused by: java.sql.SQLException: RSAM error: Long transaction detected.
at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:413)
at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3812)
... 10 more
任何人都可以了解此异常。
答案 0 :(得分:1)
您可以与db admin交谈并建议增加日志大小。您还可以在一个事务中尝试使用较少量的行:500,200甚至100个。较小的事务可以更快地运行 - 尝试使用db admin进行调整。