Package oracle.jdbc.xa.client

## Class OracleXADataSource

- java.lang.Object
- - oracle.jdbc.datasource.impl.OracleDataSource
  - - oracle.jdbc.datasource.impl.OracleConnectionPoolDataSource
    - - oracle.jdbc.pool.OracleConnectionPoolDataSource
      - - oracle.jdbc.xa.OracleXADataSource
        - - oracle.jdbc.xa.client.OracleXADataSource

All Implemented Interfaces:
  `java.io.Serializable`, `java.sql.Wrapper`, `javax.naming.Referenceable`, `javax.sql.CommonDataSource`, `javax.sql.ConnectionPoolDataSource`, `javax.sql.DataSource`, `javax.sql.XADataSource`, `OracleCommonDataSource`, `OracleConnectionPoolDataSource`, `OracleDataSource`, `OracleXADataSource`, `Diagnosable`, `PropertyChangeListener`, `oracle.jdbc.internal.Monitor`, `oracle.jdbc.replay.internal.OracleConnectionPoolDataSource`, `oracle.jdbc.replay.internal.OracleDataSource`, `oracle.jdbc.replay.internal.OracleXADataSource`, `OracleConnectionPoolDataSource`, `OracleDataSource`, `OracleXADataSource`

Direct Known Subclasses:
  `OracleXADataSourceImpl`

    public class OracleXADataSource
    extends OracleXADataSource

A factory for XAConnection objects. An object that implements the XADataSource interface is typically registered with a JNDI service provider.

For optimization purposes, we implemented 2 versions of OracleXADataSource: one for client, and one for server when used in Java Stored Procedures and in EJB. The server-version is only available in 8.1.6 and post-8.1.6 backends. This one is the implementation of OracleXADataSource for client-side usage and works for both pre- and post-8.1.6 RMs.

The following example illustrates the use of this data source to create a JDBC `XAConnection`:

        oracle.jdbc.xa.client.OracleXADataSource oxads =
          new oracle.jdbc.xa.client.OracleXADataSource();
        oxads.setURL("jdbc:oracle:thin:@//dbhost:dbport/dbservice");
        oxads.setUser("User");
        oxads.setPassword("Passwd");
        oxads.setConnectionProperty("connProp1", "value1");
        oxads.setConnectionProperty("connProp2", "value2");

        javax.sql.XAConnection xaconn = oxads.getXAConnection();

See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from interface oracle.jdbc.internal.Monitor

`oracle.jdbc.internal.Monitor.CloseableLock, oracle.jdbc.internal.Monitor.WaitableMonitor`

### Field Summary

### Fields inherited from class oracle.jdbc.xa.OracleXADataSource

`useNativeXA`

### Fields inherited from class oracle.jdbc.datasource.impl.OracleDataSource

`CHECKSUM_PROPERTY, clientChecksum11203x, clientChecksum12x, connectionProperties, databaseName, dataSourceName, DEFAULT_SERVICE_NAME, description, DMS_DEFAULT_DATASOURCE_NAME, DMS_ROOT_NAME, doneDumpOnMemoryPressure, driver, driverType, ENABLE_AC_SUPPORT_PROPERTY, ENABLE_SSS_CURSOR_SUPPORT_PROPERTY, explicitCachingEnabled, explicitCachingEnabledSet, FAILOVER_RESTORE_AUTO, FAILOVER_RESTORE_LEVEL1, FAILOVER_RESTORE_LEVEL2, FAILOVER_RESTORE_NONE, FAILOVER_RESTORE_PROPERTY, FAILOVER_TYPE_AUTO, FAILOVER_TYPE_ON_REMOTE, FAILOVER_TYPE_PROPERTY, FAILOVER_TYPE_TRANSACTION, IGNORE_AC_CONTEXT_PROPERTY, implicitCachingEnabled, implicitCachingEnabledSet, INITIATION_TIMEOUT_PROPERTY, isAutoACEnabled, isFirstConnection, isHybrid, isOracleDataSource, isReplayInDynamicMode, isSSSCursorEnabled, isStateRestorationAuto, isTransactionReplayEnabled, loginTimeout, logWriter, maxStatements, maxStatementsSet, networkProtocol, password, portNumber, RECONNECT_DELAY_PROPERTY, RECONNECT_RETRIES_PROPERTY, reconnectDelay, reconnectRetries, replayInitiationTimeout, REQUEST_SIZE_LIMIT_PROPERTY, serverName, serviceName, SESSION_STATE_CONSISTENCY_HYBRID, SESSION_STATE_CONSISTENCY_STATIC, SESSION_STATE_PROPERTY, stateRestorationType, tnsEntry, TRACE, trackerInitialized, unnamedInstanceCount, url, user`

