Class SQLServerXADataSource

  • All Implemented Interfaces:
    ISQLServerDataSource, java.io.Serializable, java.sql.Wrapper, javax.naming.Referenceable, javax.sql.CommonDataSource, javax.sql.ConnectionPoolDataSource, javax.sql.DataSource, javax.sql.XADataSource

    public final class SQLServerXADataSource
    extends SQLServerConnectionPoolDataSource
    implements javax.sql.XADataSource
    Provides database connections for use in distributed (XA) transactions. SQLServerXADataSource also supports connection pooling of physical connections. The XADataSource and XAConnection interfaces, which are defined in the package javax.sql, are implemented by sqlserver. An XAConnection object is a pooled connection that can participate in a distributed transaction. More precisely, XAConnection extends the PooledConnection interface by adding the method getXAResource. This method produces an XAResource object that can be used by a transaction manager to coordinate the work done on this connection with the other participants in the distributed transaction.

    Because they extend the PooledConnection interface, XAConnection objects support all the methods of PooledConnection objects. They are reusable physical connections to an underlying data source and produce logical connection handles that can be passed back to a JDBC application.

    XAConnection objects are produced by an XADataSource object. There is some similarity between ConnectionPoolDataSource objects and XADataSource objects in that they are both implemented below a DataSource layer that is visible to the JDBC application. This architecture allows sqlserver to support distributed transactions in a way that is transparent to the application.

    SQLServerXADataSource can be configured to integrate with Microsoft Distributed Transaction Coordinator (DTC) to provide true, distributed transaction processing.

    See Also:
    Serialized Form
    • Constructor Detail

      • SQLServerXADataSource

        public SQLServerXADataSource()
    • Method Detail

      • getXAConnection

        public javax.sql.XAConnection getXAConnection​(java.lang.String user,
                                                      java.lang.String password)
                                               throws java.sql.SQLException
        Returns a physical database connection to particate in an XA transaction with the specified user and password. This API should only be called by XA connection pool implementations, not regular JDBC application code.
        Specified by:
        getXAConnection in interface javax.sql.XADataSource
        Returns:
        A new XAConnection
        Throws:
        java.sql.SQLException - The database connection failed.
      • getXAConnection

        public javax.sql.XAConnection getXAConnection()
                                               throws java.sql.SQLException
        Returns a physical database connection to particate in an XA transaction. This API should only be called by XA connection pool implementations, not regular JDBC application code.
        Specified by:
        getXAConnection in interface javax.sql.XADataSource
        Returns:
        A new XAConnection
        Throws:
        java.sql.SQLException - The database connection failed.