Class Pool

java.lang.Object
org.mariadb.jdbc.internal.util.pool.Pool
All Implemented Interfaces:
AutoCloseable, PoolMBean

public class Pool extends Object implements AutoCloseable, PoolMBean
  • Constructor Details

    • 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 Details

    • 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() throws InterruptedException
      Close pool and underlying connections.
      Specified by:
      close in interface AutoCloseable
      Throws:
      InterruptedException - if interrupted
    • 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