2014-11-03 132 views
0

我正在使用JDBC API在informix數據庫中插入多於190 000行的表。首先,我將連接自動提交設置爲false,並且每連續1000行都進行一次連接提交。不過,我得到這個異常:RSAM錯誤:檢測到長事務informix

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 

有誰能夠有更多關於這個異常的想法。

回答

1

你可以與db admin交談,並建議增加日誌大小。您也可以嘗試在一個事務中使用較少的行數:500,200甚至100個。較小的事務可以更快地工作 - 嘗試使用db admin對其進行調整。

更多信息:http://www.tek-tips.com/viewthread.cfm?qid=256031