Изглежда, че сте малко объркан. Обикновено системите за бази данни поддържат две понятия за типове разпределени транзакции:
- Нативни разпределени транзакции и
- XA транзакции.
Родните разпределени транзакции обикновено са между различни сървъри на една и съща RDBMS. Postgres също поддържа това с командата dblink_exec. Обикновено връзката към другия сървър се създава чрез така наречената връзка към база данни. Postgres е малко по-тромав за използване от някои други търговски клас RDBMS. Първо трябва да инсталирате разширение, за да можете да използвате връзки към бази данни. Postgres rdbms обаче управлява транзакцията.
XA транзакциите от друга страна се управляват от външния мениджър на транзакции (TM) и всяка от участващите бази данни има ролята на XA ресурс, който се включва в мениджъра на транзакции. RDBMS вече не може да реши сама кога да извърши транзакция. Това е задачата на XA транзакционния мениджър. Той използва 2PC протокол, за да се увери, че промените се прилагат или връщат назад по последователен начин в базите данни.
При някои операционни системи, като Windows, мениджърът на транзакции е част от операционната система, при други не. Обикновено java се доставя с мениджър на транзакции и съответният източник на данни трябва да бъде конфигуриран да използва XA.