如何在postgresql中处理分布式事务?

时间:2014-01-14 08:57:16

标签: postgresql distributed-transactions xa

任何人都可以告诉我如何在postgresql中处理分布式事务,这也称为“XA”?有没有关于它的资源?非常感谢任何答案。

1 个答案:

答案 0 :(得分:6)

看起来你有点困惑。通常,数据库系统支持两种分布式事务类型的概念:

  • 原生分布式事务和
  • XA交易。

本机分布式事务通常位于同一RDBMS的不同服务器之间。 Postgres也使用dblink_exec命令支持这一点。通常,与其他服务器的连接由所谓的数据库链接创建。 Postgres使用其他一些商业级RDBMS比较笨拙。首先需要安装扩展才能使用数据库链接。然而,postgres rdbms正在管理交易。

另一方面,XA事务由外部事务管理器(TM)管理,并且每个参与数据库都具有XA资源的角色,该资源与事务管理器一起使用。 RDBMS无法再决定何时提交事务。这是XA事务管理器的任务。他使用2PC协议确保在数据库中以一致的方式应用或回滚更改。

在某些操作系统(如Windows)上,事务管理器是操作系统的一部分而不是其他操作系统。通常,java随附事务管理器,并且需要将相应的数据源配置为使用XA。