public class PGXAConnection extends PGPooledConnection implements javax.sql.XAConnection, javax.transaction.xa.XAResource
XAResource
.
This implementation doesn't support transaction interleaving (see JTA specification, section 3.4.4) and suspend/resume.
Two-phase commit requires PostgreSQL server version 8.1 or higher.
Constructor and Description |
---|
PGXAConnection(BaseConnection conn) |
Modifier and Type | Method and Description |
---|---|
void |
commit(javax.transaction.xa.Xid xid,
boolean onePhase) |
void |
end(javax.transaction.xa.Xid xid,
int flags)
Preconditions:
Flags is one of TMSUCCESS, TMFAIL, TMSUSPEND
xid != null
Connection is associated with transaction xid
|
void |
forget(javax.transaction.xa.Xid xid)
Does nothing, since we don't do heuristics.
|
java.sql.Connection |
getConnection()
XAConnection interface.
|
int |
getTransactionTimeout()
We don't do transaction timeouts.
|
javax.transaction.xa.XAResource |
getXAResource() |
boolean |
isSameRM(javax.transaction.xa.XAResource xares) |
int |
prepare(javax.transaction.xa.Xid xid)
Prepares transaction.
|
javax.transaction.xa.Xid[] |
recover(int flag)
Recovers transaction.
|
void |
rollback(javax.transaction.xa.Xid xid)
Preconditions:
xid is known to the RM or it's in prepared state
|
boolean |
setTransactionTimeout(int seconds)
We don't do transaction timeouts.
|
void |
start(javax.transaction.xa.Xid xid,
int flags)
Preconditions:
Flags must be one of TMNOFLAGS, TMRESUME or TMJOIN
xid != null
Connection must not be associated with a transaction
The TM hasn't seen the xid before
|
addConnectionEventListener, addStatementEventListener, close, createConnectionEvent, removeConnectionEventListener, removeStatementEventListener
public PGXAConnection(BaseConnection conn) throws java.sql.SQLException
java.sql.SQLException
public java.sql.Connection getConnection() throws java.sql.SQLException
getConnection
in interface javax.sql.PooledConnection
getConnection
in class PGPooledConnection
java.sql.SQLException
public javax.transaction.xa.XAResource getXAResource()
getXAResource
in interface javax.sql.XAConnection
public void start(javax.transaction.xa.Xid xid, int flags) throws javax.transaction.xa.XAException
Implementation deficiency preconditions:
Postconditions:
start
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public void end(javax.transaction.xa.Xid xid, int flags) throws javax.transaction.xa.XAException
Implementation deficiency preconditions:
Postconditions:
end
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public int prepare(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
Implementation deficiency preconditions:
Postconditions:
prepare
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public javax.transaction.xa.Xid[] recover(int flag) throws javax.transaction.xa.XAException
Postconditions:
recover
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public void rollback(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
Implementation deficiency preconditions:
Postconditions:
rollback
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public void commit(javax.transaction.xa.Xid xid, boolean onePhase) throws javax.transaction.xa.XAException
commit
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public boolean isSameRM(javax.transaction.xa.XAResource xares) throws javax.transaction.xa.XAException
isSameRM
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public void forget(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
forget
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public int getTransactionTimeout()
getTransactionTimeout
in interface javax.transaction.xa.XAResource
public boolean setTransactionTimeout(int seconds)
setTransactionTimeout
in interface javax.transaction.xa.XAResource
Copyright © 2025 PostgreSQL Global Development Group. All rights reserved.