public class PoolableConnection extends DelegatingConnection<java.sql.Connection> implements PoolableConnectionMXBean
ObjectPool
when closed.Constructor and 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) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Returns me to my pool.
|
java.lang.String |
getToString()
Expose the
DelegatingConnection.toString() method via a bean getter so it can be read as a property via JMX. |
protected void |
handleException(java.sql.SQLException e) |
boolean |
isClosed()
This 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() ). |
protected void |
passivate() |
void |
reallyClose()
Actually close my underlying
Connection . |
void |
validate(java.lang.String sql,
int timeoutSeconds)
Validates the connection, using the following algorithm:
If
fastFailValidation (constructor argument) is true and this connection has previously
thrown a fatal disconnection exception, a SQLException is thrown. |
abort, activate, 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, 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
addTrace, clearTrace, getLastUsed, getTrace, removeTrace, setLastUsed, setLastUsed
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
clearCachedState, clearWarnings, getAutoCommit, getCacheState, getCatalog, getHoldability, getSchema, getTransactionIsolation, isReadOnly, setAutoCommit, setCacheState, setCatalog, setHoldability, setReadOnly, setSchema, setTransactionIsolation
public PoolableConnection(java.sql.Connection conn, ObjectPool<PoolableConnection> pool, javax.management.ObjectName jmxObjectName, java.util.Collection<java.lang.String> disconnectSqlCodes, boolean fastFailValidation)
conn
- my underlying connectionpool
- the pool to which I should return when closedjmxObjectName
- JMX namedisconnectSqlCodes
- SQL_STATE codes considered fatal disconnection errorsfastFailValidation
- true means fatal disconnection errors cause subsequent validations to fail immediately (no attempt to
run query or isValid)public PoolableConnection(java.sql.Connection conn, ObjectPool<PoolableConnection> pool, javax.management.ObjectName jmxName)
conn
- my underlying connectionpool
- the pool to which I should return when closedjmxName
- JMX nameprotected void passivate() throws java.sql.SQLException
passivate
in class DelegatingConnection<java.sql.Connection>
java.sql.SQLException
public boolean isClosed() throws java.sql.SQLException
This 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.
isClosed
in interface java.sql.Connection
isClosed
in interface PoolableConnectionMXBean
isClosed
in class DelegatingConnection<java.sql.Connection>
java.sql.SQLException
public void close() throws java.sql.SQLException
close
in interface java.lang.AutoCloseable
close
in interface java.sql.Connection
close
in interface PoolableConnectionMXBean
close
in class DelegatingConnection<java.sql.Connection>
java.sql.SQLException
public void reallyClose() throws java.sql.SQLException
Connection
.reallyClose
in interface PoolableConnectionMXBean
java.sql.SQLException
public java.lang.String getToString()
DelegatingConnection.toString()
method via a bean getter so it can be read as a property via JMX.getToString
in interface PoolableConnectionMXBean
public void validate(java.lang.String sql, int timeoutSeconds) throws java.sql.SQLException
fastFailValidation
(constructor argument) is true
and this connection has previously
thrown a fatal disconnection exception, a SQLException
is thrown.sql
is null, the driver's #isValid(timeout)
is called. If it
returns false
, SQLException
is thrown; otherwise, this method returns successfully.sql
is not null, it is executed as a query and if the resulting ResultSet
contains at
least one row, this method returns successfully. If not, SQLException
is thrown.sql
- The validation SQL query.timeoutSeconds
- The validation timeout in seconds.java.sql.SQLException
- Thrown when validation fails or an SQLException occurs during validationprotected void handleException(java.sql.SQLException e) throws java.sql.SQLException
handleException
in class DelegatingConnection<java.sql.Connection>
java.sql.SQLException
Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.