Wygląda na to, że jesteś trochę zdezorientowany. Generalnie systemy baz danych obsługują dwa pojęcia rozproszonych typów transakcji:
- Natywne transakcje rozproszone i
- Transakcje XA.
Transakcje rozproszone natywne są zazwyczaj dokonywane między różnymi serwerami tego samego RDBMS. Postgres obsługuje to również za pomocą polecenia dblink_exec. Generalnie połączenie z drugim serwerem jest tworzone przez tzw. łącze do bazy danych. Postgres jest nieco bardziej nieporadny w użyciu niż inne komercyjne systemy zarządzania bazami danych. Najpierw musisz zainstalować rozszerzenie, aby móc korzystać z łączy do bazy danych. Jednak postgres rdbms zarządza transakcją.
Z drugiej strony transakcje XA są zarządzane przez zewnętrznego menedżera transakcji (TM), a każda z uczestniczących baz danych pełni rolę zasobu XA, który łączy się z menedżerem transakcji. RDBMS nie może już sam decydować, kiedy zatwierdzić transakcję. To jest zadanie menedżera transakcji XA. Używa protokołu 2PC, aby upewnić się, że zmiany są stosowane lub cofane w spójny sposób w bazach danych.
W niektórych systemach operacyjnych, takich jak Windows, menedżer transakcji jest częścią systemu operacyjnego, w innych nie. Zazwyczaj java jest dostarczana z menedżerem transakcji, a odpowiednie źródło danych musi być skonfigurowane do korzystania z XA.