JDBCXAConnectionWrapper (HSQLDB 2.4.0 API)
Date: 2017-04-09

org.hsqldb.jdbc.pool

## Class JDBCXAConnectionWrapper

- java.lang.Object
- - org.hsqldb.jdbc.JDBCConnection
  - - org.hsqldb.jdbc.pool.JDBCXAConnectionWrapper

- All Implemented Interfaces:
    AutoCloseable, 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

    Constructors
    Constructor and Description
    `JDBCXAConnectionWrapper(JDBCXAResource xaResource, JDBCXAConnection xaConnection, JDBCConnection databaseConnection)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.