Package org.firebirdsql.ds
Class XAConnectionHandler
- java.lang.Object
-
- org.firebirdsql.ds.XAConnectionHandler
-
- All Implemented Interfaces:
java.lang.reflect.InvocationHandler
public class XAConnectionHandler extends java.lang.Object
InvocationHandler for the logical connection returned by FBXAConnection.- Since:
- 2.2
- Author:
- Mark Rotteveel
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
CLOSED_MESSAGE
protected java.sql.Connection
connection
protected boolean
forcedClose
protected static java.lang.String
FORCIBLY_CLOSED_MESSAGE
protected FBPooledConnection
owner
protected java.sql.Connection
proxy
-
Constructor Summary
Constructors Modifier Constructor Description protected
XAConnectionHandler(java.sql.Connection connection, FBXAConnection owner)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
close()
Closes this PooledConnectionHandler.protected void
closeStatements()
protected void
forgetStatement(org.firebirdsql.ds.StatementHandler stmtHandler)
protected java.sql.Connection
getProxy()
protected void
handleClose(boolean notifyOwner)
HandleConnection.close()
method.java.lang.Object
invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)
protected boolean
isClosed()
protected boolean
isRollbackAllowed()
Method to decide if calling rollback on the physical connection for cleanup (in handleClose()) is allowed.protected void
statementErrorOccurred(org.firebirdsql.ds.StatementHandler stmtHandler, java.sql.SQLException sqle)
-
-
-
Field Detail
-
CLOSED_MESSAGE
protected static final java.lang.String CLOSED_MESSAGE
- See Also:
- Constant Field Values
-
FORCIBLY_CLOSED_MESSAGE
protected static final java.lang.String FORCIBLY_CLOSED_MESSAGE
- See Also:
- Constant Field Values
-
owner
protected final FBPooledConnection owner
-
connection
protected volatile java.sql.Connection connection
-
proxy
protected volatile java.sql.Connection proxy
-
forcedClose
protected volatile boolean forcedClose
-
-
Constructor Detail
-
XAConnectionHandler
protected XAConnectionHandler(java.sql.Connection connection, FBXAConnection owner)
-
-
Method Detail
-
isRollbackAllowed
protected boolean isRollbackAllowed() throws java.sql.SQLException
Method to decide if calling rollback on the physical connection for cleanup (in handleClose()) is allowed.NOTE: This method is not involved in rollback decisions for calls to the proxy.
- Returns:
true
when calling rollback is allowed- Throws:
java.sql.SQLException
-
invoke
public java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args) throws java.lang.Throwable
- Specified by:
invoke
in interfacejava.lang.reflect.InvocationHandler
- Throws:
java.lang.Throwable
-
handleClose
protected void handleClose(boolean notifyOwner) throws java.sql.SQLException
HandleConnection.close()
method. This implementation closes the connection and associated statements.- Parameters:
notifyOwner
-true
when connection owner should be notified of closure.- Throws:
java.sql.SQLException
- if underlying connection threw an exception.
-
getProxy
protected java.sql.Connection getProxy()
- Returns:
- Proxy for the Connection object
-
close
protected void close() throws java.sql.SQLException
Closes this PooledConnectionHandler. Intended to be called by the ConnectionPoolDataSource when it wants to forcibly close the logical connection to reuse it.- Throws:
java.sql.SQLException
-
isClosed
protected boolean isClosed()
-
statementErrorOccurred
protected void statementErrorOccurred(org.firebirdsql.ds.StatementHandler stmtHandler, java.sql.SQLException sqle)
-
forgetStatement
protected void forgetStatement(org.firebirdsql.ds.StatementHandler stmtHandler)
-
closeStatements
protected void closeStatements() throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
-