- java.lang.Object
-
- org.hsqldb.jdbc.JDBCConnection
-
- org.hsqldb.jdbc.pool.JDBCXAConnectionWrapper
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.sql.Connection
,java.sql.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:
- HSQLDB 2.0.0
- Author:
- Blaine Simpson (blaine dot simpson at admc dot com)
- See Also:
JDBCConnection
-
-
Constructor Summary
Constructors Constructor Description JDBCXAConnectionWrapper(JDBCXAResource xaResource, JDBCXAConnection xaConnection, JDBCConnection databaseConnection)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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(java.sql.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.java.sql.Savepoint
setSavepoint()
Interceptor method, because this method is prohibited within any global transaction.java.sql.Savepoint
setSavepoint(java.lang.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, beginRequest, clearWarnings, close, closeFully, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, endRequest, getAutoCommit, getCatalog, getClientInfo, getClientInfo, getConnProperties, getHoldability, getMetaData, getNetworkTimeout, getSchema, getSession, getTransactionIsolation, getTypeMap, getURL, getWarnings, isClosed, isInternal, isNetwork, isReadOnly, isValid, isWrapperFor, nativeSQL, prepareCall, prepareCall, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, releaseSavepoint, reset, setCatalog, setClientInfo, setClientInfo, setHoldability, setNetworkTimeout, setReadOnly, setSchema, setTypeMap, unwrap
-
-
-
-
Constructor Detail
-
JDBCXAConnectionWrapper
public JDBCXAConnectionWrapper(JDBCXAResource xaResource, JDBCXAConnection xaConnection, JDBCConnection databaseConnection) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
-
Method Detail
-
setAutoCommit
public void setAutoCommit(boolean autoCommit) throws java.sql.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 interfacejava.sql.Connection
- Overrides:
setAutoCommit
in classJDBCConnection
- Parameters:
autoCommit
- mode- Throws:
java.sql.SQLException
- on error- See Also:
JDBCConnection.getAutoCommit()
-
commit
public void commit() throws java.sql.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 interfacejava.sql.Connection
- Overrides:
commit
in classJDBCConnection
- Throws:
java.sql.SQLException
- on error- See Also:
JDBCConnection.setAutoCommit(boolean)
-
rollback
public void rollback() throws java.sql.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 interfacejava.sql.Connection
- Overrides:
rollback
in classJDBCConnection
- Throws:
java.sql.SQLException
- on error- See Also:
JDBCConnection.setAutoCommit(boolean)
-
rollback
public void rollback(java.sql.Savepoint savepoint) throws java.sql.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 interfacejava.sql.Connection
- Overrides:
rollback
in classJDBCConnection
- Parameters:
savepoint
- theSavepoint
object to roll back to- Throws:
java.sql.SQLException
- on error- See Also:
JDBCSavepoint
,Savepoint
,JDBCConnection.rollback()
-
setSavepoint
public java.sql.Savepoint setSavepoint() throws java.sql.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 interfacejava.sql.Connection
- Overrides:
setSavepoint
in classJDBCConnection
- Returns:
- the new
Savepoint
object - Throws:
java.sql.SQLException
- on error- See Also:
JDBCSavepoint
,Savepoint
-
setSavepoint
public java.sql.Savepoint setSavepoint(java.lang.String name) throws java.sql.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 interfacejava.sql.Connection
- Overrides:
setSavepoint
in classJDBCConnection
- Parameters:
name
- aString
containing the name of the savepoint- Returns:
- the new
Savepoint
object - Throws:
java.sql.SQLException
- if a database access error occurs, this method is called while participating in a distributed transaction, this method is called on a closed connection or thisConnection
object is currently in auto-commit modejava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this method- See Also:
JDBCSavepoint
,Savepoint
-
setTransactionIsolation
public void setTransactionIsolation(int level) throws java.sql.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 interfacejava.sql.Connection
- Overrides:
setTransactionIsolation
in classJDBCConnection
- Parameters:
level
- isolation level- Throws:
java.sql.SQLException
- if a database access error occurs, this method is called on a closed connection or the given parameter is not one of theConnection
constants- See Also:
JDBCDatabaseMetaData.supportsTransactionIsolationLevel(int)
,JDBCConnection.getTransactionIsolation()
-
-