LocalXAConnectionFactory (Apache Tomcat 10.0.20 API Documentation)

Package org.apache.tomcat.dbcp.dbcp2.managed

## Class LocalXAConnectionFactory

- java.lang.Object
- - org.apache.tomcat.dbcp.dbcp2.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.
  Since:
    2.0

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected static class` | `LocalXAConnectionFactory.LocalXAResource` | LocalXAResource is a fake XAResource for non-XA connections.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `LocalXAConnectionFactory​(jakarta.transaction.TransactionManager transactionManager, jakarta.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry, ConnectionFactory connectionFactory)` | Creates an LocalXAConnectionFactory which uses the specified connection factory to create database connections.
    `LocalXAConnectionFactory​(jakarta.transaction.TransactionManager transactionManager, ConnectionFactory connectionFactory)` | Creates an LocalXAConnectionFactory which uses the specified connection factory to create database connections.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Connection` | `createConnection()` | Create a new `Connection` in an implementation specific fashion.
    `ConnectionFactory` | `getConnectionFactory()` |
    `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`

- - ### Constructor Detail

    - #### LocalXAConnectionFactory

          public LocalXAConnectionFactory​(jakarta.transaction.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

    - #### LocalXAConnectionFactory

          public LocalXAConnectionFactory​(jakarta.transaction.TransactionManager transactionManager,
                                          jakarta.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry,
                                          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
        `transactionSynchronizationRegistry` - the optional TSR to register synchronizations with
        `connectionFactory` - the connection factory from which connections will be retrieved
      Since:
        2.8.0

  - ### Method Detail

    - #### 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

    - #### getConnectionFactory

          public ConnectionFactory getConnectionFactory()

      Returns:
        The connection factory.
      Since:
        2.6.0

    - #### 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