org.hsqldb.jdbc.pool
Class JDBCXAConnectionWrapper

java.lang.Object
  extended by org.hsqldb.jdbc.JDBCConnection
      extended by org.hsqldb.jdbc.pool.JDBCXAConnectionWrapper
All Implemented Interfaces:
Connection, Wrapper

public class JDBCXAConnectionWrapper
extends JDBCConnection

This is a wrapper class for JDBCConnection objects (not java.sql.XAConnection objects). Purpose of this class is to intercept and handle XA-related operations according to chapter 12 of the JDBC 3.0 specification, by returning this wrapped JDBCConnection to end-users. Global transaction services and XAResources will not use this wrapper.

The new implementation extends JDBCConnection. A new object is created based on the session / session proxy of the JDBCXAConnection object in the constructor. (fredt)

Since:
2.0.0
Author:
Blaine Simpson (blaine dot simpson at admc dot com)
See Also:
JDBCConnection

Field Summary
 
Fields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
 
Constructor Summary
JDBCXAConnectionWrapper(JDBCXAResource xaResource, JDBCXAConnection xaConnection, JDBCConnection databaseConnection)
           
 
Method Summary
 void commit()
          Interceptor method, because this method is prohibited within any global transaction.
 void rollback()
          Interceptor method, because this method is prohibited within any global transaction.
 void rollback(Savepoint savepoint)
          Interceptor method, because this method is prohibited within any global transaction.
 void setAutoCommit(boolean autoCommit)
          Interceptor method, because this method is prohibited within any global transaction.
 Savepoint setSavepoint()
          Interceptor method, because this method is prohibited within any global transaction.
 Savepoint setSavepoint(String name)
          Interceptor method, because this method is prohibited within any global transaction.
 void setTransactionIsolation(int level)
          Interceptor method, because there may be XA implications to calling the method within a global transaction.
 
Methods inherited from class org.hsqldb.jdbc.JDBCConnection
abort, clearWarnings, close, closeFully, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, getAutoCommit, getCatalog, getClientInfo, getClientInfo, getHoldability, getMetaData, getNetworkTimeout, getSchema, getSession, getTransactionIsolation, getTypeMap, getWarnings, isClosed, isReadOnly, isValid, isWrapperFor, nativeSQL, prepareCall, prepareCall, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, releaseSavepoint, reset, setCatalog, setClientInfo, setClientInfo, setHoldability, setNetworkTimeout, setReadOnly, setSchema, setTypeMap, unwrap
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JDBCXAConnectionWrapper

public JDBCXAConnectionWrapper(JDBCXAResource xaResource,
                               JDBCXAConnection xaConnection,
                               JDBCConnection databaseConnection)
                        throws SQLException
Throws:
SQLException
Method Detail

setAutoCommit

public void setAutoCommit(boolean autoCommit)
                   throws SQLException
Interceptor method, because this method is prohibited within any global transaction. See section 1.2.4 of the JDBC 3.0 spec.

Specified by:
setAutoCommit in interface Connection
Overrides:
setAutoCommit in class JDBCConnection
Parameters:
autoCommit -
Throws:
SQLException - on error
See Also:
JDBCConnection.getAutoCommit()

commit

public void commit()
            throws SQLException
Interceptor method, because this method is prohibited within any global transaction. See section 1.2.4 of the JDBC 3.0 spec.

Specified by:
commit in interface Connection
Overrides:
commit in class JDBCConnection
Throws:
SQLException - on error
See Also:
JDBCConnection.setAutoCommit(boolean)

rollback

public void rollback()
              throws SQLException
Interceptor method, because this method is prohibited within any global transaction. See section 1.2.4 of the JDBC 3.0 spec.

Specified by:
rollback in interface Connection
Overrides:
rollback in class JDBCConnection
Throws:
SQLException - on error
See Also:
JDBCConnection.setAutoCommit(boolean)

rollback

public void rollback(Savepoint savepoint)
              throws SQLException
Interceptor method, because this method is prohibited within any global transaction. See section 1.2.4 of the JDBC 3.0 spec.

Specified by:
rollback in interface Connection
Overrides:
rollback in class JDBCConnection
Parameters:
savepoint - the Savepoint object to roll back to
Throws:
SQLException - on error
See Also:
JDBCSavepoint, Savepoint, JDBCConnection.rollback()

setSavepoint

public Savepoint setSavepoint()
                       throws SQLException
Interceptor method, because this method is prohibited within any global transaction. See section 1.2.4 of the JDBC 3.0 spec.

Specified by:
setSavepoint in interface Connection
Overrides:
setSavepoint in class JDBCConnection
Returns:
the new Savepoint object
Throws:
SQLException - on error
See Also:
JDBCSavepoint, Savepoint

setSavepoint

public Savepoint setSavepoint(String name)
                       throws SQLException
Interceptor method, because this method is prohibited within any global transaction. See section 1.2.4 of the JDBC 3.0 spec.

Specified by:
setSavepoint in interface Connection
Overrides:
setSavepoint in class JDBCConnection
Parameters:
name - a String containing the name of the savepoint
Returns:
the new Savepoint object
Throws:
SQLException - if a database access error occurs, (JDBC4 Clarification:) this method is called while participating in a distributed transaction, this method is called on a closed connection or this Connection object is currently in auto-commit mode
SQLFeatureNotSupportedException - if the JDBC driver does not support this method
See Also:
JDBCSavepoint, Savepoint

setTransactionIsolation

public void setTransactionIsolation(int level)
                             throws SQLException
Interceptor method, because there may be XA implications to calling the method within a global transaction. See section 1.2.4 of the JDBC 3.0 spec.

HSQLDB does not allow changing the isolation level inside a transaction of any kind.

Specified by:
setTransactionIsolation in interface Connection
Overrides:
setTransactionIsolation in class JDBCConnection
Parameters:
level - isolation level
Throws:
SQLException - if a database access error occurs, this (JDBC4 Clarification:) method is called on a closed connection (:JDBC4 End Clarification) or the given parameter is not one of the Connection constants
See Also:
JDBCDatabaseMetaData.supportsTransactionIsolationLevel(int), JDBCConnection.getTransactionIsolation()


Copyright © 2001 - 2017 HSQL Development Group.