public class PoolDataSourceImpl extends java.lang.Object implements PoolDataSource, java.io.Serializable, javax.naming.Referenceable, javax.naming.spi.ObjectFactory, UniversalConnectionPoolAdapter
Besides other data source properties, applications must set the connection factory class name. The connection factory class is a class that implements javax.sql.DataSource and does not implement its own connection pooling. The connection factory's getConnection(...) methods should return a physical JDBC connection to the database. For example, "oracle.jdbc.pool.OracleDataSource" is a valid connection factory class name.
Modifier and Type | Field and Description |
---|---|
protected java.lang.Object |
m_connectionFactory |
protected java.lang.String |
m_connectionFactoryClassName |
protected oracle.ucp.jdbc.JDBCConnectionPool |
m_cp |
static java.lang.String |
SECRET_STORE_CONNECT |
static java.lang.String |
SECRET_STORE_DEFAULT_PASSWORD |
static java.lang.String |
SECRET_STORE_DEFAULT_USERNAME |
static java.lang.String |
SECRET_STORE_PASSWORD |
static java.lang.String |
SECRET_STORE_USERNAME |
UCP_ABANDONED_CONNECTION_TIMEOUT, UCP_CONNECTION_AFFINITY_CALLBACK, UCP_CONNECTION_FACTORY_CLASS_NAME, UCP_CONNECTION_FACTORY_PROPERTIES, UCP_CONNECTION_HARVEST_MAX_COUNT, UCP_CONNECTION_HARVEST_TRIGGER_COUNT, UCP_CONNECTION_INITIALIZATION_CALLBACK, UCP_CONNECTION_LABELING_CALLBACK, UCP_CONNECTION_LABELING_HIGH_COST, UCP_CONNECTION_POOL_NAME, UCP_CONNECTION_PROPERTIES, UCP_CONNECTION_REPURPOSE_THRESHOLD, UCP_CONNECTION_VALIDATION_TIMEOUT, UCP_CONNECTION_WAIT_TIMEOUT, UCP_DATA_SOURCE_FROM_CONFIGURATION, UCP_DATA_SOURCE_NAME, UCP_DATABASE_NAME, UCP_DESCRIPTION, UCP_FAST_CONNECTION_FAILOVER_ENABLED, UCP_HIGH_COST_CONNECTION_REUSE_THRESHOLD, UCP_INACTIVE_CONNECTION_TIMEOUT, UCP_INITIAL_POOL_SIZE, UCP_LOGIN_TIMEOUT, UCP_MAX_CONNECTION_REUSE_COUNT, UCP_MAX_CONNECTION_REUSE_TIME, UCP_MAX_CONNECTIONS_PER_SERVICE, UCP_MAX_CONNECTIONS_PER_SHARD, UCP_MAX_IDLE_TIME, UCP_MAX_POOL_SIZE, UCP_MAX_STATEMENTS, UCP_MIN_POOL_SIZE, UCP_NETWORK_PROTOCOL, UCP_NTH_RETURNED_CONNECTION_TO_VALIDATE, UCP_ONS_CONFIGURATION, UCP_PASSWORD, UCP_PDB_ROLES, UCP_PORT_NUMBER, UCP_PROPERTY_CYCLE, UCP_ROLE_NAME, UCP_SECONDS_TO_TRUST_IDLE_CONNECTION, UCP_SERVER_NAME, UCP_SERVICE_NAME, UCP_SHARDING_MODE, UCP_SQL_FOR_VALIDATE_CONNECTION, UCP_TIME_TO_LIVE_CONNECTION_TIMEOUT, UCP_TIMEOUT_CHECK_INTERVAL, UCP_URL, UCP_USER, UCP_VALIDATE_CONNECTION_ON_BORROW
Constructor and Description |
---|
PoolDataSourceImpl() |
Modifier and Type | Method and Description |
---|---|
UCPConnectionBuilder |
createConnectionBuilder()
Creates a new UCPConnectionBuilder instance.
|
protected void |
createPoolWithDefaultProperties() |
UniversalConnectionPool |
createUniversalConnectionPool()
Creates a Universal Connection Pool instance using this adapter.
|
UniversalConnectionPoolMBean |
createUniversalConnectionPoolMBean()
Creates a Universal Connection Pool MBean using this adapter.
|
int |
getAbandonedConnectionTimeout()
Gets the abandoned connection timeout value.
|
int |
getAvailableConnectionsCount()
Gets the number of available connections in the pool.
|
int |
getBorrowedConnectionsCount()
Gets the number of borrowed connections from the pool.
|
java.sql.Connection |
getConnection()
Attempts to obtain a database connection.
|
java.sql.Connection |
getConnection(java.util.Properties labels)
Attempts to obtain a database connection with the requested connection labels.
|
java.sql.Connection |
getConnection(java.lang.String username, java.lang.String password)
Attempts to obtain a database connection.
|
java.sql.Connection |
getConnection(java.lang.String username, java.lang.String password, java.util.Properties labels)
Attempts to obtain a database connection with the requested connection labels.
|
java.lang.String |
getConnectionFactoryClassName()
Gets the Connection Factory class name.
|
java.util.Properties |
getConnectionFactoryProperties()
Gets the connection factory properties that are set on this data source.
|
java.lang.String |
getConnectionFactoryProperty(java.lang.String propertyName)
Gets the specified connection factory property that are set on this data source.
|
int |
getConnectionHarvestMaxCount()
Gets the maximum number of connections that may be harvested when the connection harvesting occurs.
|
int |
getConnectionHarvestTriggerCount()
Gets the number of available connections at which the connection pool's connection harvesting will occur.
|
ConnectionInitializationCallback |
getConnectionInitializationCallback()
Obtains the registered connection initialization callback, if any.
|
int |
getConnectionLabelingHighCost()
Obtains the cost value which identifies a connection as "high-cost" for connection labeling.
|
java.lang.String |
getConnectionPoolName()
Gets the connection pool name.
|
java.util.Properties |
getConnectionProperties()
Gets the connection properties that are set on this data source.
|
java.lang.String |
getConnectionProperty(java.lang.String propertyName)
Gets the specified connection property that is set on this data source.
|
int |
getConnectionRepurposeThreshold()
Gets the connection repurpose threshold for the pool.
|
int |
getConnectionValidationTimeout()
Connection validation timeout getter
|
int |
getConnectionWaitTimeout()
Gets the amount of time to wait (in seconds) for a used connection to be released by a client.
|
java.lang.String |
getDatabaseName()
Gets the database name.
|
java.lang.String |
getDataSourceName()
Gets the data source name.
|
java.lang.String |
getDescription()
Gets the data source description.
|
boolean |
getFastConnectionFailoverEnabled()
Checks if Fast Connection Failover is enabled.
|
int |
getHighCostConnectionReuseThreshold()
Obtains the high-cost connection reuse threshold property value for connection labeling.
|
int |
getInactiveConnectionTimeout()
Gets the inactive connection timeout.
|
int |
getInitialPoolSize()
Gets the initial pool size.
|
int |
getLoginTimeout()
Gets the default maximum time in seconds that a driver will wait while attempting to connect to a database once the driver has been identified.
|
java.io.PrintWriter |
getLogWriter() |
int |
getMaxConnectionReuseCount()
Gets the connection reuse count property.
|
long |
getMaxConnectionReuseTime()
Gets the connection reuse time property.
|
int |
getMaxConnectionsPerService()
Gets the maximum number of connections that can be obtained to a particular service, in a shared pool.
|
int |
getMaxConnectionsPerShard()
Gets the currently configured max connections that can be created per shard in a sharded database configuration.
|
int |
getMaxIdleTime()
Gets Idle timeout value.
|
int |
getMaxPoolSize()
Gets the maximum number of connections that the connection pool will maintain.
|
int |
getMaxStatements()
Gets the maximum number of statements that may be pooled or cached on a Connection.
|
int |
getMinPoolSize()
Gets the minimum number of connections that the connection pool will maintain.
|
java.lang.String |
getNetworkProtocol()
Gets the datasource networkProtocol.
|
java.lang.Object |
getObjectInstance(java.lang.Object refObj, javax.naming.Name name, javax.naming.Context nameCtx, java.util.Hashtable env) |
java.lang.String |
getONSConfiguration()
Returns the ONS configuration string that is used for remote ONS subscription, in the form specified in setONSConfiguration(String).
|
java.util.logging.Logger |
getParentLogger() |
java.lang.String |
getPassword()
Gets the Password for this data source.
|
java.util.Properties |
getPdbRoles()
Gets the PDB roles specified for this datasource
|
int |
getPortNumber()
Gets the database port number.
|
int |
getPropertyCycle()
Gets Property cycle in seconds.
|
int |
getQueryTimeout()
Gets the number of seconds the driver will wait for a Statement object to execute to the given number of seconds.
|
javax.naming.Reference |
getReference() |
java.lang.String |
getRoleName()
Gets the datasource role name.
|
int |
getSecondsToTrustIdleConnection()
Gets the seconds To Trust Idle Connection value.
|
java.lang.String |
getServerName()
Gets the database server name.
|
java.lang.String |
getServiceName()
Gets the service name set on this data source
|
boolean |
getShardingMode()
Returns the mode of UCP when UCP is using a Sharded Database.
|
java.lang.String |
getSQLForValidateConnection()
Gets the Value for SQLForValidateConnection property.
|
protected javax.net.ssl.SSLContext |
getSSLContext()
Returns SSL context associated with the datasource.
|
JDBCConnectionPoolStatistics |
getStatistics()
Gets the statistics of the connection pool.
|
int |
getTimeoutCheckInterval()
Gets the timeout check interval (in seconds).
|
int |
getTimeToLiveConnectionTimeout()
Gets the maximum time (in seconds) a connection may remain in-use.
|
java.lang.String |
getURL()
Gets the URL for this data source.
|
java.lang.String |
getUser()
Gets the user name for this data source.
|
boolean |
getValidateConnectionOnBorrow()
Returns whether or not a connection being borrowed should first be validated.
|
protected void |
ilogFine(java.util.logging.Logger logger, java.lang.Class cls, java.lang.reflect.Executable method, java.lang.Object receiver, java.lang.String message) |
protected void |
ilogFinest(java.util.logging.Logger logger, java.lang.Class cls, java.lang.reflect.Executable method, java.lang.Object receiver, java.lang.String message)
Helpers for writing into log and logWriter
|
protected void |
ilogSevere(java.util.logging.Logger logger, java.lang.Class cls, java.lang.reflect.Executable method, java.lang.Object receiver, java.lang.String message) |
protected void |
ilogThrowing(java.util.logging.Logger logger, java.lang.Class cls, java.lang.reflect.Executable method, java.lang.Object receiver, java.lang.Throwable throwable) |
protected void |
ilogWarning(java.util.logging.Logger logger, java.lang.Class cls, java.lang.reflect.Executable method, java.lang.Object receiver, java.lang.String message) |
static boolean |
isSetOnceProperty(java.lang.String key)
Authentication kays to enforce to be set up once per a single pool data source
|
boolean |
isWrapperFor(java.lang.Class<?> iface)
Since this class is not a wrapper, just check to see if this implements the requested interface.
|
void |
reconfigureDataSource(java.util.Properties configuration)
Reconfigures the data source.
|
void |
registerConnectionAffinityCallback(ConnectionAffinityCallback cbk)
Registers a ConnectionAffinityCallback on the connection pool.
|
void |
registerConnectionInitializationCallback(ConnectionInitializationCallback cbk)
Registers a connection initialization callback.
|
void |
registerConnectionLabelingCallback(ConnectionLabelingCallback cbk)
Registers a ConnectionLabelingCallback with the underlying connection pool.
|
void |
removeConnectionAffinityCallback()
Removes the ConnectionAffinityCallback registered on the connection pool.
|
void |
removeConnectionLabelingCallback()
Removes the ConnectionLabelingCallback object registered with the underlying connection pool, if any.
|
void |
setAbandonedConnectionTimeout(int abandonedConnectionTimeout)
Sets the abandoned connection timeout.
|
void |
setConnectionFactoryClassName(java.lang.String factoryClassName)
Sets the Connection Factory class name.
|
void |
setConnectionFactoryProperties(java.util.Properties factoryProperties)
Sets the connection factory properties on the connection factory.
|
void |
setConnectionFactoryProperty(java.lang.String name, java.lang.String value)
Sets a connection factory property on the connection factory.
|
void |
setConnectionHarvestMaxCount(int connectionHarvestMaxCount)
Sets the maximum number of connections that may be harvested when the connection harvesting occurs.
|
void |
setConnectionHarvestTriggerCount(int connectionHarvestTriggerCount)
Sets the number of available connections at which the connection pool's connection harvesting will occur.
|
void |
setConnectionLabelingHighCost(int highCost)
Sets the cost value which identifies a connection as "high-cost" for connection labeling.
|
void |
setConnectionPoolName(java.lang.String connectionPoolName)
Sets the connection pool name.
|
void |
setConnectionProperties(java.util.Properties connectionProperties)
Sets the connection properties on the connection factory.
|
void |
setConnectionProperty(java.lang.String name, java.lang.String value)
Sets a connection property on the connection factory.
|
void |
setConnectionRepurposeThreshold(int threshold)
Sets the connection repurpose threshold for the pool.
|
void |
setConnectionValidationTimeout(int connectionValidationTimeout)
This property changes the connection validation timeout which is specified in seconds.
|
void |
setConnectionWaitTimeout(int waitTimeout)
Sets the amount of time to wait (in seconds) for a used connection to be released by a client.
|
void |
setDatabaseName(java.lang.String databaseName)
Sets the database name.
|
void |
setDataSourceName(java.lang.String dataSourceName)
Sets the data source name.
|
void |
setDescription(java.lang.String description)
Sets the data source description.
|
void |
setFastConnectionFailoverEnabled(boolean failoverEnabled)
Enables Fast Connection Failover (FCF) for the connection pool accessed using this pool-enabled data source.
|
void |
setHighCostConnectionReuseThreshold(int threshold)
Sets the high-cost connection reuse threshold for connection labeling.
|
void |
setInactiveConnectionTimeout(int inactivityTimeout)
Sets the inactive connection timeout.
|
void |
setInitialPoolSize(int initialPoolSize)
Sets the initial pool size.
|
void |
setLoginTimeout(int seconds)
Sets the default maximum time in seconds that a driver will wait while attempting to connect to a database once the driver has been identified.
|
void |
setLogWriter(java.io.PrintWriter logWriter) |
void |
setMaxConnectionReuseCount(int maxConnectionReuseCount)
Gets the connection reuse count property.
|
void |
setMaxConnectionReuseTime(long maxConnectionReuseTime)
Gets the connection reuse time property.
|
void |
setMaxConnectionsPerShard(int maxConnectionsPerShard)
Sets the max number of connections that can be created per shard in a sharded database configuration.
|
void |
setMaxIdleTime(int idleTime)
Sets Idle timeout for available connections in the pool.
|
void |
setMaxPoolSize(int maxPoolSize)
Sets the maximum number of connections.
|
void |
setMaxStatements(int maxStatements)
Sets the maximum number of statements that may be pooled or cached on a connection.
|
void |
setMinPoolSize(int minPoolSize)
Sets the minimum number of connections.
|
void |
setNetworkProtocol(java.lang.String networkProtocol)
Sets the datasource networkProtocol.
|
void |
setONSConfiguration(java.lang.String onsConfigStr)
Sets the configuration string used for remote ONS subscription.
|
void |
setPassword(java.lang.String password)
Sets the password with which connections have to be obtained.
|
void |
setPortNumber(int portNumber)
Sets the database port number.
|
void |
setPropertyCycle(int propertyCycle)
Sets Property cycle in seconds.
|
void |
setQueryTimeout(int queryTimeout)
Sets the number of seconds the driver will wait for a Statement object to execute to the given number of seconds.
|
void |
setRoleName(java.lang.String roleName)
Sets the datasource role name.
|
void |
setSecondsToTrustIdleConnection(int secondsToTrustIdleConnection)
Sets the time in seconds to trust an idle connection to skip a validation test.
|
void |
setServerName(java.lang.String serverName)
Sets the database server name.
|
void |
setShardingMode(boolean shardingMode)
This API changes the mode of UCP when UCP is using a Sharded Database.
|
void |
setSQLForValidateConnection(java.lang.String SQLString)
Sets the value(SQL) for SQLForValidateConnection property.
|
void |
setSSLContext(javax.net.ssl.SSLContext sslContext)
Specifies a
SSLContext to use as a factory for SSLEngine objects that carry out the TLS protocol. |
void |
setTimeoutCheckInterval(int timeInterval)
Sets the timeoutCheckInterval (in seconds).
|
void |
setTimeToLiveConnectionTimeout(int timeToLiveConnectionTimeout)
Sets the maximum time (in seconds) a connection may remain in-use.
|
void |
setTokenSupplier(java.util.function.Supplier<? extends oracle.jdbc.AccessToken> tokenSupplier)
Sets a supplier function that generates an access token when creating a connection with this
DataSource . |
void |
setURL(java.lang.String url)
Sets the URL that the data source uses to obtain connections to the database.
|
void |
setUser(java.lang.String user)
Sets the user name with which connections have to be obtained.
|
void |
setValidateConnectionOnBorrow(boolean validateConnectionOnBorrow)
Sets whether or not a connection being borrowed should first be validated.
|
void |
startPool()
This helper method gets all the pool properties for pool initialization, creates a pool and starts it.
|
static java.lang.Object |
toBasicType(java.lang.String value, java.lang.String type) |
void |
unregisterConnectionInitializationCallback()
Unregisters the connection initialization callback on this pool.
|
<T> T |
unwrap(java.lang.Class<T> iface)
Since this class is not a wrapper, just check to see if this implements the requested interface.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createShardingKeyBuilder
public static final java.lang.String SECRET_STORE_CONNECT
public static final java.lang.String SECRET_STORE_USERNAME
public static final java.lang.String SECRET_STORE_PASSWORD
public static final java.lang.String SECRET_STORE_DEFAULT_USERNAME
public static final java.lang.String SECRET_STORE_DEFAULT_PASSWORD
protected java.lang.String m_connectionFactoryClassName
protected java.lang.Object m_connectionFactory
protected transient oracle.ucp.jdbc.JDBCConnectionPool m_cp
public void startPool() throws java.sql.SQLException
java.sql.SQLException
- if a database-access error occurs.protected void createPoolWithDefaultProperties() throws java.sql.SQLException
java.sql.SQLException
public UniversalConnectionPool createUniversalConnectionPool() throws java.sql.SQLException
This method should not register the created pool instance with the Universal Connection Pool Manager. The method createConnectionPool on the UniversalConnectionPoolManager is responsible for that.
This method is intended to be used in association with a UniversalConnectionPoolManager or MBean. Do not directly invoke this method from an instance of this class.
createUniversalConnectionPool
in interface UniversalConnectionPoolAdapter
java.sql.SQLException
- If any error occurs during the process of connection pool creation.UniversalConnectionPoolManager
public void reconfigureDataSource(java.util.Properties configuration) throws java.sql.SQLException
user
, password
, description
, serviceName
, pdbRoles
.reconfigureDataSource
in interface PoolDataSource
configuration
- the configuration inputjava.sql.SQLException
- If an error occurs while configuring the data source.public UniversalConnectionPoolMBean createUniversalConnectionPoolMBean() throws java.sql.SQLException
This method should not register the created pool MBean with the MBean server. The operation createConnectionPool on the UniversalConnectionPoolManagerMBean is responsible for that.
createUniversalConnectionPoolMBean
in interface UniversalConnectionPoolAdapter
java.sql.SQLException
- If any error occurs during the process of connection pool creation.UniversalConnectionPoolManagerMBean
public java.sql.Connection getConnection() throws java.sql.SQLException
getConnection
in interface javax.sql.DataSource
java.sql.SQLException
- if a database-access error occurs.public java.sql.Connection getConnection(java.lang.String username, java.lang.String password) throws java.sql.SQLException
getConnection
in interface javax.sql.DataSource
username
- The database user on whose behalf the connection is being made.password
- The user's password.java.sql.SQLException
- if a database-access error occurs.public java.sql.Connection getConnection(java.util.Properties labels) throws java.sql.SQLException
getConnection
in interface PoolDataSource
labels
- The requested connection labels.java.sql.SQLException
- if a database-access error occurs.public java.sql.Connection getConnection(java.lang.String username, java.lang.String password, java.util.Properties labels) throws java.sql.SQLException
getConnection
in interface PoolDataSource
username
- The database user on whose behalf the connection is being made.password
- The user's password.labels
- The requested connection labels.java.sql.SQLException
- if a database-access error occurs.public java.io.PrintWriter getLogWriter() throws java.sql.SQLException
getLogWriter
in interface javax.sql.CommonDataSource
java.sql.SQLException
public void setLogWriter(java.io.PrintWriter logWriter) throws java.sql.SQLException
setLogWriter
in interface javax.sql.CommonDataSource
java.sql.SQLException
public void setLoginTimeout(int seconds) throws java.sql.SQLException
setLoginTimeout
in interface javax.sql.CommonDataSource
seconds
- timeoutjava.sql.SQLException
- in case of negative valuepublic int getLoginTimeout()
getLoginTimeout
in interface javax.sql.CommonDataSource
public java.lang.String getUser()
PoolDataSource
getUser
in interface PoolDataSource
public void setUser(java.lang.String user) throws java.sql.SQLException
PoolDataSource
setUser
in interface PoolDataSource
user
- Username to be set.java.sql.SQLException
public java.lang.String getPassword()
PoolDataSource
getPassword
in interface PoolDataSource
public void setPassword(java.lang.String password) throws java.sql.SQLException
PoolDataSource
setPassword
in interface PoolDataSource
password
- Password to be set.java.sql.SQLException
public java.lang.String getURL()
PoolDataSource
getURL
in interface PoolDataSource
public void setURL(java.lang.String url) throws java.sql.SQLException
PoolDataSource
setURL
in interface PoolDataSource
url
- URL to be set.java.sql.SQLException
public void setServerName(java.lang.String serverName) throws java.sql.SQLException
setServerName
in interface PoolDataSource
serverName
- Database server name to be set.java.sql.SQLException
public java.lang.String getServerName()
getServerName
in interface PoolDataSource
public void setPortNumber(int portNumber) throws java.sql.SQLException
setPortNumber
in interface PoolDataSource
portNumber
- Database port number to be set.java.sql.SQLException
public int getPortNumber()
getPortNumber
in interface PoolDataSource
public void setDatabaseName(java.lang.String databaseName) throws java.sql.SQLException
setDatabaseName
in interface PoolDataSource
databaseName
- Database name to be set.java.sql.SQLException
public java.lang.String getDatabaseName()
getDatabaseName
in interface PoolDataSource
public void setDataSourceName(java.lang.String dataSourceName) throws java.sql.SQLException
setDataSourceName
in interface PoolDataSource
dataSourceName
- data source name to be set.java.sql.SQLException
public java.lang.String getDataSourceName()
getDataSourceName
in interface PoolDataSource
public void setDescription(java.lang.String description) throws java.sql.SQLException
setDescription
in interface PoolDataSource
description
- data source description to be set.java.sql.SQLException
public java.lang.String getDescription()
getDescription
in interface PoolDataSource
public void setNetworkProtocol(java.lang.String networkProtocol) throws java.sql.SQLException
setNetworkProtocol
in interface PoolDataSource
networkProtocol
- datasource networkProtocol to be set.java.sql.SQLException
public java.lang.String getNetworkProtocol()
getNetworkProtocol
in interface PoolDataSource
public void setRoleName(java.lang.String roleName) throws java.sql.SQLException
setRoleName
in interface PoolDataSource
roleName
- datasource role name to be set.java.sql.SQLException
public java.lang.String getRoleName()
getRoleName
in interface PoolDataSource
public void setInitialPoolSize(int initialPoolSize) throws java.sql.SQLException
PoolDataSource
The range of valid values is 0 to Integer.MAX_VALUE
. It is illegal to set this to a value greater than the maximum pool size. Defaults to 0.
setInitialPoolSize
in interface PoolDataSource
initialPoolSize
- the initial pool size.java.sql.SQLException
public int getInitialPoolSize()
PoolDataSource
getInitialPoolSize
in interface PoolDataSource
public void setMinPoolSize(int minPoolSize) throws java.sql.SQLException
PoolDataSource
The range of valid values is 0 to Integer.MAX_VALUE
. It is illegal to set this to a value greater than the maximum pool size. Defaults to 0.
setMinPoolSize
in interface PoolDataSource
minPoolSize
- The minimum number of connections.java.sql.SQLException
public int getMinPoolSize()
PoolDataSource
getMinPoolSize
in interface PoolDataSource
public void setMaxPoolSize(int maxPoolSize) throws java.sql.SQLException
PoolDataSource
The range of valid values is 1 to Integer.MAX_VALUE
. Defaults to Integer.MAX_VALUE
.
setMaxPoolSize
in interface PoolDataSource
maxPoolSize
- The maximum number of connections.java.sql.SQLException
public int getMaxPoolSize()
PoolDataSource
getMaxPoolSize
in interface PoolDataSource
public int getMaxConnectionsPerService()
PoolDataSource
getMaxConnectionsPerService
in interface PoolDataSource
public void setInactiveConnectionTimeout(int inactivityTimeout) throws java.sql.SQLException
PoolDataSource
The range of valid values is 0 to Integer.MAX_VALUE
. Defaults to 0.
Setting the value to 0 disables inactive connection timeout processing.
setInactiveConnectionTimeout
in interface PoolDataSource
inactivityTimeout
- The inactive connection timeout in seconds.java.sql.SQLException
public int getInactiveConnectionTimeout()
PoolDataSource
getInactiveConnectionTimeout
in interface PoolDataSource
public void setConnectionWaitTimeout(int waitTimeout) throws java.sql.SQLException
PoolDataSource
The range of valid values is 0 to Integer.MAX_VALUE
. Defaults to 3.
Setting the value to 0 disables connection wait timeout processing.
setConnectionWaitTimeout
in interface PoolDataSource
waitTimeout
- The amount of time to wait.java.sql.SQLException
public int getConnectionWaitTimeout()
PoolDataSource
getConnectionWaitTimeout
in interface PoolDataSource
public void setTimeToLiveConnectionTimeout(int timeToLiveConnectionTimeout) throws java.sql.SQLException
PoolDataSource
The range of valid values is 0 to Integer.MAX_VALUE
. Defaults to 0.
Setting the value to 0 disables time-to-live connection timeout processing.
setTimeToLiveConnectionTimeout
in interface PoolDataSource
timeToLiveConnectionTimeout
- The maximum time (in seconds) a used connection may be active.java.sql.SQLException
public int getTimeToLiveConnectionTimeout()
PoolDataSource
getTimeToLiveConnectionTimeout
in interface PoolDataSource
public int getAbandonedConnectionTimeout()
PoolDataSource
getAbandonedConnectionTimeout
in interface PoolDataSource
public void setAbandonedConnectionTimeout(int abandonedConnectionTimeout) throws java.sql.SQLException
PoolDataSource
The range of valid values is 0 to Integer.MAX_VALUE
. Defaults to 0.
Setting the value to 0 disables abandoned connection timeout.
setAbandonedConnectionTimeout
in interface PoolDataSource
abandonedConnectionTimeout
- The value of how long a connection has not been used before it is abandoned (in seconds).java.sql.SQLException
public void setTimeoutCheckInterval(int timeInterval) throws java.sql.SQLException
PoolDataSource
The range of valid values is 0 to Integer.MAX_VALUE
. Defaults to 30.
Setting the value to 0 disables all connection timeout processing.
setTimeoutCheckInterval
in interface PoolDataSource
timeInterval
- The timeInterval (in seconds) between checks to enforce the timeout properties.java.sql.SQLException
public int getTimeoutCheckInterval()
PoolDataSource
getTimeoutCheckInterval
in interface PoolDataSource
timeInterval
(in seconds) between checks to enforce the timeout properties.public void setFastConnectionFailoverEnabled(boolean failoverEnabled) throws java.sql.SQLException
PoolDataSource
setFastConnectionFailoverEnabled
in interface PoolDataSource
failoverEnabled
- true
if Fast Connection Failover is enabled; false
if not.java.sql.SQLException
public boolean getFastConnectionFailoverEnabled()
PoolDataSource
getFastConnectionFailoverEnabled
in interface PoolDataSource
true
if Fast Connection Failover is enabled; false
if not.public java.lang.String getConnectionFactoryClassName()
PoolDataSource
getConnectionFactoryClassName
in interface PoolDataSource
public void setConnectionFactoryClassName(java.lang.String factoryClassName) throws java.sql.SQLException
PoolDataSource
PoolDataSource
to operate.setConnectionFactoryClassName
in interface PoolDataSource
factoryClassName
- Connection factory class name for obtaining physical connections.java.sql.SQLException
public void setMaxStatements(int maxStatements) throws java.sql.SQLException
setMaxStatements
in interface PoolDataSource
maxStatements
- maximum number of statements to be pooled.java.sql.SQLException
- Exception occurred during the process of setting maximum statements that may be pooled on a connection.public int getMaxStatements()
getMaxStatements
in interface PoolDataSource
public void setMaxIdleTime(int idleTime) throws java.sql.SQLException
setMaxIdleTime
in interface PoolDataSource
idleTime
- Idle timeout value in seconds.java.sql.SQLException
public int getMaxIdleTime()
getMaxIdleTime
in interface PoolDataSource
public void setPropertyCycle(int propertyCycle) throws java.sql.SQLException
setPropertyCycle
in interface PoolDataSource
propertyCycle
- Time interval in seconds to enforce connection pool timeout properties.java.sql.SQLException
public int getPropertyCycle()
getPropertyCycle
in interface PoolDataSource
public void setConnectionPoolName(java.lang.String connectionPoolName) throws java.sql.SQLException
setConnectionPoolName
in interface PoolDataSource
connectionPoolName
- Name of connection pool.java.sql.SQLException
public java.lang.String getConnectionPoolName()
getConnectionPoolName
in interface PoolDataSource
public void setValidateConnectionOnBorrow(boolean validateConnectionOnBorrow) throws java.sql.SQLException
setValidateConnectionOnBorrow
in interface PoolDataSource
validateConnectionOnBorrow
- Whether or not a connection being borrowed should first be validated.java.sql.SQLException
public boolean getValidateConnectionOnBorrow()
getValidateConnectionOnBorrow
in interface PoolDataSource
public void setSQLForValidateConnection(java.lang.String SQLString) throws java.sql.SQLException
setSQLForValidateConnection
in interface PoolDataSource
SQLString
- The SQL string used for connection validation.java.sql.SQLException
public java.lang.String getSQLForValidateConnection()
getSQLForValidateConnection
in interface PoolDataSource
public int getConnectionHarvestTriggerCount()
getConnectionHarvestTriggerCount
in interface PoolDataSource
public void setConnectionHarvestTriggerCount(int connectionHarvestTriggerCount) throws java.sql.SQLException
setConnectionHarvestTriggerCount
in interface PoolDataSource
connectionHarvestTriggerCount
- The number of available connections at which the connection pool's connection harvesting will occur.java.sql.SQLException
public int getConnectionHarvestMaxCount()
getConnectionHarvestMaxCount
in interface PoolDataSource
public void setConnectionHarvestMaxCount(int connectionHarvestMaxCount) throws java.sql.SQLException
setConnectionHarvestMaxCount
in interface PoolDataSource
connectionHarvestMaxCount
- the maximum number of connections that may be harvested when the connection harvesting occurs.java.sql.SQLException
public long getMaxConnectionReuseTime()
getMaxConnectionReuseTime
in interface PoolDataSource
public void setMaxConnectionReuseTime(long maxConnectionReuseTime) throws java.sql.SQLException
setMaxConnectionReuseTime
in interface PoolDataSource
connection
- reuse time (in seconds), 0 value means that the feature is disabled.java.sql.SQLException
public int getMaxConnectionReuseCount()
getMaxConnectionReuseCount
in interface PoolDataSource
public void setMaxConnectionReuseCount(int maxConnectionReuseCount) throws java.sql.SQLException
setMaxConnectionReuseCount
in interface PoolDataSource
connection
- reuse count, 0 value means that the feature is disabled.java.sql.SQLException
public int getAvailableConnectionsCount()
getAvailableConnectionsCount
in interface PoolDataSource
public int getBorrowedConnectionsCount()
getBorrowedConnectionsCount
in interface PoolDataSource
public java.lang.String getONSConfiguration() throws java.sql.SQLException
getONSConfiguration
in interface PoolDataSource
java.sql.SQLException
public void setONSConfiguration(java.lang.String onsConfigStr) throws java.sql.SQLException
An example ONS configuration string:
"nodes=host1:4200,host2:4200\nwalletfile=wfile\nwalletpassword=wpwd"
This is used primarily by Fast Connection Failover and Runtime Load Balancing.
setONSConfiguration
in interface PoolDataSource
onsConfigStr
- The configuration string for remote ONS subscription.java.sql.SQLException
public void registerConnectionLabelingCallback(ConnectionLabelingCallback cbk) throws java.sql.SQLException
registerConnectionLabelingCallback
in interface PoolDataSource
cbk
- The ConnectionLabelingCallback object to be registered.java.sql.SQLException
- If there is a callback already registered with the pool.public void removeConnectionLabelingCallback() throws java.sql.SQLException
removeConnectionLabelingCallback
in interface PoolDataSource
java.sql.SQLException
- If callback removal fails.public void registerConnectionAffinityCallback(ConnectionAffinityCallback cbk) throws java.sql.SQLException
registerConnectionAffinityCallback
in interface PoolDataSource
cbk
- Affinity Callback object that must be registered.java.sql.SQLException
- If callback registration fails.public void removeConnectionAffinityCallback() throws java.sql.SQLException
removeConnectionAffinityCallback
in interface PoolDataSource
java.sql.SQLException
- If callback removal fails.public JDBCConnectionPoolStatistics getStatistics()
getStatistics
in interface PoolDataSource
public java.lang.String getServiceName()
getServiceName
in interface PoolDataSource
public java.util.Properties getConnectionProperties()
Properties
object returned by this method.getConnectionProperties
in interface PoolDataSource
public java.lang.String getConnectionProperty(java.lang.String propertyName)
getConnectionProperty
in interface PoolDataSource
propertyName
- The name of the specified property.public void setConnectionProperty(java.lang.String name, java.lang.String value) throws java.sql.SQLException
oracle.jdbc.pool.OracleDataSource
in the Oracle JDBC driver.setConnectionProperty
in interface PoolDataSource
name
- The name of the connection property to be set on the connection factory class.value
- The value of the connection property to be set on the connection factory class.java.sql.SQLException
- If any exception occurred while setting the connection property.setConnectionFactoryProperties
public void setConnectionProperties(java.util.Properties connectionProperties) throws java.sql.SQLException
oracle.jdbc.pool.OracleDataSource
in the Oracle JDBC driver.setConnectionProperties
in interface PoolDataSource
connectionProperties
- Connection properties to be set on the connection factory class.java.sql.SQLException
- If any exception occurred while setting the connection properties.setConnectionFactoryProperties
public java.util.Properties getConnectionFactoryProperties()
getConnectionFactoryProperties
in interface PoolDataSource
public java.lang.String getConnectionFactoryProperty(java.lang.String propertyName)
getConnectionFactoryProperty
in interface PoolDataSource
propertyName
- The name of the specified property.public void setConnectionFactoryProperty(java.lang.String name, java.lang.String value) throws java.sql.SQLException
For connection factories that implement java.sql.Driver
, the connection factory property specified here will be assumed as a connection property.
For DataSource connection factories, the property specified here will be assumed as a DataSource property.
setConnectionFactoryProperty
in interface PoolDataSource
name
- The name of the connection factory property to be set on the connection factory class.value
- The value of the connection factory property to be set on the connection factory class.java.sql.SQLException
- If any exception occurred while setting the connection factory property.java.lang.IllegalArgumentException
- If the property name or value is invalid.public void setConnectionFactoryProperties(java.util.Properties factoryProperties) throws java.sql.SQLException
For connection factories that implement java.sql.Driver
, the connection factory properties specified here will be assumed as the connection properties.
For DataSource connection factories, the properties specified here will be assumed as the DataSource properties.
setConnectionFactoryProperties
in interface PoolDataSource
factoryProperties
- Connection factory properties to be set on the connection factory class.java.sql.SQLException
- If any exception occurred while setting the connection factory properties.java.lang.IllegalArgumentException
- If factoryProperties is empty.public static boolean isSetOnceProperty(java.lang.String key)
key
- to checkpublic static final java.lang.Object toBasicType(java.lang.String value, java.lang.String type)
public javax.naming.Reference getReference() throws javax.naming.NamingException
getReference
in interface javax.naming.Referenceable
javax.naming.NamingException
public java.lang.Object getObjectInstance(java.lang.Object refObj, javax.naming.Name name, javax.naming.Context nameCtx, java.util.Hashtable env) throws java.lang.Exception
getObjectInstance
in interface javax.naming.spi.ObjectFactory
java.lang.Exception
public boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException
isWrapperFor
in interface java.sql.Wrapper
iface
- Requested interface.java.sql.SQLException
- If the argument is not an interface.public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException
unwrap
in interface java.sql.Wrapper
iface
- Requested interface.java.sql.SQLException
- If this does not implement the arg or the arg is not an interface.public void registerConnectionInitializationCallback(ConnectionInitializationCallback cbk) throws java.sql.SQLException
registerConnectionInitializationCallback
in interface PoolDataSource
cbk
- The ConnectionInitializationCallback
object to be registered.java.sql.SQLException
- If there is a callback already registered with the pool.public void unregisterConnectionInitializationCallback() throws java.sql.SQLException
unregisterConnectionInitializationCallback
in interface PoolDataSource
java.sql.SQLException
- If callback removal fails.public ConnectionInitializationCallback getConnectionInitializationCallback()
getConnectionInitializationCallback
in interface PoolDataSource
ConnectionInitializationCallback
, or null if there is no callback registered.public int getConnectionLabelingHighCost()
PoolDataSource
getConnectionLabelingHighCost
in interface PoolDataSource
setConnectionLabelingHighCost
public void setConnectionLabelingHighCost(int highCost) throws java.sql.SQLException
PoolDataSource
cost(Properties, Properties)
method in ConnectionLabelingCallback to find a connection in the pool for a request. When this property is set, connections with a cost value equal to or greater than the property value are considered "high-cost" connections. The default value is Integer.MAX_VALUE.setConnectionLabelingHighCost
in interface PoolDataSource
highCost
- The cost value that identifies a connection as "high-cost" for connection labeling.java.sql.SQLException
- If an exception occurs while setting the cost.public int getConnectionRepurposeThreshold()
PoolDataSource
getConnectionRepurposeThreshold
in interface PoolDataSource
public void setConnectionRepurposeThreshold(int threshold) throws java.sql.SQLException
PoolDataSource
setConnectionRepurposeThreshold
in interface PoolDataSource
threshold
- connection repurpose threshold to set.java.sql.SQLException
- If any exception occurs while setting the threshold.getConnectionRepurposeThreshold
public int getHighCostConnectionReuseThreshold()
PoolDataSource
getHighCostConnectionReuseThreshold
in interface PoolDataSource
setConnectionLabelingHighCost
, setHighCostConnectionReuseThreshold
public void setHighCostConnectionReuseThreshold(int threshold) throws java.sql.SQLException
PoolDataSource
setHighCostConnectionReuseThreshold
in interface PoolDataSource
threshold
- The high-cost connection reuse threshold to set.java.sql.SQLException
- If any exception occurs while setting the threshold.public java.util.Properties getPdbRoles()
getPdbRoles
in interface PoolDataSource
setPdbRoles
public int getSecondsToTrustIdleConnection()
setSecondsToTrustIdleConnection()
.getSecondsToTrustIdleConnection
in interface PoolDataSource
public void setSecondsToTrustIdleConnection(int secondsToTrustIdleConnection) throws java.sql.SQLException
setValidateConnectionOnBorrow(boolean)
. When set to any positive value, a connection validation during the checkout is skipped if the connection was successfully used and returned to the pool within the time specified for secondsToTrustIdleConnection. Default value is set to 0 seconds which means that the feature is disabled.setSecondsToTrustIdleConnection
in interface PoolDataSource
secondsToTrustIdleConnection
- The value of how long a connection can be trusted to skip connectionValidationOnBorrowjava.sql.SQLException
public UCPConnectionBuilder createConnectionBuilder()
PoolDataSource
createConnectionBuilder
in interface PoolDataSource
PoolDataSource.createConnectionBuilder()
public java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException
getParentLogger
in interface javax.sql.CommonDataSource
java.sql.SQLFeatureNotSupportedException
CommonDataSource.getParentLogger()
public int getQueryTimeout()
getQueryTimeout
in interface PoolDataSource
public void setQueryTimeout(int queryTimeout) throws java.sql.SQLException
setQueryTimeout
in interface PoolDataSource
queryTimeout
- in secondsjava.sql.SQLException
public int getMaxConnectionsPerShard()
getMaxConnectionsPerShard
in interface PoolDataSource
public void setMaxConnectionsPerShard(int maxConnectionsPerShard) throws java.sql.SQLException
setMaxConnectionsPerShard
in interface PoolDataSource
maxConnectionsPerShard
- The max number of connections that can be created per shardjava.sql.SQLException
- if there is an any exception while setting this parameterpublic void setShardingMode(boolean shardingMode) throws java.sql.SQLException
setShardingMode
in interface PoolDataSource
shardingMode
- Mode of UCP when using a Sharded Database.java.sql.SQLException
public boolean getShardingMode()
getShardingMode
in interface PoolDataSource
public void setConnectionValidationTimeout(int connectionValidationTimeout) throws java.sql.SQLException
PoolDataSource
setConnectionValidationTimeout
in interface PoolDataSource
connectionValidationTimeout
- timeout to validate connectionjava.sql.SQLException
- if tiomeout is negativePoolDataSource.setConnectionValidationTimeout(int)
public int getConnectionValidationTimeout()
PoolDataSource
getConnectionValidationTimeout
in interface PoolDataSource
PoolDataSource.getConnectionValidationTimeout()
public void setSSLContext(javax.net.ssl.SSLContext sslContext)
PoolDataSource
SSLContext
to use as a factory for SSLEngine objects that carry out the TLS protocol.
The SSLContext must be initialized before setting it on PoolDataSource. 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.
setSSLContext
in interface PoolDataSource
sslContext
- SSLContext instance to be used as an SSLEngine factory.PoolDataSource.setSSLContext(SSLContext)
protected javax.net.ssl.SSLContext getSSLContext()
public final void setTokenSupplier(java.util.function.Supplier<? extends oracle.jdbc.AccessToken> tokenSupplier) throws java.sql.SQLException
Sets a supplier function that generates an access token when creating a connection with this DataSource
. The supplier function is invoked each time this DataSource
creates a connection. Instances of AccessToken
that 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 DataSource
with both a token supplier and with a user name or password. If invocations of setUser(String)
, setPassword(String)
, setConnectionProperties(java.util.Properties)
, or setConnectionProperty(String, String)
have configured this DataSource
with a user name or password, and an invocation of this method has also configured a token supplier, then a SQLException
indicating an invalid configuration is thrown when creating a connection with this datasource.
Note that AccessToken.createJsonWebTokenCache(Supplier)
can be called to create a thread safe Supplier
that caches tokens from a user defined Supplier
.
setTokenSupplier
in interface PoolDataSource
tokenSupplier
- Token supplying function. Not null
.java.lang.NullPointerException
- If the tokenSupplier
is null.java.sql.SQLException
- if unable to set property valueprotected void ilogFinest(java.util.logging.Logger logger, java.lang.Class cls, java.lang.reflect.Executable method, java.lang.Object receiver, java.lang.String message)
protected void ilogFine(java.util.logging.Logger logger, java.lang.Class cls, java.lang.reflect.Executable method, java.lang.Object receiver, java.lang.String message)
protected void ilogWarning(java.util.logging.Logger logger, java.lang.Class cls, java.lang.reflect.Executable method, java.lang.Object receiver, java.lang.String message)
protected void ilogSevere(java.util.logging.Logger logger, java.lang.Class cls, java.lang.reflect.Executable method, java.lang.Object receiver, java.lang.String message)
protected void ilogThrowing(java.util.logging.Logger logger, java.lang.Class cls, java.lang.reflect.Executable method, java.lang.Object receiver, java.lang.Throwable throwable)