Package org.apache.tomcat.dbcp.dbcp2.managed

## Class PoolableManagedConnection

- java.lang.Object
- - org.apache.tomcat.dbcp.dbcp2.AbandonedTrace
  - - org.apache.tomcat.dbcp.dbcp2.DelegatingConnection<java.sql.Connection>
    - - org.apache.tomcat.dbcp.dbcp2.PoolableConnection
      - - org.apache.tomcat.dbcp.dbcp2.managed.PoolableManagedConnection

- All Implemented Interfaces:
    `java.lang.AutoCloseable`, `java.sql.Connection`, `java.sql.Wrapper`, `PoolableConnectionMXBean`, `TrackedUse`

      public class PoolableManagedConnection
      extends PoolableConnection

  PoolableConnection that unregisters from TransactionRegistry on Connection real destroy.
  Since:
    2.0
  See Also:
    `PoolableConnection`

- - ### Field Summary

    - ### Fields inherited from interface java.sql.Connection

      `TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PoolableManagedConnection​(TransactionRegistry transactionRegistry, java.sql.Connection conn, ObjectPool<PoolableConnection> pool)` | Create a PoolableManagedConnection.
    `PoolableManagedConnection​(TransactionRegistry transactionRegistry, java.sql.Connection conn, ObjectPool<PoolableConnection> pool, java.util.Collection<java.lang.String> disconnectSqlCodes, boolean fastFailValidation)` | Create a PoolableManagedConnection.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `TransactionRegistry` | `getTransactionRegistry()` |
    `void` | `reallyClose()` | Actually close the underlying connection.

    - ### Methods inherited from class org.apache.tomcat.dbcp.dbcp2.PoolableConnection

      `abort, close, getDisconnectionSqlCodes, getToString, handleException, isClosed, isFastFailValidation, passivate, validate, validate`

    - ### Methods inherited from class org.apache.tomcat.dbcp.dbcp2.DelegatingConnection

      `activate, checkOpen, clearCachedState, clearWarnings, closeInternal, commit, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, getAutoCommit, getCacheState, getCatalog, getClientInfo, getClientInfo, getDefaultQueryTimeout, getDefaultQueryTimeoutDuration, getDelegate, getDelegateInternal, getHoldability, getInnermostDelegate, getInnermostDelegateInternal, getMetaData, getNetworkTimeout, getSchema, getTransactionIsolation, getTypeMap, getWarnings, handleExceptionNoThrow, innermostDelegateEquals, isClosedInternal, isReadOnly, isValid, isValid, isWrapperFor, nativeSQL, prepareCall, prepareCall, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, releaseSavepoint, rollback, rollback, setAutoCommit, setCacheState, setCatalog, setClientInfo, setClientInfo, setClosedInternal, setDefaultQueryTimeout, setDefaultQueryTimeout, setDelegate, setHoldability, setNetworkTimeout, setReadOnly, setSavepoint, setSavepoint, setSchema, setTransactionIsolation, setTypeMap, toString, unwrap`

    - ### Methods inherited from class org.apache.tomcat.dbcp.dbcp2.AbandonedTrace

      `addTrace, clearTrace, getLastUsed, getLastUsedInstant, getTrace, removeThisTrace, removeTrace, setLastUsed, setLastUsed, setLastUsed`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.sql.Connection

      `beginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid`

    - ### Methods inherited from interface org.apache.tomcat.dbcp.dbcp2.PoolableConnectionMXBean

      `clearCachedState, clearWarnings, getAutoCommit, getCacheState, getCatalog, getHoldability, getSchema, getTransactionIsolation, isReadOnly, setAutoCommit, setCacheState, setCatalog, setHoldability, setReadOnly, setSchema, setTransactionIsolation`

- - ### Constructor Detail

    - #### PoolableManagedConnection

          public PoolableManagedConnection​(TransactionRegistry transactionRegistry,
                                           java.sql.Connection conn,
                                           ObjectPool<PoolableConnection> pool)

      Create a PoolableManagedConnection.
      Parameters:
        `transactionRegistry` - transaction registry
        `conn` - underlying connection
        `pool` - connection pool

    - #### PoolableManagedConnection

          public PoolableManagedConnection​(TransactionRegistry transactionRegistry,
                                           java.sql.Connection conn,
                                           ObjectPool<PoolableConnection> pool,
                                           java.util.Collection<java.lang.String> disconnectSqlCodes,
                                           boolean fastFailValidation)

      Create a PoolableManagedConnection.
      Parameters:
        `transactionRegistry` - transaction registry
        `conn` - underlying connection
        `pool` - connection pool
        `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)

  - ### Method Detail

    - #### getTransactionRegistry

          public TransactionRegistry getTransactionRegistry()

      Returns:
        The transaction registry.
      Since:
        2.6.0

    - #### reallyClose

          public void reallyClose()
                           throws java.sql.SQLException

      Actually close the underlying connection.
      Specified by:
        `reallyClose` in interface `PoolableConnectionMXBean`
      Overrides:
        `reallyClose` in class `PoolableConnection`
      Throws:
        `java.sql.SQLException`