Class OracleDataSource
- All Implemented Interfaces:
Serializable,Wrapper,Referenceable,CommonDataSource,DataSource,OracleCommonDataSource,OracleDataSource,oracle.jdbc.diagnostics.Diagnosable,oracle.jdbc.diagnostics.PropertyChangeListener,oracle.jdbc.internal.Monitor,oracle.jdbc.replay.internal.OracleDataSource,OracleDataSource
- Direct Known Subclasses:
OracleConnectionPoolDataSource,OracleDataSource,OracleDataSourceImpl
A DataSource object is a factory for Connection objects.
An object that implements the DataSource interface will typically
be registered with a JNDI service provider. A JDBC driver that is
accessed via the DataSource API does not automatically register
itself with the DriverManager.
This data Source supports Application Continuity (AC) and
transparent JDBC operation replay upon a failover. To disable
such feature, set "oracle.jdbc.enableACSupport" to false either
as a Java system property, or as a connection property on this
data source.
For data source creation using Oracle JDBC driver 21c and higher
versions, we strongly recommend to use this data source,
instead of older ones, like
oracle.jdbc.pool.OracleDataSource, or
oracle.jdbc.replay.OracleDataSourceImpl.
This applies to both standalone and application container use cases.
The following example illustrates the use of this data source to create a JDBC connection:
oracle.jdbc.datasource.OracleDataSource ods =
new oracle.jdbc.datasource.impl.OracleDataSource();
ods.setURL("jdbc:oracle:thin:@//dbhost:dbport/dbservice");
ods.setUser("User");
ods.setPassword("Passwd");
ods.setConnectionProperty("connProp1", "value1");
ods.setConnectionProperty("connProp2", "value2");
Connection conn = ods.getConnection();
The following example illustrates the use of a connection obtained from this data source for Application Continuity protection:
oracle.jdbc.OracleConnection conn =
(oracle.jdbc.OracleConnection) ods.getConnection();
conn.beginRequest();
...... // JDBC calls protected by AC
conn.endRequest();
- Since:
- 21c
- See Also:
-
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
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected final Stringprotected final Stringprotected Propertiesprotected Stringprotected Stringprotected static final Stringprotected Stringprotected static final Stringprotected static final Stringprotected AtomicBooleanprotected oracle.jdbc.driver.OracleDriverprotected Stringprotected static final Stringprotected static final Stringprotected booleanprotected booleanprotected static final intprotected static final intprotected static final intprotected static final intprotected static final Stringprotected static final intprotected static final intprotected static final Stringprotected static final intprotected static final Stringprotected booleanprotected booleanprotected static final Stringprotected booleanprotected AtomicBooleanprotected booleanbooleanprotected booleanprotected booleanprotected booleanprotected booleanprotected intprotected PrintWriterprotected intprotected booleanprotected Stringprotected oracle.jdbc.internal.OpaqueStringprotected intprotected static final Stringprotected static final Stringprotected intprotected intprotected intprotected static final Stringprotected Stringprotected Stringprotected static final intprotected static final intprotected static final Stringprotected oracle.jdbc.replay.internal.ReplayableConnection.StateRestorationTypeprotected Stringstatic final booleanprotected final AtomicBooleanprotected static intprotected Stringprotected StringFields 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 -
Method Summary
Modifier and TypeMethodDescriptionprotected voidstatic voidcleanup()voidvoidClears replay statistics accumulated so far on all connection created by this data source.Creates a new instanceprotected static Stringprotected ConnectionenableACAndProxifyIfNecessary(Connection conn, OracleConnectionBuilderImpl connBuilder) protected voidfinalize()Attempt to establish a database connection.getConnection(String user, String password) Attempt to establish a database connection.protected ConnectiongetConnection(String _user, oracle.jdbc.internal.OpaqueString _passwd) Attempt to establish a database connection.protected ConnectiongetConnection(OracleConnectionBuilderImpl builder) Attempt to establish a database connection.protected oracle.jdbc.internal.OracleConnectionoracle.jdbc.replay.internal.ConnectionInitializationCallbackObtains the registered connection initialization callback, if any.getConnectionNoProxy(OracleConnectionBuilderImpl connBuilder) Gets the connection properties that are set on this data source object.getConnectionProperty(String propertyName) Gets the specified connection property that is set on this data source.Get the name of the database set on this DataSource instance.Get the datasource name for this instance if set.Get the Desciption of this data source.oracle.jdbc.diagnostics.DiagnosableAC specifcGet the Oracle JDBC driver type set for this datasource instancebooleangetExplicitCachingEnabled Returns the current value of the explicitCachingEnabled property.booleangetImplicitCachingEnabled Returns the current value of the implicitCachingEnabled property.intGets the maximum time in seconds that this data source can wait while attempting to connect to a database.Get the log writer for this data source.intgetMaxStatements Returns the current value of the maxStatements property.final oracle.jdbc.internal.Monitor.CloseableLockGet the network protocol set.protected oracle.jdbc.internal.OpaqueStringprotected ConnectiongetPhysicalConnection(Properties prop, oracle.jdbc.internal.AbstractConnectionBuilder builder) Get a connection to the database specified by this datasource.intGet the port number on which server is listening for requests.oracle.jdbc.proxy.ProxyFactoryObtains replay statistics accumulated so far.intGets the datasource role name.Get the name of the server on which database is running.Get the service_name To distinguish services from instances, a new URL using service_name is added, existing url with SID will be supported, but deprecated.protected final booleanprotected static StringgetSystemProperty(String property, String defaultValue) Get the TNS entry name for this instance if set.getURL()Get the URL for this datasource.getUser()Get the user name for this datasource.booleanisWrapperFor(Class<?> iface) Since this class is not a wrapper, just check to see if this implements the requested interface.protected voidmakeURL()voidregisterConnectionInitializationCallback(oracle.jdbc.replay.internal.ConnectionInitializationCallback cbk) Registers a ConnectionInitializationCallback with the data source.static voidvoidremoveReplayStatistics(oracle.jdbc.replay.internal.ReplayStatistics stats) voidsetConnectionProperties(Properties properties) Sets the Connection Properties for the datasourcevoidsetConnectionProperty(String name, String value) Sets a connection property on the data source.voidsetDatabaseName(String dbname) Set the name of a particular database on a server.voidsetDataSourceName(String dsname) Set the DataSourceName.voidsetDescription(String des) Set the Desciption for this data source instance.voidsetDriverType(String dt) Set the JDBC driver type.voidsetExplicitCachingEnabled(boolean cache) setExplicitCachingEnabled Sets the value of the explicitCachingEnabled property, which enables or disables the explicit cache.voidsetHostnameResolver(OracleHostnameResolver hostnameResolver) Sets a custom hostname resolver implementingOracleHostnameResolverused to provide a custom DNS name resolution strategy to locate the database host.voidsetImplicitCachingEnabled(boolean cache) setImplicitCachingEnabled Sets the value of the implicitCachingEnabled property, which enables or disables the implicit cache.voidsetLoginTimeout(int timeout) Sets the maximum time in seconds that this data source will wait while attempting to connect to a database.voidSet the log writer for this data source.voidsetMaxStatements(int max) Deprecated.voidSet the network protocol for the connections.voidsetPassword(String pd) Set the password with which connections have to be obtained.voidsetPortNumber(int pn) Set the port number where a server is listening for requests.voidsetRoleName(String roleName) Sets the datasource role name.voidsetServerName(String sn) Set the name of the Server on which database is running.voidsetServiceName(String svcname) Set the service_name of a database on a server.voidsetSingleShardTransactionSupport(boolean allow) Sets single shard transaction support in auto commit OFF mode.final voidsetSSLContext(SSLContext sslContext) Specifies aSSLContextto use as a factory for SSLEngine objects that carry out the TLS protocol.voidsetTNSEntryName(String dbname) Set the TNS entry name.final voidsetTokenSupplier(Supplier<? extends AccessToken> tokenSupplier) Sets a supplier function that generates an access token when creating a connection with thisDataSource.protected voidsetupACSpecificProperties(boolean useProxy) voidSet the URL from which connections have to be obtained.voidSet the user name with which connections have to be obtained.voidunregisterConnectionInitializationCallback(oracle.jdbc.replay.internal.ConnectionInitializationCallback cbk) Removes the ConnectionInitializationCallback registered with the data source, if any.static void<T> TSince this class is not a wrapper, just check to see if this implements the requested interface.voidupdateReplayStatistics(oracle.jdbc.replay.internal.ReplayStatistics newStats) Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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, tracepMethods inherited from interface oracle.jdbc.internal.Monitor
acquireCloseableLock, acquireLock, assertLockHeldByCurrentThread, isReentrantLock, releaseLockMethods inherited from interface oracle.jdbc.datasource.OracleCommonDataSource
createShardingKeyBuilder
-
Field Details
-
unnamedInstanceCount
protected static int unnamedInstanceCount -
DMS_ROOT_NAME
- See Also:
-
DMS_DEFAULT_DATASOURCE_NAME
- See Also:
-
DEFAULT_SERVICE_NAME
- See Also:
-
logWriter
-
loginTimeout
protected int loginTimeout -
databaseName
-
serviceName
-
dataSourceName
-
description
-
networkProtocol
-
portNumber
protected int portNumber -
user
-
password
protected oracle.jdbc.internal.OpaqueString password -
serverName
-
url
-
driverType
-
tnsEntry
-
maxStatements
protected int maxStatements -
implicitCachingEnabled
protected boolean implicitCachingEnabled -
explicitCachingEnabled
protected boolean explicitCachingEnabled -
maxStatementsSet
protected boolean maxStatementsSet -
implicitCachingEnabledSet
protected boolean implicitCachingEnabledSet -
explicitCachingEnabledSet
protected boolean explicitCachingEnabledSet -
connectionProperties
-
isOracleDataSource
public boolean isOracleDataSource -
driver
protected transient oracle.jdbc.driver.OracleDriver driver -
isFirstConnection
-
RECONNECT_DELAY_PROPERTY
- See Also:
-
RECONNECT_RETRIES_PROPERTY
- See Also:
-
reconnectDelay
protected int reconnectDelay -
reconnectRetries
protected int reconnectRetries -
FAILOVER_TYPE_PROPERTY
- See Also:
-
FAILOVER_TYPE_TRANSACTION
protected static final int FAILOVER_TYPE_TRANSACTION- See Also:
-
SESSION_STATE_CONSISTENCY_STATIC
protected static final int SESSION_STATE_CONSISTENCY_STATIC- See Also:
-
FAILOVER_TYPE_AUTO
protected static final int FAILOVER_TYPE_AUTO- See Also:
-
SESSION_STATE_CONSISTENCY_HYBRID
protected static final int SESSION_STATE_CONSISTENCY_HYBRID- See Also:
-
FAILOVER_TYPE_ON_REMOTE
protected static final int FAILOVER_TYPE_ON_REMOTE- See Also:
-
isTransactionReplayEnabled
protected boolean isTransactionReplayEnabled -
isAutoACEnabled
protected boolean isAutoACEnabled -
SESSION_STATE_PROPERTY
- See Also:
-
isReplayInDynamicMode
protected boolean isReplayInDynamicMode -
isHybrid
protected boolean isHybrid -
FAILOVER_RESTORE_PROPERTY
- See Also:
-
FAILOVER_RESTORE_NONE
protected static final int FAILOVER_RESTORE_NONE- See Also:
-
FAILOVER_RESTORE_LEVEL1
protected static final int FAILOVER_RESTORE_LEVEL1- See Also:
-
FAILOVER_RESTORE_LEVEL2
protected static final int FAILOVER_RESTORE_LEVEL2- See Also:
-
FAILOVER_RESTORE_AUTO
protected static final int FAILOVER_RESTORE_AUTO- See Also:
-
stateRestorationType
protected oracle.jdbc.replay.internal.ReplayableConnection.StateRestorationType stateRestorationType -
isStateRestorationAuto
protected boolean isStateRestorationAuto -
INITIATION_TIMEOUT_PROPERTY
- See Also:
-
replayInitiationTimeout
protected int replayInitiationTimeout -
CHECKSUM_PROPERTY
- See Also:
-
clientChecksum12x
-
clientChecksum11203x
-
IGNORE_AC_CONTEXT_PROPERTY
- See Also:
-
ENABLE_AC_SUPPORT_PROPERTY
- See Also:
-
REQUEST_SIZE_LIMIT_PROPERTY
- See Also:
-
ENABLE_SSS_CURSOR_SUPPORT_PROPERTY
- See Also:
-
isSSSCursorEnabled
protected boolean isSSSCursorEnabled -
trackerInitialized
-
doneDumpOnMemoryPressure
-
TRACE
public static final boolean TRACE- See Also:
-
-
Constructor Details
-
OracleDataSource
- Throws:
SQLException
-
-
Method Details
-
dms_data_source_type
-
getConnection
Attempt to establish a database connection.
- Specified by:
getConnectionin interfaceDataSource- Returns:
- a Connection to the database
- Throws:
SQLException- if a database-access error occurs.
-
getConnection
Attempt to establish a database connection.
- Specified by:
getConnectionin interfaceDataSource- Parameters:
user- the database user on whose behalf the Connection is being madepassword- the user's password- Returns:
- a Connection to the database
- Throws:
SQLException- if a database-access error occurs.
-
getConnection
protected Connection getConnection(String _user, oracle.jdbc.internal.OpaqueString _passwd) throws SQLException Attempt to establish a database connection.
- Parameters:
_user- the database user on whose behalf the Connection is being made_passwd- the user's password- Returns:
- a Connection to the database
- Throws:
SQLException- if a database-access error occurs.
-
getConnection
Attempt to establish a database connection.
- Parameters:
builder- Builder which has the required properties set for building the connection- Returns:
- a Connection to the database
- Throws:
SQLException- if a database-access error occurs.
-
getPhysicalConnection
protected Connection getPhysicalConnection(Properties prop, oracle.jdbc.internal.AbstractConnectionBuilder builder) throws SQLException Get a connection to the database specified by this datasource.- Parameters:
prop- Connection properties specified on this datasource.builder- The builder object used to create the connection. May be null if a builder was not used to create the connection.- Returns:
- A database connection
- Throws:
SQLException
-
getLoginTimeout
public int getLoginTimeout()Gets the maximum time in seconds that this data source can wait while attempting to connect to a database. A value of zero means that the timeout is the default system timeout if there is one; otherwise it means that there is no timeout. When a DataSource object is created the login timeout is initially zero.- Specified by:
getLoginTimeoutin interfaceCommonDataSource- Specified by:
getLoginTimeoutin interfaceDataSource- Returns:
- the data source login time limit
- Throws:
SQLException- if a database access error occurs.
-
setLoginTimeout
public void setLoginTimeout(int timeout) Sets the maximum time in seconds that this data source will wait while attempting to connect to a database. A value of zero specifies that the timeout is the default system timeout if there is one; otherwise it specifies that there is no timeout. When a DataSource object is created the login timeout is initially zero.
- Specified by:
setLoginTimeoutin interfaceCommonDataSource- Specified by:
setLoginTimeoutin interfaceDataSource- Parameters:
seconds- the data source login time limit- Throws:
SQLException- if a database access error occurs.
-
setLogWriter
Set the log writer for this data source.
The log writer is a character output stream to which all logging and tracing messages for this data source object instance will be printed. This includes messages printed by the methods of this object, messages printed by methods of other objects manufactured by this object, and so on. Messages printed to a data source specific log writer are not printed to the log writer associated with the java.sql.Drivermanager class. When a DataSource object is created the log writer is initially null, in other words, logging is disabled.
- Specified by:
setLogWriterin interfaceCommonDataSource- Specified by:
setLogWriterin interfaceDataSource- Parameters:
out- the new log writer; to disable, set to null- Throws:
SQLException- if a database-access error occurs.
-
getLogWriter
Get the log writer for this data source.
The log writer is a character output stream to which all logging and tracing messages for this data source object instance will be printed. This includes messages printed by the methods of this object, messages printed by methods of other objects manufactured by this object, and so on. Messages printed to a data source specific log writer are not printed to the log writer associated with the java.sql.Drivermanager class. When a DataSource object is created the log writer is initially null, in other words, logging is disabled.
- Specified by:
getLogWriterin interfaceCommonDataSource- Specified by:
getLogWriterin interfaceDataSource- Returns:
- the log writer for this data source, null if disabled
- Throws:
SQLException- if a database-access error occurs.
-
setTNSEntryName
Set the TNS entry name. Works only for JDBC OCI driver. Assumed that client side Oracle in installed and TNS_ADMIN env variable is set. If URL is set, this property will be ignored.- Parameters:
dbname- tns entry name
-
getTNSEntryName
Get the TNS entry name for this instance if set. Returns null if not set.- Returns:
- TNS entry name
-
setDataSourceName
Set the DataSourceName. Users need not set this as it will be set set automatically depending upon the instance created. Returns OracleDataSource for an OracleDataSource instance. Returns OracleXADataSource for an OracleXADataSource instance.- Specified by:
setDataSourceNamein interfaceOracleCommonDataSource- Parameters:
dsname- DataSource Name to be set.
-
getDataSourceName
Get the datasource name for this instance if set. Returns null if not set.- Specified by:
getDataSourceNamein interfaceOracleCommonDataSource- Returns:
- DaraSource name
-
getDatabaseName
Get the name of the database set on this DataSource instance.- Specified by:
getDatabaseNamein interfaceOracleCommonDataSource- Returns:
- database name set on this instance or null if not set.
-
setDatabaseName
Set the name of a particular database on a server. In Oracle's jargon this is called SID (System Identifier).If URL is set, this property will be ignored.
- Specified by:
setDatabaseNamein interfaceOracleCommonDataSource- Parameters:
dsname- database name to be set.
-
setServiceName
Set the service_name of a database on a server. If URL is set, this property will be ignored. To distinguish services from instances, a new URL using service_name is added, existing url with SID will be supported, but deprecated.- Parameters:
svcname- service_name to be set.
-
getServiceName
Get the service_name To distinguish services from instances, a new URL using service_name is added, existing url with SID will be supported, but deprecated.- Returns:
- service_name assiciated with the instance or null if not set.
-
setServerName
Set the name of the Server on which database is running. If URL is set, this property will be ignored.- Specified by:
setServerNamein interfaceOracleCommonDataSource- Parameters:
sn- server/host name to be set.
-
getServerName
Get the name of the server on which database is running.- Specified by:
getServerNamein interfaceOracleCommonDataSource- Returns:
- server name set on this instance or null if not set.
-
setURL
Set the URL from which connections have to be obtained. If URL is set all other properties like databasename, servername, portNumber, network protocol, tnsentry, and driver Type will be ignored.- Specified by:
setURLin interfaceOracleCommonDataSource- Parameters:
url- URL to be set.
-
getURL
Get the URL for this datasource. Will return the default value "jdbc:oracle:oci8:@" if not set before.- Specified by:
getURLin interfaceOracleCommonDataSource- Throws:
SQLException
-
setUser
Set the user name with which connections have to be obtained.- Specified by:
setUserin interfaceOracleCommonDataSource- Parameters:
user- Username to be set.
-
getUser
Get the user name for this datasource. Will return the default value ("scott") if not set before.- Specified by:
getUserin interfaceOracleCommonDataSource
-
setPassword
Set the password with which connections have to be obtained. The default value is "tiger".- Specified by:
setPasswordin interfaceOracleCommonDataSource- Parameters:
pd- Passowrd to be set.
-
getPassword
protected oracle.jdbc.internal.OpaqueString getPassword() -
getDescription
Get the Desciption of this data source.- Specified by:
getDescriptionin interfaceOracleCommonDataSource- Returns:
- Description that was set or will return null if not set.
-
setDescription
Set the Desciption for this data source instance.- Specified by:
setDescriptionin interfaceOracleCommonDataSource- Parameters:
des- Desciption to be set.
-
getDriverType
Get the Oracle JDBC driver type set for this datasource instance- Returns:
- Driver Type that was set or null if not set.
-
setDriverType
Set the JDBC driver type. Possible values are thin, oci8, and kprb. If URL is set, this property will be ignored.If set to kprb, nothing else is needed to open a connection. This is meant for Server side JDBC driver when running inside server.
If set to thin, serverName, portNumber and databaseName are need to open a connection.
If set to oci, and network protocol is set to IPC or TNSEntryName is set then nothing else is needed. If not, serverName, portNumber and databaseName have to be provided.
- Parameters:
dt- Driver Type tp be set.
-
getNetworkProtocol
Get the network protocol set.- Specified by:
getNetworkProtocolin interfaceOracleCommonDataSource- Returns:
- network protocol that was set or null if not.
-
setNetworkProtocol
Set the network protocol for the connections. Default is "tcp". Can be set to all possible protocols Net8 supports. Only needed for JDBC OCI driver.- Specified by:
setNetworkProtocolin interfaceOracleCommonDataSource- Parameters:
np- set the network protocol to be used.- Throws:
SQLException
-
setPortNumber
public void setPortNumber(int pn) Set the port number where a server is listening for requests. Not required when URL is set.- Specified by:
setPortNumberin interfaceOracleCommonDataSource- Parameters:
pn- port number on which server is listening
-
getPortNumber
public int getPortNumber()Get the port number on which server is listening for requests.- Specified by:
getPortNumberin interfaceOracleCommonDataSource- Returns:
- port number if set or null if not set.
-
getReference
- Specified by:
getReferencein interfaceReferenceable- Throws:
NamingException
-
addRefProperties
-
makeURL
- Throws:
SQLException
-
setMaxStatements
Deprecated.setMaxStatements Specifies the value of the maxStatements property. This will be the size of the application cache (which will be used by both implicit and explicit caching). This value does not apply to the statement cache size of connections created by ImplicitStatementCache for which the cache size is set through java.util.Properties object.- Specified by:
setMaxStatementsin interfaceOracleCommonDataSource- Specified by:
setMaxStatementsin interfaceOracleDataSource- Parameters:
max- Requested size of the cache. If the existing cache size is less than max, statements will be purged to reduce the size.- Throws:
SQLException- if max < 0
-
getMaxStatements
getMaxStatements Returns the current value of the maxStatements property.- Specified by:
getMaxStatementsin interfaceOracleCommonDataSource- Specified by:
getMaxStatementsin interfaceOracleDataSource- Throws:
SQLException
-
setImplicitCachingEnabled
setImplicitCachingEnabled Sets the value of the implicitCachingEnabled property, which enables or disables the implicit cache. Note that this is independent of the cache size, set with setMaxStatements().- Specified by:
setImplicitCachingEnabledin interfaceOracleCommonDataSource- Specified by:
setImplicitCachingEnabledin interfaceOracleDataSource- Parameters:
cache- If true, then implicit caching will be enabled. If false, then any existing statements will be purged and the implicit cache will be disabled.- Throws:
SQLException
-
getImplicitCachingEnabled
getImplicitCachingEnabled Returns the current value of the implicitCachingEnabled property.- Specified by:
getImplicitCachingEnabledin interfaceOracleCommonDataSource- Specified by:
getImplicitCachingEnabledin interfaceOracleDataSource- Throws:
SQLException
-
setExplicitCachingEnabled
setExplicitCachingEnabled Sets the value of the explicitCachingEnabled property, which enables or disables the explicit cache. Note that this is independent of the cache size, set with setMaxStatements().- Specified by:
setExplicitCachingEnabledin interfaceOracleCommonDataSource- Specified by:
setExplicitCachingEnabledin interfaceOracleDataSource- Parameters:
cache- If true, then explicit caching will be enabled. If false, then any existing statements will be purged and the explicit cache will be disabled.- Throws:
SQLException- if called on a logical connection.
-
getExplicitCachingEnabled
getExplicitCachingEnabled Returns the current value of the explicitCachingEnabled property.- Specified by:
getExplicitCachingEnabledin interfaceOracleCommonDataSource- Specified by:
getExplicitCachingEnabledin interfaceOracleDataSource- Throws:
SQLException
-
setConnectionProperties
Sets the Connection Properties for the datasourceThe argument to this method is a Properties object. This properties object is used to create the connections returned by the receiver. The keys and values are Strings. The keys, values, and their meanings are defined in oracle.jdbc.OracleConnection.
- Specified by:
setConnectionPropertiesin interfaceOracleCommonDataSource- Parameters:
properties- a Properties object with the desired connection property names and values.- Throws:
SQLException- See Also:
-
setRoleName
Sets the datasource role name.- Specified by:
setRoleNamein interfaceOracleCommonDataSource- Specified by:
setRoleNamein interfaceOracleDataSource- Parameters:
roleName- datasource role name to be set.- Throws:
SQLException
-
getRoleName
Gets the datasource role name.- Specified by:
getRoleNamein interfaceOracleCommonDataSource- Specified by:
getRoleNamein interfaceOracleDataSource- Returns:
- datasource role name.
-
getConnectionProperties
Gets the connection properties that are set on this data source object. These exclude any sensitive property with "password" in its name (case-insensitive); for example, "password", "oracle.net.websocketPassword", etc.- Specified by:
getConnectionPropertiesin interfaceOracleCommonDataSource- Returns:
- A java.util.Properties object containing all the connection properties set on this data source object, excluding all sensitive properties described above. Null if there are no such connection properties set.
- Throws:
SQLException- If any exception occurs while getting the connection properties.
-
getConnectionProperty
Gets the specified connection property that is set on this data source. Any sensitive property with "password" in its name (case-insensitive, for example, "password", "oracle.net.websocketPassword", etc.) is treated as if that property were not set.- Specified by:
getConnectionPropertyin interfaceOracleCommonDataSource- Parameters:
propertyName- The name of the specified connection property.- Returns:
- The String value of the specified connection property. Null if there is no such connection property set, or the specified connection property has "password" in its name.
- Throws:
SQLException- If any exception occurs while getting the connection property.
-
setConnectionProperty
Sets a connection property on the data source.- Specified by:
setConnectionPropertyin interfaceOracleCommonDataSource- Parameters:
name- The name of the connection property to be set.value- The value of the connection property to be set.- Throws:
SQLException- If any exception occurred while setting the connection property.- See Also:
-
isWrapperFor
Since this class is not a wrapper, just check to see if this implements the requested interface.- Specified by:
isWrapperForin interfaceWrapper- Parameters:
iface- requested interface- Returns:
- true iff this implements the requested interface
- Throws:
SQLException- if the arg is not an interface- Since:
- JDBC 4.0
-
unwrap
Since this class is not a wrapper, just check to see if this implements the requested interface. If it does return this.- Specified by:
unwrapin interfaceWrapper- Parameters:
iface- requested interface- Returns:
- this iff this implements the requested interface
- Throws:
SQLException- if this does not implement the arg or the arg is not an interface- Since:
- JDBC 4.0
-
getParentLogger
- Specified by:
getParentLoggerin interfaceCommonDataSource- Throws:
SQLFeatureNotSupportedException
-
setSSLContext
Description copied from interface:OracleCommonDataSourceSpecifies a
SSLContextto use as a factory for SSLEngine objects that carry out the TLS protocol.The SSLContext must be initialized before establishing a connection with this data source. The certificates specified by that initialization will be used in place of any connection properties that would otherwise have specified certificates, such as key store and trust store property values.
Specifying a null value will clear any non-null
SSLContextpreviously set by this method- Specified by:
setSSLContextin interfaceOracleCommonDataSource- Parameters:
sslContext- An SSLContext to use as an SSLEngine factory. May be null.
-
setSingleShardTransactionSupport
Description copied from interface:OracleCommonDataSourceSets single shard transaction support in auto commit OFF mode. Default value is false. Only used for the sharding driver.- Specified by:
setSingleShardTransactionSupportin interfaceOracleCommonDataSource- Throws:
SQLException
-
setHostnameResolver
Description copied from interface:OracleCommonDataSourceSets a custom hostname resolver implementingOracleHostnameResolverused to provide a custom DNS name resolution strategy to locate the database host.- Specified by:
setHostnameResolverin interfaceOracleCommonDataSource- Parameters:
hostnameResolver- an OracleHostnameResolver to use when resolving the datasource hostname
-
getConnectionDuringExceptionHandling
protected oracle.jdbc.internal.OracleConnection getConnectionDuringExceptionHandling() -
createConnectionBuilder
Creates a new instance- Specified by:
createConnectionBuilderin interfaceDataSource- Specified by:
createConnectionBuilderin interfaceOracleDataSource- Returns:
- The OracleConnectionBuilder instance that was created
-
getConnectionNoProxy
- Specified by:
getConnectionNoProxyin interfaceoracle.jdbc.replay.internal.OracleDataSource- Throws:
SQLException
-
setupACSpecificProperties
- Throws:
SQLException
-
enableACAndProxifyIfNecessary
protected Connection enableACAndProxifyIfNecessary(Connection conn, OracleConnectionBuilderImpl connBuilder) throws SQLException - Throws:
SQLException
-
registerConnectionInitializationCallback
public void registerConnectionInitializationCallback(oracle.jdbc.replay.internal.ConnectionInitializationCallback cbk) throws SQLException Registers a ConnectionInitializationCallback with the data source.- Specified by:
registerConnectionInitializationCallbackin interfaceOracleDataSource- Parameters:
cbk- The ConnectionInitializationCallback to be registered.- Throws:
SQLException- If the argument is null or callback registration fails.
-
unregisterConnectionInitializationCallback
public void unregisterConnectionInitializationCallback(oracle.jdbc.replay.internal.ConnectionInitializationCallback cbk) throws SQLException Removes the ConnectionInitializationCallback registered with the data source, if any.- Specified by:
unregisterConnectionInitializationCallbackin interfaceOracleDataSource- Parameters:
cbk- TheConnectionInitializationCallbackobject to be unregistered.- Throws:
SQLException- If callback removal fails.
-
getConnectionInitializationCallback
public oracle.jdbc.replay.internal.ConnectionInitializationCallback getConnectionInitializationCallback()Description copied from interface:OracleDataSourceObtains the registered connection initialization callback, if any.- Specified by:
getConnectionInitializationCallbackin interfaceOracleDataSource- Returns:
- The registered
ConnectionInitializationCallback, or null if there is no callback registered.
-
getReplayStatistics
Description copied from interface:OracleDataSourceObtains replay statistics accumulated so far. These reflect replay actions across all the connections created by this data source. It is recommended that this call be made when the connections are quiescent and there are few new connections being opened.- Specified by:
getReplayStatisticsin interfaceOracleDataSource- Returns:
- A replay statistics object containing all the metrics.
-
clearDoneDumpOnMemoryPressure
public void clearDoneDumpOnMemoryPressure()- Specified by:
clearDoneDumpOnMemoryPressurein interfaceoracle.jdbc.replay.internal.OracleDataSource
-
getReplayStatisticsString
- Specified by:
getReplayStatisticsStringin interfaceoracle.jdbc.replay.internal.OracleDataSource
-
clearReplayStatistics
public void clearReplayStatistics()Description copied from interface:OracleDataSourceClears replay statistics accumulated so far on all connection created by this data source. It is recommended that this call be made when the connections are quiescent and there are few new connections being opened.- Specified by:
clearReplayStatisticsin interfaceOracleDataSource
-
updateReplayStatistics
public void updateReplayStatistics(oracle.jdbc.replay.internal.ReplayStatistics newStats) - Specified by:
updateReplayStatisticsin interfaceoracle.jdbc.replay.internal.OracleDataSource
-
removeReplayStatistics
public void removeReplayStatistics(oracle.jdbc.replay.internal.ReplayStatistics stats) - Specified by:
removeReplayStatisticsin interfaceoracle.jdbc.replay.internal.OracleDataSource
-
getSystemProperty
-
getRequestSizeLimit
- Specified by:
getRequestSizeLimitin interfaceoracle.jdbc.replay.internal.OracleDataSource- Throws:
SQLException
-
getSSSCursorProperty
- Throws:
SQLException
-
getProxyFactory
- Specified by:
getProxyFactoryin interfaceoracle.jdbc.replay.internal.OracleDataSource- Throws:
SQLException
-
registerMBean
public static void registerMBean() -
unregisterMBean
public static void unregisterMBean() -
cleanup
public static void cleanup() -
finalize
-
getDiagnosable
public oracle.jdbc.diagnostics.Diagnosable getDiagnosable()AC specifc- Specified by:
getDiagnosablein interfaceoracle.jdbc.diagnostics.Diagnosable
-
getMonitorLock
public final oracle.jdbc.internal.Monitor.CloseableLock getMonitorLock()- Specified by:
getMonitorLockin interfaceoracle.jdbc.internal.Monitor
-
setTokenSupplier
Description copied from interface:OracleCommonDataSourceSets a supplier function that generates an access token when creating a connection with this
DataSource. The supplier function is invoked each time thisDataSourcecreates a connection. Instances ofAccessTokenthat are output by the supplier must represent a token type that is supported by Oracle Database for client authentication. The supplier must be thread safe.It is invalid to configure this
DataSourcewith both a token supplier and with a user name or password. If invocations ofOracleCommonDataSource.setUser(String),OracleCommonDataSource.setPassword(String),OracleCommonDataSource.setConnectionProperties(java.util.Properties), orOracleCommonDataSource.setConnectionProperty(String, String)have configured thisDataSourcewith a user name or password, and an invocation of this method has also configured a token supplier, then aSQLExceptionindicating an invalid configuration is thrown when creating a connection with this datasource.Note that
AccessToken.createJsonWebTokenCache(Supplier)can be called to create a thread safeSupplierthat caches tokens from a user definedSupplier.- Specified by:
setTokenSupplierin interfaceOracleCommonDataSource- Parameters:
tokenSupplier- Token supplying function. Notnull.
-