Package org.apache.tomcat.dbcp.dbcp2
Class PoolableConnection
- java.lang.Object
- 
- org.apache.tomcat.dbcp.dbcp2.AbandonedTrace
- 
- org.apache.tomcat.dbcp.dbcp2.DelegatingConnection<java.sql.Connection>
- 
- org.apache.tomcat.dbcp.dbcp2.PoolableConnection
 
 
 
- 
- All Implemented Interfaces:
- java.lang.AutoCloseable,- java.sql.Connection,- java.sql.Wrapper,- PoolableConnectionMXBean,- TrackedUse
 
 public class PoolableConnection extends DelegatingConnection<java.sql.Connection> implements PoolableConnectionMXBean A delegating connection that, rather than closing the underlying connection, returns itself to anObjectPoolwhen closed.- Since:
- 2.0
 
- 
- 
Constructor SummaryConstructors Constructor Description PoolableConnection(java.sql.Connection conn, ObjectPool<PoolableConnection> pool, javax.management.ObjectName jmxName)PoolableConnection(java.sql.Connection conn, ObjectPool<PoolableConnection> pool, javax.management.ObjectName jmxObjectName, java.util.Collection<java.lang.String> disconnectSqlCodes, boolean fastFailValidation)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidabort(java.util.concurrent.Executor executor)Abort my underlyingConnection.voidclose()Returns me to my pool.java.util.Collection<java.lang.String>getDisconnectionSqlCodes()java.lang.StringgetToString()Expose theDelegatingConnection.toString()method via a bean getter so it can be read as a property via JMX.protected voidhandleException(java.sql.SQLException e)Handles the given exception by throwing it.booleanisClosed()booleanisFastFailValidation()protected voidpassivate()voidreallyClose()Actually close my underlyingConnection.voidvalidate(java.lang.String sql, int timeoutSeconds)Validates the connection, using the following algorithm: IffastFailValidation(constructor argument) istrueand this connection has previously thrown a fatal disconnection exception, aSQLExceptionis thrown. Ifsqlis null, the driver's #isValid(timeout)is called.- 
Methods inherited from class org.apache.tomcat.dbcp.dbcp2.DelegatingConnectionactivate, checkOpen, clearCachedState, clearWarnings, closeInternal, commit, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, getAutoCommit, getCacheState, getCatalog, getClientInfo, getClientInfo, getDefaultQueryTimeout, getDelegate, getDelegateInternal, getHoldability, getInnermostDelegate, getInnermostDelegateInternal, getMetaData, getNetworkTimeout, getSchema, getTransactionIsolation, getTypeMap, getWarnings, handleExceptionNoThrow, innermostDelegateEquals, isClosedInternal, isReadOnly, isValid, isWrapperFor, nativeSQL, prepareCall, prepareCall, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, releaseSavepoint, rollback, rollback, setAutoCommit, setCacheState, setCatalog, setClientInfo, setClientInfo, setClosedInternal, setDefaultQueryTimeout, setDelegate, setHoldability, setNetworkTimeout, setReadOnly, setSavepoint, setSavepoint, setSchema, setTransactionIsolation, setTypeMap, toString, unwrap
 - 
Methods inherited from class org.apache.tomcat.dbcp.dbcp2.AbandonedTraceaddTrace, clearTrace, getLastUsed, getTrace, removeThisTrace, removeTrace, setLastUsed, setLastUsed
 - 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 - 
Methods inherited from interface java.sql.ConnectionbeginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid
 - 
Methods inherited from interface org.apache.tomcat.dbcp.dbcp2.PoolableConnectionMXBeanclearCachedState, clearWarnings, getAutoCommit, getCacheState, getCatalog, getHoldability, getSchema, getTransactionIsolation, isReadOnly, setAutoCommit, setCacheState, setCatalog, setHoldability, setReadOnly, setSchema, setTransactionIsolation
 
- 
 
