Package oracle.jdbc.pool
Class OracleOCIConnectionPool
- java.lang.Object
-
- oracle.jdbc.datasource.impl.OracleDataSource
-
- oracle.jdbc.pool.OracleDataSource
-
- oracle.jdbc.pool.OracleOCIConnectionPool
-
- All Implemented Interfaces:
java.beans.PropertyChangeListener
,java.io.Serializable
,java.sql.Wrapper
,java.util.EventListener
,javax.naming.Referenceable
,javax.sql.CommonDataSource
,javax.sql.DataSource
,OracleCommonDataSource
,OracleDataSource
,oracle.jdbc.diagnostics.Diagnosable
,oracle.jdbc.internal.Monitor
,oracle.jdbc.replay.internal.OracleDataSource
,OracleDataSource
public class OracleOCIConnectionPool extends OracleDataSource
A type-2 driver connection pool.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CONNECTION_ID
static java.lang.String
CONNECTION_POOL
static java.lang.String
CONNPOOL_ACTIVE_SIZE
static java.lang.String
CONNPOOL_ALIASED_CONNECTION
static java.lang.String
CONNPOOL_CONNECTION
static java.lang.String
CONNPOOL_INCREMENT
static java.lang.String
CONNPOOL_IS_POOLCREATED
static java.lang.String
CONNPOOL_LOGON_MODE
static java.lang.String
CONNPOOL_MAX_LIMIT
static java.lang.String
CONNPOOL_MIN_LIMIT
static java.lang.String
CONNPOOL_NOWAIT
static java.lang.String
CONNPOOL_OBJECT
static java.lang.String
CONNPOOL_POOL_SIZE
static java.lang.String
CONNPOOL_PROXY_CONNECTION
static java.lang.String
CONNPOOL_TIMEOUT
static java.lang.String
IS_CONNECTION_POOLING
oracle.jdbc.oci.OracleOCIConnection
m_connection_pool
protected int
m_stmtCacheSize
protected boolean
m_stmtClearMetaData
static java.lang.String
PROXY_CERTIFICATE
static java.lang.String
PROXY_DISTINGUISHED_NAME
static java.lang.String
PROXY_NUM_ROLES
static java.lang.String
PROXY_PASSWORD
static java.lang.String
PROXY_ROLES
static java.lang.String
PROXY_USER_NAME
static java.lang.String
PROXYTYPE
static java.lang.String
PROXYTYPE_CERTIFICATE
static java.lang.String
PROXYTYPE_DISTINGUISHED_NAME
static java.lang.String
PROXYTYPE_USER_NAME
static java.lang.String
TRANSACTIONS_DISTRIBUTED
-
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 Constructor Description OracleOCIConnectionPool()
This will use the user-id, password and connection pool name values set using the methods setUser, setPassword, setConnectionPoolName.OracleOCIConnectionPool(java.lang.String us, java.lang.String p, java.lang.String url)
Deprecated.OracleOCIConnectionPool(java.lang.String us, java.lang.String p, java.lang.String url, java.util.Properties info)
Notes: Choose an userid and password that can act as proxy for the users in the getProxyConnection() method.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
This will destroy the connection pool, and close all the connections opened from this data source.void
connectionClosed(oracle.jdbc.oci.OracleOCIConnection conn)
int
getActiveSize()
Return the number of active or busy connections in the connection pool Note that the count cannot be guaranteed on any invoking subsequent OracleOCIConnectionCacheImpl method.oracle.jdbc.internal.OracleConnection
getAliasedConnection(byte[] conId)
For creating aliased sessions.java.sql.Connection
getConnection()
Attempt to establish a database connection.java.sql.Connection
getConnection(java.lang.String us, java.lang.String p)
For getting a connection to the database.protected oracle.jdbc.internal.OracleConnection
getConnectionDuringExceptionHandling()
int
getConnectionIncrement()
Return the Increment for increasing the connections for the Cache.int
getMaxLimit()
Return the Max limit on Connections.int
getMinLimit()
Note: There are no individual setMin, setMax and setIncrement since that needs to be done in one call to setPoolConfig Return the minimum limit on the no of Connections.java.lang.String
getNoWait()
Return the connection No-wait parameter This attribute determines if retrial for a connection has to be done when all connections in the pool are found to be busy and the number of connections already reached max.java.util.Properties
getPoolConfig()
int
getPoolSize()
Return the number of physical connections in the connection pool Note that the count cannot be guaranteed on any invoking subsequent OracleOCIConnectionCacheImpl method.oracle.jdbc.internal.OracleConnection
getProxyConnection(java.lang.String proxytype, java.util.Properties prop)
For creating a proxy connection.javax.naming.Reference
getReference()
Inherited from referencableint
getStmtCacheSize()
Return the size of Statement Cache.int
getTimeout()
Return the timeout The connections idle for more than this time (seconds) are terminated periodically, to maintain optimum number of open connections.This attribute can be set dynamically.boolean
isDistributedTransEnabled()
boolean
isPoolCreated()
check if the pool has been created.boolean
isStmtCacheEnabled()
Check whether Statement Caching is enabled for this pool or Not.static void
readPoolConfig(int minLimit, int maxLimit, int increment, int timeout, boolean nowait, boolean transactionsDistributed, int[] p)
read the properties into an integer arraystatic void
readPoolConfig(java.util.Properties info, int[] p)
void
setPoolConfig(java.util.Properties prop)
(Re-)Set the pool configuration for the Cache.void
setStmtCacheSize(int size)
Set the statement cache size.void
setStmtCacheSize(int size, boolean clearMetaData)
Set the statement cache size.-
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, 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, setURL, 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 oracle.jdbc.diagnostics.Diagnosable
begin, begin, beginCurrentSql, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debugp, end, end, endCurrentSql, format, isDebugEnabled, isDiagnoseFirstFailureEnabled, isLoggable, isSensitiveEnabled, onClose, propertyChange, resumeLogging, secure, suspendLogging, trace, tracep
-
Methods inherited from interface oracle.jdbc.internal.Monitor
acquireCloseableLock, acquireLock, releaseLock
-
Methods inherited from interface oracle.jdbc.datasource.OracleCommonDataSource
createShardingKeyBuilder
-
-
-
-
Field Detail
-
m_connection_pool
public oracle.jdbc.oci.OracleOCIConnection m_connection_pool
-
IS_CONNECTION_POOLING
public static final java.lang.String IS_CONNECTION_POOLING
- See Also:
- Constant Field Values
-
CONNPOOL_OBJECT
public static final java.lang.String CONNPOOL_OBJECT
- See Also:
- Constant Field Values
-
CONNPOOL_LOGON_MODE
public static final java.lang.String CONNPOOL_LOGON_MODE
- See Also:
- Constant Field Values
-
CONNECTION_POOL
public static final java.lang.String CONNECTION_POOL
- See Also:
- Constant Field Values
-
CONNPOOL_CONNECTION
public static final java.lang.String CONNPOOL_CONNECTION
- See Also:
- Constant Field Values
-
CONNPOOL_PROXY_CONNECTION
public static final java.lang.String CONNPOOL_PROXY_CONNECTION
- See Also:
- Constant Field Values
-
CONNPOOL_ALIASED_CONNECTION
public static final java.lang.String CONNPOOL_ALIASED_CONNECTION
- See Also:
- Constant Field Values
-
PROXY_USER_NAME
public static final java.lang.String PROXY_USER_NAME
- See Also:
- Constant Field Values
-
PROXY_DISTINGUISHED_NAME
public static final java.lang.String PROXY_DISTINGUISHED_NAME
- See Also:
- Constant Field Values
-
PROXY_CERTIFICATE
public static final java.lang.String PROXY_CERTIFICATE
- See Also:
- Constant Field Values
-
PROXY_ROLES
public static final java.lang.String PROXY_ROLES
- See Also:
- Constant Field Values
-
PROXY_NUM_ROLES
public static final java.lang.String PROXY_NUM_ROLES
- See Also:
- Constant Field Values
-
PROXY_PASSWORD
public static final java.lang.String PROXY_PASSWORD
- See Also:
- Constant Field Values
-
PROXYTYPE
public static final java.lang.String PROXYTYPE
- See Also:
- Constant Field Values
-
PROXYTYPE_USER_NAME
public static final java.lang.String PROXYTYPE_USER_NAME
- See Also:
- Constant Field Values
-
PROXYTYPE_DISTINGUISHED_NAME
public static final java.lang.String PROXYTYPE_DISTINGUISHED_NAME
- See Also:
- Constant Field Values
-
PROXYTYPE_CERTIFICATE
public static final java.lang.String PROXYTYPE_CERTIFICATE
- See Also:
- Constant Field Values
-
CONNECTION_ID
public static final java.lang.String CONNECTION_ID
- See Also:
- Constant Field Values
-
CONNPOOL_MIN_LIMIT
public static final java.lang.String CONNPOOL_MIN_LIMIT
- See Also:
- Constant Field Values
-
CONNPOOL_MAX_LIMIT
public static final java.lang.String CONNPOOL_MAX_LIMIT
- See Also:
- Constant Field Values
-
CONNPOOL_INCREMENT
public static final java.lang.String CONNPOOL_INCREMENT
- See Also:
- Constant Field Values
-
CONNPOOL_ACTIVE_SIZE
public static final java.lang.String CONNPOOL_ACTIVE_SIZE
- See Also:
- Constant Field Values
-
CONNPOOL_POOL_SIZE
public static final java.lang.String CONNPOOL_POOL_SIZE
- See Also:
- Constant Field Values
-
CONNPOOL_TIMEOUT
public static final java.lang.String CONNPOOL_TIMEOUT
- See Also:
- Constant Field Values
-
CONNPOOL_NOWAIT
public static final java.lang.String CONNPOOL_NOWAIT
- See Also:
- Constant Field Values
-
CONNPOOL_IS_POOLCREATED
public static final java.lang.String CONNPOOL_IS_POOLCREATED
- See Also:
- Constant Field Values
-
TRANSACTIONS_DISTRIBUTED
public static final java.lang.String TRANSACTIONS_DISTRIBUTED
- See Also:
- Constant Field Values
-
m_stmtCacheSize
protected int m_stmtCacheSize
-
m_stmtClearMetaData
protected boolean m_stmtClearMetaData
-
-
Constructor Detail
-
OracleOCIConnectionPool
public OracleOCIConnectionPool(java.lang.String us, java.lang.String p, java.lang.String url, java.util.Properties info) throws java.sql.SQLException
Notes: Choose an userid and password that can act as proxy for the users in the getProxyConnection() method.- Parameters:
us
- ConnectionPool user-id.p
- ConnectionPool passwordurl
- This would be the full url including the database name. The database name would be the logical name of the pool.info
- Set of properties (optional) for specifying the pool configuration.- Throws:
java.sql.SQLException
-
OracleOCIConnectionPool
public OracleOCIConnectionPool(java.lang.String us, java.lang.String p, java.lang.String url) throws java.sql.SQLException
Deprecated.- Throws:
java.sql.SQLException
-
OracleOCIConnectionPool
public OracleOCIConnectionPool() throws java.sql.SQLException
This will use the user-id, password and connection pool name values set using the methods setUser, setPassword, setConnectionPoolName.Notes: No useful operations (like getConnection) can be performed on this class unless the methods setUser, setPassword, setConnectionPoolName are invoked. Choose an userid and password that can act as proxy for the users in the getProxyConnection() method.
- Throws:
java.sql.SQLException
-
-
Method Detail
-
getConnection
public java.sql.Connection getConnection() throws java.sql.SQLException
Description copied from class:OracleDataSource
Attempt to establish a database connection.
- Specified by:
getConnection
in interfacejavax.sql.DataSource
- Overrides:
getConnection
in classOracleDataSource
- Returns:
- a Connection to the database
- Throws:
java.sql.SQLException
- if a database-access error occurs.
-
getConnection
public java.sql.Connection getConnection(java.lang.String us, java.lang.String p) throws java.sql.SQLException
For getting a connection to the database.- Specified by:
getConnection
in interfacejavax.sql.DataSource
- Overrides:
getConnection
in classOracleDataSource
- Parameters:
us
- Connection user-idp
- Connection password- Returns:
- a Connection to the database
- Throws:
java.sql.SQLException
- if a database-access error occurs.
-
getReference
public javax.naming.Reference getReference() throws javax.naming.NamingException
Inherited from referencable- Specified by:
getReference
in interfacejavax.naming.Referenceable
- Overrides:
getReference
in classOracleDataSource
- Returns:
- Returns a reference to this OracleOCIConnectionPool instance
- Throws:
javax.naming.NamingException
-
getProxyConnection
public oracle.jdbc.internal.OracleConnection getProxyConnection(java.lang.String proxytype, java.util.Properties prop) throws java.sql.SQLException
For creating a proxy connection.Notes: The user and password used to create OracleOCIConnectionPool() must be allowed to act as proxy for user 'us'.
- Parameters:
proxytype
- Can be one of following types OracleOCIConnectionPool.PROXYCONNECTION_USER_NAME - This will be the normal mode of specifying the username in proxyUser OracleOCIConnectionPool.PROXYCONNECTION_DISTINGUISHED_NAME - This will specify the distinguished name of the user in proxyUser OracleOCIConnectionPool.PROXYCONNECTION_CERTIFICATE - This will specify the proxy certificate in proxyUserproxyUser
- The user, or certificate, to be proxied against.roles
- Set of roles which this proxy connection can use- Returns:
- connection object
- Throws:
java.sql.SQLException
-
getAliasedConnection
public oracle.jdbc.internal.OracleConnection getAliasedConnection(byte[] conId) throws java.sql.SQLException
For creating aliased sessions.Notes: Once this call is issued, this connection object can't be used for any operation, as the intent for connection cloning is failover.
- Parameters:
conId
- - byte[] of the connection id- Throws:
java.sql.SQLException
-
close
public void close() throws java.sql.SQLException
This will destroy the connection pool, and close all the connections opened from this data source. Hence, all the statement objects created from these connection objects will also be closed.- Throws:
java.sql.SQLException
-
setPoolConfig
public void setPoolConfig(java.util.Properties prop) throws java.sql.SQLException
(Re-)Set the pool configuration for the Cache. Note: We will not be exposing set for individual settings of the pool's configuration. Users will have to call setPoolConfig with min, max & increment in order for the pool's configuration to be changed.- Parameters:
prop
-- Throws:
java.sql.SQLException
-
readPoolConfig
public static void readPoolConfig(int minLimit, int maxLimit, int increment, int timeout, boolean nowait, boolean transactionsDistributed, int[] p)
read the properties into an integer array
-
readPoolConfig
public static void readPoolConfig(java.util.Properties info, int[] p)
-
getPoolConfig
public java.util.Properties getPoolConfig() throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
getActiveSize
public int getActiveSize() throws java.sql.SQLException
Return the number of active or busy connections in the connection pool Note that the count cannot be guaranteed on any invoking subsequent OracleOCIConnectionCacheImpl method. This should be used only as estimate and perhaps for statistical analysis.- Returns:
- Throws:
java.sql.SQLException
-
getPoolSize
public int getPoolSize() throws java.sql.SQLException
Return the number of physical connections in the connection pool Note that the count cannot be guaranteed on any invoking subsequent OracleOCIConnectionCacheImpl method. This should be used only as estimate and perhaps for statistical analysis.- Returns:
- Throws:
java.sql.SQLException
-
getTimeout
public int getTimeout() throws java.sql.SQLException
Return the timeout The connections idle for more than this time (seconds) are terminated periodically, to maintain optimum number of open connections.This attribute can be set dynamically. If this attribute is not set, the connections are never timed out.- Returns:
- Throws:
java.sql.SQLException
-
getNoWait
public java.lang.String getNoWait() throws java.sql.SQLException
Return the connection No-wait parameter This attribute determines if retrial for a connection has to be done when all connections in the pool are found to be busy and the number of connections already reached max. If this attribute is set, an error is thrown when all the connections are busy and no more connections can be opened. Otherwise, the call waits till it gets a connection.- Returns:
- Throws:
java.sql.SQLException
-
getMinLimit
public int getMinLimit() throws java.sql.SQLException
Note: There are no individual setMin, setMax and setIncrement since that needs to be done in one call to setPoolConfig Return the minimum limit on the no of Connections.- Returns:
- minimum limit on the no of Connections.
- Throws:
java.sql.SQLException
-
getMaxLimit
public int getMaxLimit() throws java.sql.SQLException
Return the Max limit on Connections.- Returns:
- int Max no of Connections that can be opened.
- Throws:
java.sql.SQLException
-
getConnectionIncrement
public int getConnectionIncrement() throws java.sql.SQLException
Return the Increment for increasing the connections for the Cache.- Returns:
- int Increment
- Throws:
java.sql.SQLException
-
isDistributedTransEnabled
public boolean isDistributedTransEnabled()
-
isPoolCreated
public boolean isPoolCreated()
check if the pool has been created. This occurs whenis called with user/password or getConnection() has been called
-
connectionClosed
public void connectionClosed(oracle.jdbc.oci.OracleOCIConnection conn) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setStmtCacheSize
public void setStmtCacheSize(int size) throws java.sql.SQLException
Set the statement cache size. Default is 0. You cannot set this for logicalhandles obtained from this pool. If more thansize cursors are already cached than they will be closed. By default, the metadata of the cursor will be saved. Only data and the state will be cleared. You need to call this first to enable either type of Statement caching. When both types of Statement caching are enabled, thesize is the total number of cursors cached for both the schemes together. - Parameters:
size
- Size of the Cache- Throws:
java.sql.SQLException
-
setStmtCacheSize
public void setStmtCacheSize(int size, boolean clearMetaData) throws java.sql.SQLException
Set the statement cache size. Default is 0. You cannot set this for logicalhandles obtained from this pool. If more thansize cursors are already cached than they will be closed. By default, the meta data of the cursor will be saved. But if clearMetaData is set to true, even that will be cleared. You need to call this first to enable either type of Statement caching. When both types of Statement caching are enabled, thesize is the total number of cursors cached for both the schemes together. - Parameters:
size
- Size of the CacheclearMetaData
- Whether the state has to be cleared or not- Throws:
java.sql.SQLException
-
getStmtCacheSize
public int getStmtCacheSize()
Return the size of Statement Cache.- Returns:
- int Size of Statement Cache. If not set, the default 0 is returned.
-
isStmtCacheEnabled
public boolean isStmtCacheEnabled()
Check whether Statement Caching is enabled for this pool or Not.
-
getConnectionDuringExceptionHandling
protected oracle.jdbc.internal.OracleConnection getConnectionDuringExceptionHandling()
- Overrides:
getConnectionDuringExceptionHandling
in classOracleDataSource
-
-