/* * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package javax.sql; import java.sql.*; /** * A factory for {@code XAConnection} objects that is used internally. * An object that implements the {@code XADataSource} interface is * typically registered with a naming service that uses the * Java Naming and Directory Interface™ * (JNDI). *
* An implementation of {@code XADataSource} must include a public no-arg * constructor. * @since 1.4 */ public interface XADataSource extends CommonDataSource { /** * Attempts to establish a physical database connection that can be * used in a distributed transaction. * * @return an {@code XAConnection} object, which represents a * physical connection to a data source, that can be used in * a distributed transaction * @exception SQLException if a database access error occurs * @exception SQLFeatureNotSupportedException if the JDBC driver does not support * this method * @throws SQLTimeoutException when the driver has determined that the * timeout value specified by the {@code setLoginTimeout} method * has been exceeded and has at least tried to cancel the * current database connection attempt * @since 1.4 */ XAConnection getXAConnection() 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. * * @param user the database user on whose behalf the connection is being made * @param password the user's password * @return an {@code XAConnection} object, which represents a * physical connection to a data source, that can be used in * a distributed transaction * @exception SQLException if a database access error occurs * @exception SQLFeatureNotSupportedException if the JDBC driver does not support * this method * @throws SQLTimeoutException when the driver has determined that the * timeout value specified by the {@code setLoginTimeout} method * has been exceeded and has at least tried to cancel the * current database connection attempt * @since 1.4 */ XAConnection getXAConnection(String user, String password) throws SQLException; }