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