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:
1.
|
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)
Preconditions:
1. xid !
|
javax.transaction.xa.Xid[] |
recover(int flag)
Preconditions:
1. flag must be one of TMSTARTRSCAN, TMENDRSCAN, TMNOFLAGS or TMSTARTTRSCAN | TMENDRSCAN
2. if flag isn't TMSTARTRSCAN or TMSTARTRSCAN | TMENDRSCAN, a recovery scan must be in progress
Postconditions:
1. list of prepared xids is returned
|
void |
rollback(javax.transaction.xa.Xid xid)
Preconditions:
1. xid is known to the RM or it's in prepared state
Implementation deficiency preconditions:
1. xid must be associated with this connection if it's not in prepared state.
|
boolean |
setTransactionTimeout(int seconds)
We don't do transaction timeouts.
|
void |
start(javax.transaction.xa.Xid xid,
int flags)
Preconditions:
1. flags must be one of TMNOFLAGS, TMRESUME or TMJOIN
2. xid !
|
createConnectionEventaddStatementEventListener, getParentLogger, removeStatementEventListeneraddConnectionEventListener, close, removeConnectionEventListenerpublic PGXAConnection(BaseConnection conn) throws java.sql.SQLException
java.sql.SQLExceptionpublic java.sql.Connection getConnection()
throws java.sql.SQLException
getConnection in interface javax.sql.PooledConnectiongetConnection in class AbstractJdbc23PooledConnectionjava.sql.SQLExceptionpublic javax.transaction.xa.XAResource getXAResource()
getXAResource in interface javax.sql.XAConnectionpublic void start(javax.transaction.xa.Xid xid,
int flags)
throws javax.transaction.xa.XAException
start in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic void end(javax.transaction.xa.Xid xid,
int flags)
throws javax.transaction.xa.XAException
end in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic int prepare(javax.transaction.xa.Xid xid)
throws javax.transaction.xa.XAException
prepare in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic javax.transaction.xa.Xid[] recover(int flag)
throws javax.transaction.xa.XAException
recover in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic void rollback(javax.transaction.xa.Xid xid)
throws javax.transaction.xa.XAException
rollback in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic void commit(javax.transaction.xa.Xid xid,
boolean onePhase)
throws javax.transaction.xa.XAException
commit in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic boolean isSameRM(javax.transaction.xa.XAResource xares)
throws javax.transaction.xa.XAException
isSameRM in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic void forget(javax.transaction.xa.Xid xid)
throws javax.transaction.xa.XAException
forget in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic int getTransactionTimeout()
getTransactionTimeout in interface javax.transaction.xa.XAResourcepublic boolean setTransactionTimeout(int seconds)
setTransactionTimeout in interface javax.transaction.xa.XAResource