Class OraclePooledConnection

java.lang.Object
oracle.jdbc.pool.OraclePooledConnection
All Implemented Interfaces:
Serializable, PooledConnection, OraclePooledConnection, oracle.jdbc.diagnostics.Diagnosable, oracle.jdbc.diagnostics.PropertyChangeListener, oracle.jdbc.internal.Monitor
Direct Known Subclasses:
OracleXAConnection

public class OraclePooledConnection extends Object implements OraclePooledConnection, Serializable, oracle.jdbc.internal.Monitor, oracle.jdbc.diagnostics.Diagnosable

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:
  • Field Details

  • Constructor Details

    • 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 - Username
      passwd - 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 connection
      ac - autoCommit value
  • Method Details

    • addConnectionEventListener

      public void addConnectionEventListener(ConnectionEventListener cel)

      Add an event listener.

      Specified by:
      addConnectionEventListener in interface PooledConnection
      Parameters:
      cel - The listener to be added
    • close

      public void close() throws SQLException

      Close the physical connection.

      Specified by:
      close in interface PooledConnection
      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 interface PooledConnection
      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 interface OraclePooledConnection
      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 interface OraclePooledConnection
      Throws:
      SQLException
    • getLastAccessedTime

      @Deprecated public long getLastAccessedTime() throws SQLException
      Deprecated.
      Specified by:
      getLastAccessedTime in interface OraclePooledConnection
      Throws:
      SQLException
    • registerImplicitCacheConnectionEventListener

      @Deprecated public void registerImplicitCacheConnectionEventListener(ConnectionEventListener cel)
      Deprecated.
      Specified by:
      registerImplicitCacheConnectionEventListener in interface OraclePooledConnection
    • removeConnectionEventListener

      public void removeConnectionEventListener(ConnectionEventListener cel)

      Remove an event listener.

      Specified by:
      removeConnectionEventListener in interface PooledConnection
      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 size 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, the 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 size cursors are already cached than they will be closed. By default, the metadata 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 size is the total number of cursors cached for both the schemes together.

      Parameters:
      size - Size of the Cache
      clearMetaData - 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 interface OraclePooledConnection
      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 interface OraclePooledConnection
      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 setStatementCacheSize().
      Specified by:
      setImplicitCachingEnabled in interface OraclePooledConnection
      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 interface OraclePooledConnection
      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 setStatementCacheSize().
      Specified by:
      setExplicitCachingEnabled in interface OraclePooledConnection
      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 interface OraclePooledConnection
      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 interface OraclePooledConnection
      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 interface OraclePooledConnection
      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 parameter 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 interface OraclePooledConnection
      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 parameter 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 interface OraclePooledConnection
      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 interface OraclePooledConnection
      Returns:
      the XAResource (null if error occurs)
      Throws:
      SQLException - if a database error occurs
    • addStatementEventListener

      public void addStatementEventListener(StatementEventListener listener)
      Specified by:
      addStatementEventListener in interface PooledConnection
    • removeStatementEventListener

      public void removeStatementEventListener(StatementEventListener listener)
      Specified by:
      removeStatementEventListener in interface PooledConnection
    • 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 interface OraclePooledConnection
      Parameters:
      shardingKey - Sharding key to be validated against this connection
      superShardingKey - Super Sharding key to be validated against this connection
      timeout - 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 interface OraclePooledConnection
      Parameters:
      shardingKey - sharding key to be set on this connection
      superShardingKey - 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()
    • getMonitorLock

      public final oracle.jdbc.internal.Monitor.CloseableLock getMonitorLock()
      Specified by:
      getMonitorLock in interface oracle.jdbc.internal.Monitor
    • getDiagnosable

      public oracle.jdbc.diagnostics.Diagnosable getDiagnosable()
      Specified by:
      getDiagnosable in interface oracle.jdbc.diagnostics.Diagnosable