Package oracle.jdbc.replay

## Class OracleXADataSourceImpl

- 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
          - - oracle.jdbc.replay.OracleXADataSourceImpl

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`, `oracle.jdbc.diagnostics.Diagnosable`, `oracle.jdbc.diagnostics.PropertyChangeListener`, `oracle.jdbc.internal.Monitor`, `oracle.jdbc.replay.internal.OracleConnectionPoolDataSource`, `oracle.jdbc.replay.internal.OracleDataSource`, `oracle.jdbc.replay.internal.OracleXADataSource`, `OracleConnectionPoolDataSource`, `OracleDataSource`, `OracleXADataSource`

    public class OracleXADataSourceImpl
    extends OracleXADataSource

XADataSource implementation that provides Application Continuity protection for applications using only local transactions or local transactions that are promotable to global/XA transactions.

Both JDBC and Java Transaction API (JTA) allow a JDBC connection to interchangeably participate in local and global/XA transactions. However, many customer applications obtain connections from an XA data source, but use these connections to perform only local transactions. These applications can use this data source to get AC protection.

Whenever an underlying physical connection starts to participate in a global/XA transaction, or engage in any XA operation, replay is disabled on that connection. The XA operations function normally, but the application does not get Application Continuity protection.

Once replay is disabled on a connection for the above reasons, it remains disabled until the next request begin. Switching from global/XA transaction to local transaction mode does not automatically re-enable replay on a connection.

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();

The following example illustrates the use of a connection obtained from this data source for Application Continuity protection:

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

        XAConnection xaconn = rxads.getXAConnection();
        Connection conn = xaconn.getConnection();  // Implicit request begin
        ......  // JDBC calls protected by Application Continuity
        conn.close();  // Implicit request end

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
`OracleXADataSourceImpl()`

### Method Summary

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

`createXAConnectionBuilder, getXAConnection, getXAConnection, getXAConnection`

### 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

#### OracleXADataSourceImpl

    public OracleXADataSourceImpl()
                           throws java.sql.SQLException

Throws:
  `java.sql.SQLException`