【问题标题】:Doctrine DBAL - Transaction and inserts outside transactionDoctrine DBAL - 事务和插入外部事务
【发布时间】:2015-05-07 19:46:09
【问题描述】:

您好,我有一个在事务中工作的服务,它正在与远程 API 通信,我想在这个 API 中记录每个请求/响应,但是如果主事务回滚,任何日志也会被回滚。

我认为是克隆 DBAL 连接。它会在没有事务的情况下打开第二个连接,我可以在其中插入而不用担心回滚吗?

还有其他方法可以解决这个问题吗?

【问题讨论】:

    标签: php mysql orm mariadb dbal


    【解决方案1】:

    您可以只为该表使用非事务性存储引擎(例如 MyISAM),使您的日志记录表不尊重事务。

    这类似于 Oracle 中的自治事务,并在 this question 中提出。

    【讨论】:

    • 我在考虑第二个连接,但我想知道克隆 $DBALObject 是否会打开第二个连接或保持对第一个连接的引用。我得试试。
    • 我刚试过:克隆 $dbalConnection;不打开连接,它是参考。这是我的解决方法:$secondDBAL = \Doctrine\DBAL\DriverManager::getConnection($firstDbal->getParams());
    猜你喜欢
    • 2021-07-28
    • 2014-07-17
    • 2011-01-24
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 2013-04-09
    相关资源
    最近更新 更多