org.mariadb.jdbc.internal.util.pool

## Class Pool

- java.lang.Object
- - org.mariadb.jdbc.internal.util.pool.Pool

All Implemented Interfaces:
  Closeable, AutoCloseable, PoolMBean

    public class Pool
    extends Object
    implements Closeable, PoolMBean

### Constructor Summary

Constructors
Constructor and Description
`Pool(UrlParser urlParser, int poolIndex, ScheduledThreadPoolExecutor poolExecutor)` Create pool from configuration.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `close()` Close pool and underlying connections.
`boolean` `equals(Object obj)`
`long` `getActiveConnections()`
`MariaDbConnection` `getConnection()` Retrieve new connection.
`MariaDbConnection` `getConnection(String username, String password)` Get new connection from pool if user and password correspond to pool.
`long` `getConnectionRequests()`
`GlobalStateInfo` `getGlobalInfo()`
`long` `getIdleConnections()`
`String` `getPoolTag()`
`long` `getTotalConnections()`
`UrlParser` `getUrlParser()`
`int` `hashCode()`
`void` `resetStaticGlobal()` JMX method to remove state (will be reinitialized on next connection creation).
`List<Long>` `testGetConnectionIdleThreadIds()` For testing purpose only.

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

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

### Constructor Detail

#### Pool

    public Pool(UrlParser urlParser,
                int poolIndex,
                ScheduledThreadPoolExecutor poolExecutor)

Create pool from configuration.

Parameters:
  `urlParser` - configuration parser
  `poolIndex` - pool index to permit distinction of thread name
  `poolExecutor` - pools common executor

### Method Detail

#### getConnection

    public MariaDbConnection getConnection()
                                    throws SQLException

Retrieve new connection. If possible return idle connection, if not, stack connection query, ask for a connection creation, and loop until a connection become idle / a new connection is created.

Returns:
  a connection object
Throws:
  `SQLException` - if no connection is created when reaching timeout (connectTimeout option)

#### getConnection

    public MariaDbConnection getConnection(String username,
                                           String password)
                                    throws SQLException

Get new connection from pool if user and password correspond to pool. If username and password are different from pool, will return a dedicated connection.

Parameters:
  `username` - username
  `password` - password
Returns:
  connection
Throws:
  `SQLException` - if any error occur during connection

#### getUrlParser

    public UrlParser getUrlParser()

#### close

    public void close()

Close pool and underlying connections.

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`

#### getPoolTag

    public String getPoolTag()

#### equals

    public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### getGlobalInfo

    public GlobalStateInfo getGlobalInfo()

#### getActiveConnections

    public long getActiveConnections()

Specified by:
  `getActiveConnections` in interface `PoolMBean`

#### getTotalConnections

    public long getTotalConnections()

Specified by:
  `getTotalConnections` in interface `PoolMBean`

#### getIdleConnections

    public long getIdleConnections()

Specified by:
  `getIdleConnections` in interface `PoolMBean`

#### getConnectionRequests

    public long getConnectionRequests()

Specified by:
  `getConnectionRequests` in interface `PoolMBean`

#### testGetConnectionIdleThreadIds

    public List<Long> testGetConnectionIdleThreadIds()

For testing purpose only.

Returns:
  current thread id's

#### resetStaticGlobal

    public void resetStaticGlobal()

JMX method to remove state (will be reinitialized on next connection creation).

Specified by:
  `resetStaticGlobal` in interface `PoolMBean`