0

我参与的项目依赖于外部服务 (SOA),并且默认情况下启用事务管理。但是,如果发生错误,回滚会导致一些关键数据丢失,例如“付款捕获日志”(例如,如果代码在捕获后失败)。

有没有一种实用的方法可以在当前事务之外运行查询?无论引发什么异常,我总是希望记录外部调用。我不想为约定实现外部日志记录服务。Savepoints 不会把你带到那里,也许那一刻需要另一个数据库连接?

4

1 回答 1

2

有没有一种实用的方法可以在当前事务之外运行查询?

PostgreSQL 本身并不支持您想要的,即自治(子)事务

您可以使用dblink来模拟它们,尽管很笨拙。dblink完全按照您的建议进行;它建立从一个 PostgreSQL 服务器到另一个服务器的连接。该连接可能是连接到其自身的服务器。

如果您可以在应用程序级别执行此操作,通常会更好,但 dblink 肯定是一种选择。

于 2013-08-30T12:32:06.633 回答