Class OraclePooledConnection
- java.lang.Object
-
- oracle.jdbc.pool.OraclePooledConnection
-
- All Implemented Interfaces:
Serializable
,PooledConnection
,OraclePooledConnection
,oracle.jdbc.internal.Monitor
- Direct Known Subclasses:
OracleXAConnection
public class OraclePooledConnection extends Object implements OraclePooledConnection, Serializable, oracle.jdbc.internal.Monitor
An OraclePooledConnection object is a connection object that provides hooks for connection pool management. A PooledConnection object represents a physical connection to a data source. It implements javax.sql.PooledConnection
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
autoCommit
static String
close_callback_string
int
closeOption
static String
connect_auto_commit_string
static String
connection_properties_string
static String
event_listener_string
static String
explicit_caching_enabled
static String
ExplicitStatementCachingEnabled
static String
implicit_caching_enabled
static String
ImplicitStatementCachingEnabled
static String
isClearMetaData
protected oracle.jdbc.internal.OracleConnection
logicalHandle
static String
LoginTimeout
static String
NO_IMPLICIT_BEGIN_REQUEST_PROPERTY
static String
object_type_map
protected oracle.jdbc.driver.OracleDriver
oracleDriver
protected oracle.jdbc.internal.OracleConnection
physicalConn
static String
pool_auto_commit_string
static String
private_data
protected oracle.jdbc.internal.OracleConnection
replayConn
static String
sql_exception_string
static String
statement_cache_size
static String
transaction_isolation
static String
url_string
-
Constructor Summary
Constructors Constructor Description OraclePooledConnection()
OraclePooledConnection(String url)
Creates a PooledConnection.OraclePooledConnection(String url, String user, String passwd)
Creates a PooledConnection.OraclePooledConnection(Connection pc)
Create a Pooled Connection.OraclePooledConnection(Connection pc, boolean ac)
Create a Pooled Connection.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addConnectionEventListener(ConnectionEventListener cel)
Add an event listener.void
addStatementEventListener(StatementEventListener listener)
void
close()
Close the physical connection.protected void
debug(Logger logger, Level level, Executable method, String msg)
CallableStatement
getCallWithKey(String key)
getCallWithKey Searches the explicit cache for a match on key.Connection
getConnection()
Create an object handle for this physical connection.protected oracle.jdbc.internal.OracleConnection
getConnectionDuringExceptionHandling()
boolean
getExplicitCachingEnabled()
getExplicitCachingEnabled Returns true if the explicit cache is currently enabled, false otherwise.boolean
getImplicitCachingEnabled()
getImplicitCachingEnabled Returns true if the implicit cache is currently enabled, false otherwise.long
getLastAccessedTime()
Deprecated.Connection
getLogicalHandle()
Return the logical handle to the caller.oracle.jdbc.internal.Monitor.CloseableLock
getMonitorLock()
Connection
getPhysicalHandle()
int
getStatementCacheSize()
getStatementCacheSize Returns the current size of the application cache.PreparedStatement
getStatementWithKey(String key)
getStatementWithKey Searches the explicit cache for a match on key.int
getStmtCacheSize()
Deprecated.XAResource
getXAResource()
Return an XA resource to the caller.boolean
isStatementCacheInitialized()
void
purgeExplicitCache()
purgeExplicitCache Removes all existing statements from the explicit cache, after which it will be empty.void
purgeImplicitCache()
purgeImplicitCache Removes all existing statements from the implicit cache, after which it will be empty.void
registerImplicitCacheConnectionEventListener(ConnectionEventListener cel)
Deprecated.void
removeConnectionEventListener(ConnectionEventListener cel)
Remove an event listener.void
removeStatementEventListener(StatementEventListener listener)
void
setConnection(oracle.jdbc.internal.OracleConnection rconn)
void
setExplicitCachingEnabled(boolean cache)
setExplicitCachingEnabled Enables or disables the explicit cache.void
setImplicitCachingEnabled(boolean cache)
setImplicitCachingEnabled Enables or disables the implicit cache.void
setLastAccessedTime(long lastAccessedTime)
Deprecated.void
setProperties(Hashtable prop)
void
setShardingKey(OracleShardingKey shardingKey, OracleShardingKey superShardingKey)
Sets the sharding key and the super sharding key on this connection.boolean
setShardingKeyIfValid(OracleShardingKey shardingKey, OracleShardingKey superShardingKey, int timeout)
Checks the validity of the connection and also checks if the sharding keys passed to this method are valid for the connection.If the sharding keys are valid, it will be set on the connection's session.void
setStatementCacheSize(int size)
setStatementCacheSize Specifies the size of the size of the application cache (which will be used by both implicit and explicit caching).void
setStmtCacheSize(int size)
Deprecated.void
setStmtCacheSize(int size, boolean clearMetaData)
Deprecated.
-
-
-
Field Detail
-
url_string
public static final String url_string
- See Also:
- Constant Field Values
-
pool_auto_commit_string
public static final String pool_auto_commit_string
- See Also:
- Constant Field Values
-
object_type_map
public static final String object_type_map
- See Also:
- Constant Field Values
-
transaction_isolation
public static final String transaction_isolation
- See Also:
- Constant Field Values
-
statement_cache_size
public static final String statement_cache_size
- See Also:
- Constant Field Values
-
isClearMetaData
public static final String isClearMetaData
- See Also:
- Constant Field Values
-
ImplicitStatementCachingEnabled
public static final String ImplicitStatementCachingEnabled
- See Also:
- Constant Field Values
-
ExplicitStatementCachingEnabled
public static final String ExplicitStatementCachingEnabled
- See Also:
- Constant Field Values
-
LoginTimeout
public static final String LoginTimeout
- See Also:
- Constant Field Values
-
connect_auto_commit_string
public static final String connect_auto_commit_string
- See Also:
- Constant Field Values
-
implicit_caching_enabled
public static final String implicit_caching_enabled
- See Also:
- Constant Field Values
-
explicit_caching_enabled
public static final String explicit_caching_enabled
- See Also:
- Constant Field Values
-
connection_properties_string
public static final String connection_properties_string
- See Also:
- Constant Field Values
-
event_listener_string
public static final String event_listener_string
- See Also:
- Constant Field Values
-
sql_exception_string
public static final String sql_exception_string
- See Also:
- Constant Field Values
-
close_callback_string
public static final String close_callback_string
- See Also:
- Constant Field Values
-
private_data
public static final String private_data
- See Also:
- Constant Field Values
-
autoCommit
protected boolean autoCommit
-
logicalHandle
protected transient oracle.jdbc.internal.OracleConnection logicalHandle
-
physicalConn
protected transient oracle.jdbc.internal.OracleConnection physicalConn
-
replayConn
protected transient oracle.jdbc.internal.OracleConnection replayConn
-
closeOption
public int closeOption
-
oracleDriver
protected transient oracle.jdbc.driver.OracleDriver oracleDriver
-
NO_IMPLICIT_BEGIN_REQUEST_PROPERTY
public static final String NO_IMPLICIT_BEGIN_REQUEST_PROPERTY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
OraclePooledConnection
public OraclePooledConnection()
-
OraclePooledConnection
public OraclePooledConnection(String url) throws SQLException
Creates a PooledConnection.
- Parameters:
url
- URL of the physical connection.- Throws:
SQLException
-
OraclePooledConnection
public OraclePooledConnection(String url, String user, String passwd) throws SQLException
Creates a PooledConnection.
- Parameters:
url
- URL of the physical connection.user
- User Namepasswd
- Password- Throws:
SQLException
-
OraclePooledConnection
public OraclePooledConnection(Connection pc)
Create a Pooled Connection.
- Parameters:
pc
- The corresponding physical connection.
-
OraclePooledConnection
public OraclePooledConnection(Connection pc, boolean ac)
Create a Pooled Connection.
- Parameters:
pc
- The corresponding physical connectionac
- autoCommit value
-
-
Method Detail
-
addConnectionEventListener
public void addConnectionEventListener(ConnectionEventListener cel)
Add an event listener.
- Specified by:
addConnectionEventListener
in interfacePooledConnection
- Parameters:
cel
- The listener to be added
-
close
public void close() throws SQLException
Close the physical connection.
- Specified by:
close
in interfacePooledConnection
- Throws:
SQLException
- if a database-access error occurs.
-
getConnection
public Connection getConnection() throws SQLException
Create an object handle for this physical connection. The object returned is a temporary handle used by application code to refer to a physical connection that is being pooled.
- Specified by:
getConnection
in interfacePooledConnection
- Returns:
- a Connection object
- Throws:
SQLException
- if a database-access error occurs.
-
getLogicalHandle
public Connection getLogicalHandle() throws SQLException
Return the logical handle to the caller. This logical handle refers to the physical connection that is pooled.
- Specified by:
getLogicalHandle
in interfaceOraclePooledConnection
- Returns:
- a Connection object
- Throws:
SQLException
-
getPhysicalHandle
public Connection getPhysicalHandle() throws SQLException
- Throws:
SQLException
-
setLastAccessedTime
@Deprecated public void setLastAccessedTime(long lastAccessedTime) throws SQLException
Deprecated.- Specified by:
setLastAccessedTime
in interfaceOraclePooledConnection
- Throws:
SQLException
-
getLastAccessedTime
@Deprecated public long getLastAccessedTime() throws SQLException
Deprecated.- Specified by:
getLastAccessedTime
in interfaceOraclePooledConnection
- Throws:
SQLException
-
registerImplicitCacheConnectionEventListener
@Deprecated public void registerImplicitCacheConnectionEventListener(ConnectionEventListener cel)
Deprecated.- Specified by:
registerImplicitCacheConnectionEventListener
in interfaceOraclePooledConnection
-
removeConnectionEventListener
public void removeConnectionEventListener(ConnectionEventListener cel)
Remove an event listener.
- Specified by:
removeConnectionEventListener
in interfacePooledConnection
- Parameters:
cel
- The listener to be removed.
-
setStmtCacheSize
public void setStmtCacheSize(int size) throws SQLException
Deprecated.Set the statement cache size. Default is 0. You cannot call this for logicalhandles obtained from PooledConnections.If more than <it> size </it> cursors are already cached than they will be closed. By default the meta data 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, the <it> size </size> is the total number of cursors cached for both the schemes together.
- Parameters:
size
- Size of the Cache- Throws:
SQLException
-
setStmtCacheSize
public void setStmtCacheSize(int size, boolean clearMetaData) throws SQLException
Deprecated.Set the statement cache size. Default is 0. You cannot call this for logicalhandles obtained from PooledConnections.If more than <it> size </it> 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, the <it> size </size> 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:
SQLException
-
getStmtCacheSize
public int getStmtCacheSize()
Deprecated.Return the size of Statement Cache.- Returns:
- int Size of Statement Cache. If not set, the default 0 is returned.
-
setStatementCacheSize
public void setStatementCacheSize(int size) throws SQLException
setStatementCacheSize Specifies the size of the size of the application cache (which will be used by both implicit and explicit caching).- Specified by:
setStatementCacheSize
in interfaceOraclePooledConnection
- Parameters:
size
- Requested size of the cache. If the existing cache size is less than size, statements will be purged to reduce the size.- Throws:
SQLException
- if size < 0, or if called on a logical connection.
-
getStatementCacheSize
public int getStatementCacheSize() throws SQLException
getStatementCacheSize Returns the current size of the application cache. This is valid on both physical and logical connections.- Specified by:
getStatementCacheSize
in interfaceOraclePooledConnection
- Throws:
SQLException
-
setImplicitCachingEnabled
public void setImplicitCachingEnabled(boolean cache) throws SQLException
setImplicitCachingEnabled Enables or disables the implicit cache. Note that this is independent of the cache size, set with setStatmentCacheSize().- Specified by:
setImplicitCachingEnabled
in interfaceOraclePooledConnection
- 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
- if called on a logical connection.
-
getImplicitCachingEnabled
public boolean getImplicitCachingEnabled() throws SQLException
getImplicitCachingEnabled Returns true if the implicit cache is currently enabled, false otherwise. This method is valid on both logical and physical connections.- Specified by:
getImplicitCachingEnabled
in interfaceOraclePooledConnection
- Throws:
SQLException
-
setExplicitCachingEnabled
public void setExplicitCachingEnabled(boolean cache) throws SQLException
setExplicitCachingEnabled Enables or disables the explicit cache. Note that this is independent of the cache size, set with setStatmentCacheSize().- Specified by:
setExplicitCachingEnabled
in interfaceOraclePooledConnection
- 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
public boolean getExplicitCachingEnabled() throws SQLException
getExplicitCachingEnabled Returns true if the explicit cache is currently enabled, false otherwise. This method is valid on both logical and physical connections.- Specified by:
getExplicitCachingEnabled
in interfaceOraclePooledConnection
- Throws:
SQLException
-
purgeImplicitCache
public void purgeImplicitCache() throws SQLException
purgeImplicitCache Removes all existing statements from the implicit cache, after which it will be empty. This method does not affect the size of the application cache, nor the enabled/disabled status.- Specified by:
purgeImplicitCache
in interfaceOraclePooledConnection
- Throws:
SQLException
-
purgeExplicitCache
public void purgeExplicitCache() throws SQLException
purgeExplicitCache Removes all existing statements from the explicit cache, after which it will be empty. This method does not affect the size of the application cache, nor the enabled/disabled status.- Specified by:
purgeExplicitCache
in interfaceOraclePooledConnection
- Throws:
SQLException
-
getStatementWithKey
public PreparedStatement getStatementWithKey(String key) throws SQLException
getStatementWithKey Searches the explicit cache for a match on key. If found, the statement is returned, with the paramater and define metadata identical to the last usage. If a CallableStatement is found (instead of a PreparedStatement, ORA-17125 is raised. If no match is found, or if explicit caching is not enabled, null is returned.- Specified by:
getStatementWithKey
in interfaceOraclePooledConnection
- Parameters:
key
- Specified key to search for- Throws:
SQLException
-
getCallWithKey
public CallableStatement getCallWithKey(String key) throws SQLException
getCallWithKey Searches the explicit cache for a match on key. If found, the statement is returned, with the paramater and define metadata identical to the last usage. If a PreparedStatement is found (instead of a CallableStatement, ORA-17125 is raised. If no match is found, or if explicit caching is not enabled, null is returned.- Specified by:
getCallWithKey
in interfaceOraclePooledConnection
- Parameters:
key
- Specified key to search for- Throws:
SQLException
-
isStatementCacheInitialized
public boolean isStatementCacheInitialized()
-
setProperties
public final void setProperties(Hashtable prop)
-
getXAResource
public XAResource getXAResource() throws SQLException
Return an XA resource to the caller. This is just a placeholder. Only the one on XAConnection is meaningful.- Specified by:
getXAResource
in interfaceOraclePooledConnection
- Returns:
- the XAResource (null if error occurs)
- Throws:
SQLException
- if a database error occurs
-
addStatementEventListener
public void addStatementEventListener(StatementEventListener listener)
- Specified by:
addStatementEventListener
in interfacePooledConnection
-
removeStatementEventListener
public void removeStatementEventListener(StatementEventListener listener)
- Specified by:
removeStatementEventListener
in interfacePooledConnection
-
setConnection
public void setConnection(oracle.jdbc.internal.OracleConnection rconn) throws SQLException
- Throws:
SQLException
-
setShardingKeyIfValid
public boolean setShardingKeyIfValid(OracleShardingKey shardingKey, OracleShardingKey superShardingKey, int timeout) throws SQLException
Checks the validity of the connection and also checks if the sharding keys passed to this method are valid for the connection.If the sharding keys are valid, it will be set on the connection's session.- Specified by:
setShardingKeyIfValid
in interfaceOraclePooledConnection
- Parameters:
shardingKey
- Sharding key to be validated against this connectionsuperShardingKey
- Super Sharding key to be validated against this connectiontimeout
- Time in seconds before which the validation process is expected to be complete, else the validation process is aborted. The value of the timeout must be set to zero to disable the timeout during the validation.- Returns:
- true if the connection is valid and the shard keys are valid to be set on this connection.
- Throws:
SQLException
- if there is any exception while performing this validation or if timeout value is less than 0.
-
setShardingKey
public void setShardingKey(OracleShardingKey shardingKey, OracleShardingKey superShardingKey) throws SQLException
Sets the sharding key and the super sharding key on this connection.- Specified by:
setShardingKey
in interfaceOraclePooledConnection
- Parameters:
shardingKey
- sharding key to be set on this connectionsuperShardingKey
- Super Sharding key to be set on this connection- Throws:
SQLException
- if there is an exception while setting the sharding keys on this connection.
-
getConnectionDuringExceptionHandling
protected oracle.jdbc.internal.OracleConnection getConnectionDuringExceptionHandling()
-
debug
protected void debug(Logger logger, Level level, Executable method, String msg)
-
getMonitorLock
public final oracle.jdbc.internal.Monitor.CloseableLock getMonitorLock()
- Specified by:
getMonitorLock
in interfaceoracle.jdbc.internal.Monitor
-
-