我目前有类似下面的方框。 所以用这个我们设置自动提交关闭,并做了提交/回滚。 现在在回退行,我们得到一个失败说“回滚无效与启用自动提交”。 这怎么可能发生,因为自动提交确实是由begin_work禁用。 这个问题是不存在很长一段时间,它是群体性突发。
在进一步调查,我发现update_sql1创建#temp表,并update_sql2,update_sql3,update_sql4查询同一#temp表,并与无效的对象名称#TEMP'的错误是失败。 立即控制流向,如果($ @),其中$胸径 - > {}自动提交设置为1。首先它真的奇怪,为什么update_sql2及以后计数找不到对象#TEMP,当update_sql1确实是成功的。
任何指针?
====
$ dbh-> db_Main() - > begin_work;
eval {
$dbh->do($update_sql1);
$dbh->do($update_sql2);
$dbh->do($update_sql3);
$dbh->do($update_sql4);
$dbh->commit;
1;
}
if ($@) {
$logger->info("inside catch");
$logger->info("autocommit is $dbh->{AutoCommit}");
$dbh->rollback;
}
===
下面是完整的错误信息
Issuing rollback() due to DESTROY without explicit disconnect() of DBD::ODBC::db handle ..
rollback ineffective with AutoCommit enabled ...