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 Details

    • SQLServerXADataSource

      public SQLServerXADataSource()
  • Method Details

    • 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.
    • getReference

      public javax.naming.Reference getReference()
      Specified by:
      getReference in interface javax.naming.Referenceable
      Overrides:
      getReference in class SQLServerConnectionPoolDataSource