Parece que estás un poco confundido. En general, los sistemas de bases de datos admiten dos nociones de tipos de transacciones distribuidas:
- Transacciones nativas distribuidas y
- Transacciones XA.
Las transacciones distribuidas nativas generalmente se realizan entre diferentes servidores del mismo RDBMS. Postgres también admite esto con el comando dblink_exec. Generalmente, la conexión con el otro servidor se crea mediante un enlace de base de datos. Postgres es un poco más complicado de usar que otros RDBMS de grado comercial. Primero debe instalar una extensión para poder usar los enlaces de la base de datos. Sin embargo, postgres rdbms está administrando la transacción.
Las transacciones XA, por otro lado, son administradas por el administrador de transacciones externo (TM) y cada una de las bases de datos participantes tiene la función de un recurso XA, que se inscribe en el administrador de transacciones. El RDBMS ya no puede decidir por sí mismo cuándo realizar una transacción. Esta es la tarea del administrador de transacciones XA. Utiliza un protocolo 2PC para asegurarse de que los cambios se apliquen o reviertan de manera coherente en todas las bases de datos.
En algunos sistemas operativos como Windows, un administrador de transacciones es parte del sistema operativo en otros no. Generalmente, Java se envía con un administrador de transacciones y la fuente de datos correspondiente debe configurarse para usar XA.