XADataSource (Java Platform SE 8 )
Keywords: javax.sql.XADataSource interface
Date: 2026-04-17

compact2, compact3
javax.sql

## Interface XADataSource

- All Superinterfaces:
    CommonDataSource

      public interface XADataSource
      extends CommonDataSource

  A factory for `XAConnection` objects that is used internally. An object that implements the `XADataSource` interface is typically registered with a naming service that uses the Java Naming and Directory Interface™ (JNDI).

  An implementation of `XADataSource` must include a public no-arg constructor.

  Since:
    1.4

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `XAConnection` | `getXAConnection()` Attempts to establish a physical database connection that can be used in a distributed transaction.
    `XAConnection` | `getXAConnection(String user, String password)` Attempts to establish a physical database connection, using the given user name and password.

    - ### Methods inherited from interface javax.sql.CommonDataSource

      `getLoginTimeout, getLogWriter, getParentLogger, setLoginTimeout, setLogWriter`

- - ### Method Detail

    - #### getXAConnection

          XAConnection getXAConnection()
                                throws SQLException

      Attempts to establish a physical database connection that can be used in a distributed transaction.
      Returns:
        an `XAConnection` object, which represents a physical connection to a data source, that can be used in a distributed transaction
      Throws:
        `SQLException` - if a database access error occurs
        `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
        `SQLTimeoutException` - when the driver has determined that the timeout value specified by the `setLoginTimeout` method has been exceeded and has at least tried to cancel the current database connection attempt
      Since:
        1.4

    - #### getXAConnection

          XAConnection getXAConnection(String user,
                                       String password)
                                throws SQLException

      Attempts to establish a physical database connection, using the given user name and password. The connection that is returned is one that can be used in a distributed transaction.
      Parameters:
        `user` - the database user on whose behalf the connection is being made
        `password` - the user's password
      Returns:
        an `XAConnection` object, which represents a physical connection to a data source, that can be used in a distributed transaction
      Throws:
        `SQLException` - if a database access error occurs
        `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
        `SQLTimeoutException` - when the driver has determined that the timeout value specified by the `setLoginTimeout` method has been exceeded and has at least tried to cancel the current database connection attempt
      Since:
        1.4

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.