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 jmxName,
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 timeout)
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 jmxName, java.util.Collection<java.lang.String> disconnectSqlCodes, boolean fastFailValidation)
conn
- my underlying connectionpool
- the pool to which I should return when closedjmxName
- 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
- Error closing connectionpublic 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 timeout) 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
- validation querytimeout
- validation timeoutjava.sql.SQLException
- if 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.