Class ManagedDataSource<C extends java.sql.Connection>

  • Type Parameters:
    C - The kind of Connection to manage.
    All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.Wrapper, javax.sql.CommonDataSource, javax.sql.DataSource

    public class ManagedDataSource<C extends java.sql.Connection>
    extends PoolingDataSource<C>
    The ManagedDataSource is a PoolingDataSource that creates ManagedConnections.
    Since:
    2.0
    • Constructor Detail

      • ManagedDataSource

        public ManagedDataSource​(ObjectPool<C> pool,
                                 TransactionRegistry transactionRegistry)
        Creates a ManagedDataSource which obtains connections from the specified pool and manages them using the specified transaction registry. The TransactionRegistry must be the transaction registry obtained from the XAConnectionFactory used to create the connection pool. If not, an error will occur when attempting to use the connection in a global transaction because the XAResource object associated with the connection will be unavailable.
        Parameters:
        pool - the connection pool
        transactionRegistry - the transaction registry obtained from the XAConnectionFactory used to create the connection pool object factory
    • Method Detail

      • getConnection

        public java.sql.Connection getConnection()
                                          throws java.sql.SQLException
        Description copied from class: PoolingDataSource
        Returns a Connection from my pool, according to the contract specified by ObjectPool.borrowObject().
        Specified by:
        getConnection in interface javax.sql.DataSource
        Overrides:
        getConnection in class PoolingDataSource<C extends java.sql.Connection>
        Throws:
        java.sql.SQLException
      • setTransactionRegistry

        public void setTransactionRegistry​(TransactionRegistry transactionRegistry)
        Sets the transaction registry from the XAConnectionFactory used to create the pool. The transaction registry can only be set once using either a connector or this setter method.
        Parameters:
        transactionRegistry - the transaction registry acquired from the XAConnectionFactory used to create the pool