org.apache.commons.dbcp.managed
Class LocalXAConnectionFactory

java.lang.Object
  extended by org.apache.commons.dbcp.managed.LocalXAConnectionFactory
All Implemented Interfaces:
ConnectionFactory, XAConnectionFactory

public class LocalXAConnectionFactory
extends Object
implements XAConnectionFactory

An implementation of XAConnectionFactory which manages non-XA connections in XA transactions. A non-XA connection commits and rolls back as part of the XA transaction, but is not recoverable since the connection does not implement the 2-phase protocol.

Version:
$Revision$
Author:
Dain Sundstrom

Nested Class Summary
protected static class LocalXAConnectionFactory.LocalXAResource
          LocalXAResource is a fake XAResource for non-XA connections.
 
Field Summary
protected  ConnectionFactory connectionFactory
           
protected  TransactionRegistry transactionRegistry
           
 
Constructor Summary
LocalXAConnectionFactory(TransactionManager transactionManager, ConnectionFactory connectionFactory)
          Creates an LocalXAConnectionFactory which uses the specified connection factory to create database connections.
 
Method Summary
 Connection createConnection()
          Create a new Connection in an implementation specific fashion.
 TransactionRegistry getTransactionRegistry()
          Gets the TransactionRegistry for this connection factory which contains a the XAResource for every connection created by this factory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

transactionRegistry

protected TransactionRegistry transactionRegistry

connectionFactory

protected ConnectionFactory connectionFactory
Constructor Detail

LocalXAConnectionFactory

public LocalXAConnectionFactory(TransactionManager transactionManager,
                                ConnectionFactory connectionFactory)
Creates an LocalXAConnectionFactory which uses the specified connection factory to create database connections. The connections are enlisted into transactions using the specified transaction manager.

Parameters:
transactionManager - the transaction manager in which connections will be enlisted
connectionFactory - the connection factory from which connections will be retrieved
Method Detail

getTransactionRegistry

public TransactionRegistry getTransactionRegistry()
Description copied from interface: XAConnectionFactory
Gets the TransactionRegistry for this connection factory which contains a the XAResource for every connection created by this factory.

Specified by:
getTransactionRegistry in interface XAConnectionFactory
Returns:
the transaction registry for this connection factory

createConnection

public Connection createConnection()
                            throws SQLException
Description copied from interface: XAConnectionFactory
Create a new Connection in an implementation specific fashion.

An implementation can assume that the caller of this will wrap the connection in a proxy that protects access to the setAutoCommit, commit and rollback when enrolled in a XA transaction.

Specified by:
createConnection in interface ConnectionFactory
Specified by:
createConnection in interface XAConnectionFactory
Returns:
a new Connection
Throws:
SQLException - if a database error occurs creating the connection


Copyright © 2001-2010 The Apache Software Foundation. All Rights Reserved.