Package org.apache.cayenne.datasource

## Class ManagedPoolingDataSource

- java.lang.Object
- - org.apache.cayenne.datasource.ManagedPoolingDataSource

- All Implemented Interfaces:
    `AutoCloseable`, `Wrapper`, `CommonDataSource`, `DataSource`, `PoolingDataSource`, `ScopeEventListener`

      public class ManagedPoolingDataSource
      extends Object
      implements PoolingDataSource, ScopeEventListener

  A wrapper for `UnmanagedPoolingDataSource` that automatically manages the underlying connection pool size.
  Since:
    4.0

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ManagedPoolingDataSource​(UnmanagedPoolingDataSource dataSource)` |
    `ManagedPoolingDataSource​(UnmanagedPoolingDataSource dataSource, long managerWakeTime)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `beforeScopeEnd()` | Calls `#shutdown()` to drain the underlying pool, close open connections and block the DataSource from creating any new connections.
    `void` | `close()` |
    `Connection` | `getConnection()` |
    `Connection` | `getConnection​(String username, String password)` |
    `int` | `getLoginTimeout()` |
    `PrintWriter` | `getLogWriter()` |
    `Logger` | `getParentLogger()` |
    `boolean` | `isWrapperFor​(Class<?> iface)` |
    `void` | `setLoginTimeout​(int arg0)` |
    `void` | `setLogWriter​(PrintWriter arg0)` |
    `<T> T` | `unwrap​(Class<T> iface)` |

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

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

    - ### Methods inherited from interface javax.sql.CommonDataSource

      `createShardingKeyBuilder`

    - ### Methods inherited from interface javax.sql.DataSource

      `createConnectionBuilder`

- - ### Constructor Detail

    - #### ManagedPoolingDataSource

          public ManagedPoolingDataSource​(UnmanagedPoolingDataSource dataSource)

    - #### ManagedPoolingDataSource

          public ManagedPoolingDataSource​(UnmanagedPoolingDataSource dataSource,
                                          long managerWakeTime)

  - ### Method Detail

    - #### beforeScopeEnd

          public void beforeScopeEnd()

      Calls `#shutdown()` to drain the underlying pool, close open connections and block the DataSource from creating any new connections.
      Specified by:
        `beforeScopeEnd` in interface `ScopeEventListener`

    - #### close

          public void close()

      Specified by:
        `close` in interface `AutoCloseable`

    - #### getConnection

          public Connection getConnection()
                                   throws SQLException

      Specified by:
        `getConnection` in interface `DataSource`
      Throws:
        `SQLException`

    - #### getConnection

          public Connection getConnection​(String username,
                                          String password)
                                   throws SQLException

      Specified by:
        `getConnection` in interface `DataSource`
      Throws:
        `SQLException`

    - #### getLogWriter

          public PrintWriter getLogWriter()
                                   throws SQLException

      Specified by:
        `getLogWriter` in interface `CommonDataSource`
      Specified by:
        `getLogWriter` in interface `DataSource`
      Throws:
        `SQLException`

    - #### getLoginTimeout

          public int getLoginTimeout()
                              throws SQLException

      Specified by:
        `getLoginTimeout` in interface `CommonDataSource`
      Specified by:
        `getLoginTimeout` in interface `DataSource`
      Throws:
        `SQLException`

    - #### isWrapperFor

          public boolean isWrapperFor​(Class<?> iface)
                               throws SQLException

      Specified by:
        `isWrapperFor` in interface `Wrapper`
      Throws:
        `SQLException`

    - #### setLogWriter

          public void setLogWriter​(PrintWriter arg0)
                            throws SQLException

      Specified by:
        `setLogWriter` in interface `CommonDataSource`
      Specified by:
        `setLogWriter` in interface `DataSource`
      Throws:
        `SQLException`

    - #### setLoginTimeout

          public void setLoginTimeout​(int arg0)
                               throws SQLException

      Specified by:
        `setLoginTimeout` in interface `CommonDataSource`
      Specified by:
        `setLoginTimeout` in interface `DataSource`
      Throws:
        `SQLException`

    - #### unwrap

          public <T> T unwrap​(Class<T> iface)
                       throws SQLException

      Specified by:
        `unwrap` in interface `Wrapper`
      Throws:
        `SQLException`

    - #### getParentLogger

          public Logger getParentLogger()
                                 throws SQLFeatureNotSupportedException

      Specified by:
        `getParentLogger` in interface `CommonDataSource`
      Throws:
        `SQLFeatureNotSupportedException`