PDO上已存在活动的交易错误 - > beginTransaction()

时间:2015-09-16 09:20:52

标签: php mysql cakephp pdo transactions

我有一个基于CakePHP构建的应用程序。有4个应用程序环境 - 本地,测试,验收和生产。 突然只有其中一个(当然是它的生产)我开始遇到交易问题。 我得到的错误是:

There is already an active transaction
#0 /.../lib/Cake/Model/Datasource/DboSource.php(2294): PDO->beginTransaction()
#1 /.../lib/Cake/Model/Model.php(1749): DboSource->begin()
#2 /.../app/Model/AppModel.php(499): Model->save(Array, true, Array)
.....

MySQL版本和设置似乎在所有环境中都是相同的,可能是 max_connections 的唯一区别。最近我们还没有CakePHP框架更新,并且应用程序代码在环境中是相同的。

Debug告诉我在脚本执行期间连续调用了2个BEGIN事务,但正如官方MySQL文档所说:

  

无法嵌套交易。这是隐含的结果   发出START时对任何当前事务执行的提交   TRANSACTION语句或其中一个同义词。

所以我认为它应该不是问题,而且在所有环境中都有相同的2 BEGIN,并且一切都在那里工作正常。

有些东西告诉我,如果4个环境中有3个环境一切正常,原因就在环境中,但我不知道它可能是什么,谷歌并没有多说什么。

我应该寻找的原因是什么?

0 个答案:

没有答案