Thread: 2 phase commit with FDW

2 phase commit with FDW

From
Mladen Gogala
Date:

Hi!

I am getting the following error when trying to PREPARE transaction which updates both local and foreign table:

2/17/22 12:48:00:657 EST] 00000128 RegisteredRes E   WTRN0046E: An attempt by 
the transaction manager to call prepare on a transactional resource has resulted in an error. The error code was XAER_RMFAIL. The exception stack trace follows: org.postgresql.xa.PGXAException: Error preparing 
transaction. prepare xid={XidImpl: formatId(57415344), gtrid_length(36), bqual_length(54),
data(0000017f08cc3aea00000001232c3afce8abf609478378ca6ac9d4bddbfea3e4efa55cf30000017f08cc3aea00000001232c3afce8abf609478378ca6ac9d4bddbfea3e4efa55cf3000000010000000000000000000000000002)}
        at org.postgresql.xa.PGXAConnection.prepare(PGXAConnection.java:365)

There are no errors is all the tables are local. It seems that postgres_fdw is incompatible with the XA protocol. Is there a way around it? If not, we will need yet another code change and another data source.

Regards

-- 
Mladen Gogala
Database Consultant
Tel: (347) 321-1217
https://dbwhisperer.wordpress.com

Re: 2 phase commit with FDW

From
Mladen Gogala
Date:
On 2/17/22 13:10, Mladen Gogala wrote:

Hi!

I am getting the following error when trying to PREPARE transaction which updates both local and foreign table:

2/17/22 12:48:00:657 EST] 00000128 RegisteredRes E   WTRN0046E: An attempt by 
the transaction manager to call prepare on a transactional resource has resulted in an error. The error code was XAER_RMFAIL. The exception stack trace follows: org.postgresql.xa.PGXAException: Error preparing 
transaction. prepare xid={XidImpl: formatId(57415344), gtrid_length(36), bqual_length(54),
data(0000017f08cc3aea00000001232c3afce8abf609478378ca6ac9d4bddbfea3e4efa55cf30000017f08cc3aea00000001232c3afce8abf609478378ca6ac9d4bddbfea3e4efa55cf3000000010000000000000000000000000002)}
        at org.postgresql.xa.PGXAConnection.prepare(PGXAConnection.java:365)

There are no errors is all the tables are local. It seems that postgres_fdw is incompatible with the XA protocol. Is there a way around it? If not, we will need yet another code change and another data source.

Regards

Is there anybody on this list who can tell me whether foreign tables can participate in 2-phase commit or not? My version is 14.2 on Oracle Linux 8.5.

Regards


-- 
Mladen Gogala
Database Consultant
Tel: (347) 321-1217
https://dbwhisperer.wordpress.com

Re: 2 phase commit with FDW

From
Pavel Stehule
Date:
Hi

pá 18. 2. 2022 v 14:24 odesílatel Mladen Gogala <gogala.mladen@gmail.com> napsal:
On 2/17/22 13:10, Mladen Gogala wrote:

Hi!

I am getting the following error when trying to PREPARE transaction which updates both local and foreign table:

2/17/22 12:48:00:657 EST] 00000128 RegisteredRes E   WTRN0046E: An attempt by 
the transaction manager to call prepare on a transactional resource has resulted in an error. The error code was XAER_RMFAIL. The exception stack trace follows: org.postgresql.xa.PGXAException: Error preparing 
transaction. prepare xid={XidImpl: formatId(57415344), gtrid_length(36), bqual_length(54),
data(0000017f08cc3aea00000001232c3afce8abf609478378ca6ac9d4bddbfea3e4efa55cf30000017f08cc3aea00000001232c3afce8abf609478378ca6ac9d4bddbfea3e4efa55cf3000000010000000000000000000000000002)}
        at org.postgresql.xa.PGXAConnection.prepare(PGXAConnection.java:365)

There are no errors is all the tables are local. It seems that postgres_fdw is incompatible with the XA protocol. Is there a way around it? If not, we will need yet another code change and another data source.

Regards

Is there anybody on this list who can tell me whether foreign tables can participate in 2-phase commit or not? My version is 14.2 on Oracle Linux 8.5.


 I don't watch this topic, but it looks so FDW doesn't support 2PC yet


Regards

Pavel

Regards


-- 
Mladen Gogala
Database Consultant
Tel: (347) 321-1217
https://dbwhisperer.wordpress.com