### Fields inherited from interface oracle.jdbc.replay.OracleDataSource

`CONNECTION_PROPERTIES, DATA_SOURCE_NAME, DATABASE_NAME, DESCRIPTION, EXPLICIT_CACHING_ENABLED, IMPLICIT_CACHING_ENABLED, MAX_STATEMENTS, NETWORK_PROTOCOL, PASSWORD, PORT_NUMBER, ROLE_NAME, SERVER_NAME, URL, USER`

### Constructor Summary

Constructors
`OracleXADataSource()` Create an OracleXADataSource instance.

### Method Summary

All Methods Instance Methods Concrete Methods
`OracleXAConnectionBuilderImpl` `createXAConnectionBuilder()` Creates a new Oracle XA ConnectionBuilder instance
`javax.sql.XAConnection` `getXAConnection()` Attempt to establish a database connection.
`javax.sql.XAConnection` `getXAConnection​(java.lang.String userName, java.lang.String passwd)` Attempt to establish a database connection.
`javax.sql.XAConnection` `getXAConnection​(OracleXAConnectionBuilderImpl builder)`

### Methods inherited from class oracle.jdbc.xa.OracleXADataSource

`getConnectionDuringExceptionHandling, setURL`

### Methods inherited from class oracle.jdbc.datasource.impl.OracleConnectionPoolDataSource

`createPooledConnectionBuilder, getConnection, getConnection, getConnection, getPhysicalConnection, getPhysicalConnection, getPhysicalConnection, getPhysicalConnection, getPhysicalConnection, getPooledConnection, getPooledConnection`

### Methods inherited from class oracle.jdbc.datasource.impl.OracleDataSource

`addRefProperties, cleanup, clearDoneDumpOnMemoryPressure, clearReplayStatistics, createConnectionBuilder, dms_data_source_type, enableACAndProxifyIfNecessary, finalize, getConnection, getConnection, getConnectionInitializationCallback, getConnectionNoProxy, getConnectionProperties, getConnectionProperty, getDatabaseName, getDataSourceName, getDescription, getDiagnosable, getDriverType, getExplicitCachingEnabled, getImplicitCachingEnabled, getLoginTimeout, getLogWriter, getMaxStatements, getMonitorLock, getNetworkProtocol, getParentLogger, getPassword, getPhysicalConnection, getPortNumber, getProxyFactory, getReference, getReplayStatistics, getReplayStatisticsString, getRequestSizeLimit, getRoleName, getServerName, getServiceName, getSSSCursorProperty, getSystemProperty, getTNSEntryName, getURL, getUser, isWrapperFor, makeURL, registerConnectionInitializationCallback, registerMBean, removeReplayStatistics, setConnectionProperties, setConnectionProperty, setDatabaseName, setDataSourceName, setDescription, setDriverType, setExplicitCachingEnabled, setHostnameResolver, setImplicitCachingEnabled, setLoginTimeout, setLogWriter, setMaxStatements, setNetworkProtocol, setPassword, setPortNumber, setRoleName, setServerName, setServiceName, setSingleShardTransactionSupport, setSSLContext, setTNSEntryName, setTokenSupplier, setupACSpecificProperties, setUser, unregisterConnectionInitializationCallback, unregisterMBean, unwrap, updateReplayStatistics`

### Methods inherited from class java.lang.Object

