Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 更新大型数据集-Spring事务_Oracle_Spring - Fatal编程技术网

Oracle 更新大型数据集-Spring事务

Oracle 更新大型数据集-Spring事务,oracle,spring,Oracle,Spring,我正在使用Spring声明性事务管理。它仅在方法执行完成后提交事务。在Oracle DB中更新超过两万条记录的大型数据集时,我遇到了一个异常 11:16:44,901 ERROR [STDERR] Caused by: javax.transaction.RollbackException: Transaction TransactionImple < ac, BasicAction: a0002ba:b7d:4f602e7f:80 status:

我正在使用Spring声明性事务管理。它仅在方法执行完成后提交事务。在Oracle DB中更新超过两万条记录的大型数据集时,我遇到了一个异常

11:16:44,901 ERROR [STDERR] 
    Caused by: javax.transaction.RollbackException: 
    Transaction TransactionImple < ac, 
    BasicAction: a0002ba:b7d:4f602e7f:80 
    status: ActionStatus.ABORTING > cannot proceed STATUS_ROLLING_BACK
11:16:44,901 ERROR [STDERR]     at org.jboss.resource.connectionmanager.TxConnectionManager.checkTransactionActive(TxConnectionManager.java:332)
11:16:44,901 ERROR [STDERR]     at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.checkTransactionActive(BaseConnectionManager2.java:972)
11:16:44,901 ERROR [STDERR]     at org.jboss.resource.adapter.jdbc.WrapperDataSource.checkTransactionActive(WrapperDataSource.java:161)
11:16:44,901 ERROR [STDERR]     ... 144 more
11:16:44901错误[STDERR]
原因:javax.transaction.RollbackException:
事务处理imple无法继续状态\u回滚
11:16:44901 org.jboss.resource.connectionmanager.TxConnectionManager.checkTransactionActive(TxConnectionManager.java:332)处的错误[STDERR]
11:16:44901 org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.checkTransactionActive(BaseConnectionManager2.java:972)处的错误[STDERR]
11:16:44901 org.jboss.resource.adapter.jdbc.WrapperDataSource.checkTransactionActive(WrapperDataSource.java:161)处的错误[STDERR]
11:16:44901错误[STDERR]。。。还有144个

如果我使用普通JDBC使用批处理更新如此大的数据集,那么我将失去事务(ACID)属性的好处。但在使用Spring事务管理更新这个大型数据集时,我面临着一些问题。有没有人遇到过类似的问题,或者可以提出其他解决方案


我正在使用JTATransactionManager、Jboss 5.1和Spring+iBatis集成。

“如果我使用普通JDBC使用批处理更新如此大的数据集,那么我将失去事务(ACID)属性的好处”?为什么?我的意思是,它会在每个executeBatch stmt上提交。我正在使用Spring事务。如果我使用JDBC,我最终会使用autoCommit=false。@TarunSapra:这有什么问题吗?@TarunSapra:但是如果你想使用ACID事务,autoCommit=false正是你想要的