- 
- 
- 
Constructor Detail- 
PoolableConnectionpublic PoolableConnection(java.sql.Connection conn, ObjectPool<PoolableConnection> pool, javax.management.ObjectName jmxObjectName, java.util.Collection<java.lang.String> disconnectSqlCodes, boolean fastFailValidation)- Parameters:
- conn- my underlying connection
- pool- the pool to which I should return when closed
- jmxObjectName- JMX name
- disconnectSqlCodes- SQL_STATE codes considered fatal disconnection errors
- fastFailValidation- true means fatal disconnection errors cause subsequent validations to fail immediately (no attempt to run query or isValid)
 
 - 
PoolableConnectionpublic PoolableConnection(java.sql.Connection conn, ObjectPool<PoolableConnection> pool, javax.management.ObjectName jmxName)- Parameters:
- conn- my underlying connection
- pool- the pool to which I should return when closed
- jmxName- JMX name
 
 
- 
 - 
Method Detail- 
passivateprotected void passivate() throws java.sql.SQLException- Overrides:
- passivatein class- DelegatingConnection<java.sql.Connection>
- Throws:
- java.sql.SQLException
 
 - 
isClosedpublic boolean isClosed() throws java.sql.SQLExceptionThis method should not be used by a client to determine whether or not a connection should be return to the connection pool (by calling close()). Clients should always attempt to return a connection to the pool once it is no longer required.- Specified by:
- isClosedin interface- java.sql.Connection
- Specified by:
- isClosedin interface- PoolableConnectionMXBean
- Overrides:
- isClosedin class- DelegatingConnection<java.sql.Connection>
- Throws:
- java.sql.SQLException
 
 - 
closepublic void close() throws java.sql.SQLExceptionReturns me to my pool.- Specified by:
- closein interface- java.lang.AutoCloseable
- Specified by:
- closein interface- java.sql.Connection
- Specified by:
- closein interface- PoolableConnectionMXBean
- Overrides:
- closein class- DelegatingConnection<java.sql.Connection>
- Throws:
- java.sql.SQLException
 
 - 
reallyClosepublic void reallyClose() throws java.sql.SQLExceptionActually close my underlyingConnection.- Specified by:
- reallyClosein interface- PoolableConnectionMXBean
- Throws:
- java.sql.SQLException
 
 - 
abortpublic void abort(java.util.concurrent.Executor executor) throws java.sql.SQLExceptionAbort my underlyingConnection.- Specified by:
- abortin interface- java.sql.Connection
- Overrides:
- abortin class- DelegatingConnection<java.sql.Connection>
- Throws:
- java.sql.SQLException
- Since:
- 2.9.0
 
 - 
getToStringpublic java.lang.String getToString() Expose theDelegatingConnection.toString()method via a bean getter so it can be read as a property via JMX.- Specified by:
- getToStringin interface- PoolableConnectionMXBean
 
 - 
validatepublic void validate(java.lang.String sql, int timeoutSeconds) throws java.sql.SQLExceptionValidates the connection, using the following algorithm:- If fastFailValidation(constructor argument) istrueand this connection has previously thrown a fatal disconnection exception, aSQLExceptionis thrown.
- If sqlis null, the driver's #isValid(timeout)is called. If it returnsfalse,SQLExceptionis thrown; otherwise, this method returns successfully.
- If sqlis not null, it is executed as a query and if the resultingResultSetcontains at least one row, this method returns successfully. If not,SQLExceptionis thrown.
 - Parameters:
- sql- The validation SQL query.
- timeoutSeconds- The validation timeout in seconds.
- Throws:
- java.sql.SQLException- Thrown when validation fails or an SQLException occurs during validation
 
- If 
 - 
handleExceptionprotected void handleException(java.sql.SQLException e) throws java.sql.SQLExceptionDescription copied from class:DelegatingConnectionHandles the given exception by throwing it.- Overrides:
- handleExceptionin class- DelegatingConnection<java.sql.Connection>
- Parameters:
- e- the exception to throw.
- Throws:
- java.sql.SQLException- the exception to throw.
 
 - 
getDisconnectionSqlCodespublic java.util.Collection<java.lang.String> getDisconnectionSqlCodes() - Returns:
- The disconnection SQL codes.
- Since:
- 2.6.0
 
 - 
isFastFailValidationpublic boolean isFastFailValidation() - Returns:
- Whether to fail-fast.
- Since:
- 2.6.0
 
 
- 
 
-