2014-01-14 71 views
3

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

+2

在PostgreSQL文档中搜索“两阶段提交”或“准备事务”。管理层通常是中间件/应用程序级别的东西。温柔介绍这里:http://blog.endpoint.com/2010/07/distributed-transactions-and-two-phase.html –

+0

你在哪个平台上?如果它是Java,那么请考虑一下JTA,它的XA支持几乎在大多数情况下都有效。这比大多数XA实现要好。 –

回答

4

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

  • 本地分布式事务和
  • XA事务。

本地分布式事务通常在同一个RDBMS的不同服务器之间。 Postgres也支持dblink_exec命令。通常,与其他服务器的连接由所谓的数据库链接创建。 Postgres稍微笨拙一些,然后使用其他一些商业级的RDBMS。您首先需要安装扩展才能使用数据库链接。但是,postgres rdbms正在管理事务。

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

在一些像windows这样的操作系统上,事务管理器是其他操作系统的一部分。通常,Java随附事务管理器,并且需要将相应的数据源配置为使用XA。

+0

感谢您的详细回复。我现在很清楚。 –

相关问题