| Modifier and Type | Field and Description |
|---|---|
private java.util.concurrent.ThreadPoolExecutor |
connectionAppender |
private java.util.concurrent.BlockingQueue<java.lang.Runnable> |
connectionAppenderQueue |
private long |
connectionTime |
private GlobalStateInfo |
globalInfo |
private java.util.concurrent.LinkedBlockingDeque<MariaDbPooledConnection> |
idleConnections |
private static Logger |
logger |
private int |
maxIdleTime |
private Options |
options |
private java.util.concurrent.atomic.AtomicInteger |
pendingRequestNumber |
private static int |
POOL_STATE_CLOSING |
private static int |
POOL_STATE_OK |
private java.util.concurrent.ScheduledThreadPoolExecutor |
poolExecutor |
private java.util.concurrent.atomic.AtomicInteger |
poolState |
private java.lang.String |
poolTag |
private java.util.concurrent.ScheduledFuture |
scheduledFuture |
private long |
timeToConnectNanos |
private java.util.concurrent.atomic.AtomicInteger |
totalConnection |
private UrlParser |
urlParser |
| Constructor and Description |
|---|
Pool(UrlParser urlParser,
int poolIndex,
java.util.concurrent.ScheduledThreadPoolExecutor poolExecutor)
Create pool from configuration.
|
| Modifier and Type | Method and Description |
|---|---|
private void |
addConnection()
Create new connection.
|
private void |
addConnectionRequest()
Add new connection if needed.
|
void |
close()
Close pool and underlying connections.
|
private void |
closeAll(java.util.concurrent.ExecutorService connectionRemover,
java.util.Collection<MariaDbPooledConnection> collection) |
private MariaDbPooledConnection |
createPoolConnection(MariaDbConnection connection) |
boolean |
equals(java.lang.Object obj) |
private java.lang.String |
generatePoolTag(int poolIndex) |
long |
getActiveConnections() |
MariaDbConnection |
getConnection()
Retrieve new connection.
|
MariaDbConnection |
getConnection(java.lang.String username,
java.lang.String password)
Get new connection from pool if user and password correspond to pool.
|
long |
getConnectionRequests() |
GlobalStateInfo |
getGlobalInfo() |
private MariaDbPooledConnection |
getIdleConnection() |
private MariaDbPooledConnection |
getIdleConnection(long timeout,
java.util.concurrent.TimeUnit timeUnit)
Get an existing idle connection in pool.
|
long |
getIdleConnections() |
java.lang.String |
getPoolTag() |
long |
getTotalConnections() |
UrlParser |
getUrlParser() |
int |
hashCode() |
private void |
initializePoolGlobalState(MariaDbConnection connection) |
private void |
registerJmx() |
private void |
removeIdleTimeoutConnection()
Removing idle connection.
|
void |
resetStaticGlobal()
JMX method to remove state (will be reinitialized on next connection creation).
|
private void |
silentAbortConnection(MariaDbPooledConnection item) |
private void |
silentCloseConnection(MariaDbPooledConnection item) |
java.util.List<java.lang.Long> |
testGetConnectionIdleThreadIds()
For testing purpose only.
|
private void |
unRegisterJmx() |
private static final Logger logger
private static final int POOL_STATE_OK
private static final int POOL_STATE_CLOSING
private final java.util.concurrent.atomic.AtomicInteger poolState
private final UrlParser urlParser
private final Options options
private final java.util.concurrent.atomic.AtomicInteger pendingRequestNumber
private final java.util.concurrent.atomic.AtomicInteger totalConnection
private final java.util.concurrent.LinkedBlockingDeque<MariaDbPooledConnection> idleConnections
private final java.util.concurrent.ThreadPoolExecutor connectionAppender
private final java.util.concurrent.BlockingQueue<java.lang.Runnable> connectionAppenderQueue
private final java.lang.String poolTag
private final java.util.concurrent.ScheduledThreadPoolExecutor poolExecutor
private final java.util.concurrent.ScheduledFuture scheduledFuture
private GlobalStateInfo globalInfo
private int maxIdleTime
private long timeToConnectNanos
private long connectionTime
public Pool(UrlParser urlParser, int poolIndex, java.util.concurrent.ScheduledThreadPoolExecutor poolExecutor)
urlParser - configuration parserpoolIndex - pool index to permit distinction of thread namepoolExecutor - pools common executorprivate void addConnectionRequest()
private void removeIdleTimeoutConnection()
private void addConnection()
throws java.sql.SQLException
java.sql.SQLException - if connection creation failedprivate MariaDbPooledConnection getIdleConnection() throws java.lang.InterruptedException
java.lang.InterruptedExceptionprivate MariaDbPooledConnection getIdleConnection(long timeout, java.util.concurrent.TimeUnit timeUnit) throws java.lang.InterruptedException
java.lang.InterruptedExceptionprivate void silentCloseConnection(MariaDbPooledConnection item)
private void silentAbortConnection(MariaDbPooledConnection item)
private MariaDbPooledConnection createPoolConnection(MariaDbConnection connection)
public MariaDbConnection getConnection() throws java.sql.SQLException
java.sql.SQLException - if no connection is created when reaching timeout (connectTimeout option)public MariaDbConnection getConnection(java.lang.String username, java.lang.String password) throws java.sql.SQLException
username - usernamepassword - passwordjava.sql.SQLException - if any error occur during connectionprivate java.lang.String generatePoolTag(int poolIndex)
public UrlParser getUrlParser()
public void close()
throws java.lang.InterruptedException
close in interface java.lang.AutoCloseablejava.lang.InterruptedException - if interruptedprivate void closeAll(java.util.concurrent.ExecutorService connectionRemover,
java.util.Collection<MariaDbPooledConnection> collection)
private void initializePoolGlobalState(MariaDbConnection connection) throws java.sql.SQLException
java.sql.SQLExceptionpublic java.lang.String getPoolTag()
public boolean equals(java.lang.Object obj)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic GlobalStateInfo getGlobalInfo()
public long getActiveConnections()
getActiveConnections in interface PoolMBeanpublic long getTotalConnections()
getTotalConnections in interface PoolMBeanpublic long getIdleConnections()
getIdleConnections in interface PoolMBeanpublic long getConnectionRequests()
getConnectionRequests in interface PoolMBeanprivate void registerJmx()
throws java.lang.Exception
java.lang.Exceptionprivate void unRegisterJmx()
throws java.lang.Exception
java.lang.Exceptionpublic java.util.List<java.lang.Long> testGetConnectionIdleThreadIds()
public void resetStaticGlobal()
resetStaticGlobal in interface PoolMBean