public abstract class

ConnectionFactoryUtils

extends Object
java.lang.Object
   ↳ org.springframework.jca.cci.connection.ConnectionFactoryUtils

Class Overview

Helper class that provides static methods for obtaining CCI Connections from a javax.resource.cci.ConnectionFactory. Includes special support for Spring-managed transactional Connections, e.g. managed by CciLocalTransactionManager or JtaTransactionManager.

Used internally by CciTemplate, Spring's CCI operation objects and the CciLocalTransactionManager. Can also be used directly in application code.

Summary

Public Constructors
ConnectionFactoryUtils()
Public Methods
static Connection doGetConnection(ConnectionFactory cf)
Actually obtain a CCI Connection from the given ConnectionFactory.
static void doReleaseConnection(Connection con, ConnectionFactory cf)
Actually close the given Connection, obtained from the given ConnectionFactory.
static Connection getConnection(ConnectionFactory cf, ConnectionSpec spec)
Obtain a Connection from the given ConnectionFactory.
static Connection getConnection(ConnectionFactory cf)
Obtain a Connection from the given ConnectionFactory.
static boolean isConnectionTransactional(Connection con, ConnectionFactory cf)
Determine whether the given JCA CCI Connection is transactional, that is, bound to the current thread by Spring's transaction facilities.
static void releaseConnection(Connection con, ConnectionFactory cf)
Close the given Connection, obtained from the given ConnectionFactory, if it is not managed externally (that is, not bound to the thread).
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public ConnectionFactoryUtils ()

Public Methods

public static Connection doGetConnection (ConnectionFactory cf)

Actually obtain a CCI Connection from the given ConnectionFactory. Same as getConnection(ConnectionFactory), but throwing the original ResourceException.

Is aware of a corresponding Connection bound to the current thread, for example when using CciLocalTransactionManager. Will bind a Connection to the thread if transaction synchronization is active (e.g. if in a JTA transaction).

Directly accessed by TransactionAwareConnectionFactoryProxy.

Parameters
cf the ConnectionFactory to obtain Connection from
Returns
  • a CCI Connection from the given ConnectionFactory
Throws
if thrown by CCI API methods
ResourceException

public static void doReleaseConnection (Connection con, ConnectionFactory cf)

Actually close the given Connection, obtained from the given ConnectionFactory. Same as releaseConnection(Connection, ConnectionFactory), but throwing the original ResourceException.

Directly accessed by TransactionAwareConnectionFactoryProxy.

Parameters
con the Connection to close if necessary (if this is null, the call will be ignored)
cf the ConnectionFactory that the Connection was obtained from (can be null)
Throws
if thrown by JCA CCI methods
ResourceException

public static Connection getConnection (ConnectionFactory cf, ConnectionSpec spec)

Obtain a Connection from the given ConnectionFactory. Translates ResourceExceptions into the Spring hierarchy of unchecked generic data access exceptions, simplifying calling code and making any exception that is thrown more meaningful.

Is aware of a corresponding Connection bound to the current thread, for example when using CciLocalTransactionManager. Will bind a Connection to the thread if transaction synchronization is active (e.g. if in a JTA transaction).

Parameters
cf the ConnectionFactory to obtain Connection from
spec the ConnectionSpec for the desired Connection (may be null). Note: If this is specified, a new Connection will be obtained for every call, without participating in a shared transactional Connection.
Returns
  • a CCI Connection from the given ConnectionFactory
Throws
CannotGetCciConnectionException if the attempt to get a Connection failed

public static Connection getConnection (ConnectionFactory cf)

Obtain a Connection from the given ConnectionFactory. Translates ResourceExceptions into the Spring hierarchy of unchecked generic data access exceptions, simplifying calling code and making any exception that is thrown more meaningful.

Is aware of a corresponding Connection bound to the current thread, for example when using CciLocalTransactionManager. Will bind a Connection to the thread if transaction synchronization is active (e.g. if in a JTA transaction).

Parameters
cf the ConnectionFactory to obtain Connection from
Returns
  • a CCI Connection from the given ConnectionFactory
Throws
CannotGetCciConnectionException if the attempt to get a Connection failed

public static boolean isConnectionTransactional (Connection con, ConnectionFactory cf)

Determine whether the given JCA CCI Connection is transactional, that is, bound to the current thread by Spring's transaction facilities.

Parameters
con the Connection to check
cf the ConnectionFactory that the Connection was obtained from (may be null)
Returns
  • whether the Connection is transactional

public static void releaseConnection (Connection con, ConnectionFactory cf)

Close the given Connection, obtained from the given ConnectionFactory, if it is not managed externally (that is, not bound to the thread).

Parameters
con the Connection to close if necessary (if this is null, the call will be ignored)
cf the ConnectionFactory that the Connection was obtained from (can be null)