在我的应用程序中,我使用以下函数使用了Oracle(OCI)批量执行。
OCIStmtExecute
对于所有正常情况,它按预期工作。一旦发生Oracle节点故障转移,它就会在提交中给出“ORA-25405”等拒绝。
ORA-25405: transaction status unknown
根据可用的指南,所有人都说“用户必须手动确定交易的状态”。
我的问题是,是否会出现我的批量插入/更新部分产生上述错误的情况?
答案 0 :(得分:0)
来自http://docs.oracle.com/cd/B10500_01/appdev.920/a96584/oci16m89.htm
对于全局事务,事务可能现在处于不确定状态,这意味着事务既未提交也未中止。
这正是你的情况。这意味着交易未提交。
OCITransCommit()
尝试从服务器检索事务的状态。状态将被返回。
然后解决方案是再次尝试使用OCITransCommit()
提交事务,然后获取返回值并进行检查。