`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

`getParentLogger`

### Methods inherited from interface javax.sql.ConnectionPoolDataSource

`getLoginTimeout, getLogWriter, setLoginTimeout, setLogWriter`

### Methods inherited from interface javax.sql.DataSource

`getConnection, getConnection, getLoginTimeout, getLogWriter, setLoginTimeout, setLogWriter`

### Methods inherited from interface oracle.jdbc.diagnostics.Diagnosable

`begin, beginCurrentSql, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debugp, end, endCurrentSql, format, isDebugEnabled, isDiagnoseFirstFailureEnabled, isLoggable, isSensitiveEnabled, onClose, propertyChange, resumeLogging, secure, suspendLogging, trace, tracep`

### Methods inherited from interface oracle.jdbc.internal.Monitor

`acquireCloseableLock, acquireLock, assertLockHeldByCurrentThread, isReentrantLock, releaseLock`

### Methods inherited from interface oracle.jdbc.datasource.OracleCommonDataSource

`createShardingKeyBuilder, getConnectionProperties, getConnectionProperty, getDatabaseName, getDataSourceName, getDescription, getNetworkProtocol, getPortNumber, getServerName, getURL, getUser, setConnectionProperties, setConnectionProperty, setDatabaseName, setDataSourceName, setDescription, setHostnameResolver, setNetworkProtocol, setPassword, setPortNumber, setServerName, setSingleShardTransactionSupport, setSSLContext, setTokenSupplier, setUser`

### Methods inherited from interface oracle.jdbc.datasource.OracleConnectionPoolDataSource

`createPooledConnectionBuilder`

### Methods inherited from interface oracle.jdbc.replay.OracleConnectionPoolDataSource

`getPooledConnection`

### Methods inherited from interface oracle.jdbc.datasource.OracleDataSource

`createConnectionBuilder`

### Methods inherited from interface oracle.jdbc.replay.internal.OracleDataSource

`clearDoneDumpOnMemoryPressure, getConnectionNoProxy, getProxyFactory, getReplayStatisticsString, getRequestSizeLimit, removeReplayStatistics, updateReplayStatistics`

### Methods inherited from interface oracle.jdbc.replay.OracleDataSource

`clearReplayStatistics, getConnectionInitializationCallback, getExplicitCachingEnabled, getImplicitCachingEnabled, getMaxStatements, getReplayStatistics, getRoleName, registerConnectionInitializationCallback, setExplicitCachingEnabled, setImplicitCachingEnabled, setMaxStatements, setRoleName, unregisterConnectionInitializationCallback`

### Methods inherited from interface java.sql.Wrapper

`isWrapperFor, unwrap`

### Methods inherited from interface javax.sql.XADataSource

`getLoginTimeout, getLogWriter, setLoginTimeout, setLogWriter`

### Constructor Detail

#### OracleXADataSource

    public OracleXADataSource()
                       throws java.sql.SQLException

Create an OracleXADataSource instance.

Throws:
  `java.sql.SQLException` - if error occurs while creating an object

### Method Detail

#### getXAConnection

    public javax.sql.XAConnection getXAConnection()
                                           throws java.sql.SQLException

Attempt to establish a database connection.

Specified by:
  `getXAConnection` in interface `OracleXADataSource`
Specified by:
  `getXAConnection` in interface `javax.sql.XADataSource`
Specified by:
  `getXAConnection` in class `OracleXADataSource`
Returns:
  an Connection to the database
Throws:
  `java.sql.SQLException` - if a database-access error occurs.

#### getXAConnection

    public javax.sql.XAConnection getXAConnection​(java.lang.String userName,
                                                  java.lang.String passwd)
                                           throws java.sql.SQLException

Attempt to establish a database connection.

Specified by:
  `getXAConnection` in interface `OracleXADataSource`
Specified by:
  `getXAConnection` in interface `javax.sql.XADataSource`
Specified by:
  `getXAConnection` in class `OracleXADataSource`
Parameters:
  `userName` - the database user on whose behalf the Connection is made
  `passwd` - the user's password
Returns:
  an XAConnection encapsulating a connection to the database
Throws:
  `java.sql.SQLException` - if a database-access error occurs.

#### getXAConnection

    public javax.sql.XAConnection getXAConnection​(OracleXAConnectionBuilderImpl builder)
                                           throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### createXAConnectionBuilder

    public OracleXAConnectionBuilderImpl createXAConnectionBuilder()

Creates a new Oracle XA ConnectionBuilder instance

Specified by:
  `createXAConnectionBuilder` in interface `OracleXADataSource`
Specified by:
  `createXAConnectionBuilder` in interface `javax.sql.XADataSource`
Overrides:
  `createXAConnectionBuilder` in class `OracleXADataSource`
Returns:
  The XA ConnectionBuilder instance that was created