# Class ManagedPoolingDataSource

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

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

public class ManagedPoolingDataSource extends Object implements DataSource, AutoCloseable, 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

  Modifier and Type
  Method
  Description
  `void`
  `beforeScopeEnd()`
  Calls `close()` 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 Object

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

  ### Methods inherited from interface CommonDataSource

  `createShardingKeyBuilder`

  ### Methods inherited from interface DataSource

  `createConnectionBuilder`

- ## Constructor Details

  - ### ManagedPoolingDataSource

    public ManagedPoolingDataSource(UnmanagedPoolingDataSource dataSource)

  - ### ManagedPoolingDataSource

    public ManagedPoolingDataSource(UnmanagedPoolingDataSource dataSource, long managerWakeTime)

- ## Method Details

  - ### beforeScopeEnd

    public void beforeScopeEnd()
    Calls `close()` 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`