Package org.fbsql.connection_pool
Class ConnectionPoolManager
- java.lang.Object
-
- org.fbsql.connection_pool.ConnectionPoolManager
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class ConnectionPoolManager extends java.lang.Object implements java.lang.AutoCloseable
Connection pool used to connect to database using a pre-created set of reusable connections. When a new connection is required, an arbitrary available connection is retrieved from the pool. When connection closed, it is returned to connection pool for future use.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<DbConnection>
availableList
private int
initialPoolSize
private java.util.Collection<DbConnection>
inUseList
private java.lang.String
jdbcPassword
private java.util.Properties
jdbcProperties
private java.lang.String
jdbcUrl
private java.lang.String
jdbcUser
private int
maxPoolSize
-
Constructor Summary
Constructors Constructor Description ConnectionPoolManager(java.lang.String jdbcUrl, java.lang.String jdbcUser, java.lang.String jdbcPassword, java.util.Properties jdbcProperties, int initialPoolSize, int maxPoolSize)
Constructs ConnectionPoolManager
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addNewConnection()
Add new connection to poolvoid
close()
Close ConnectionPoolManagerDbConnection
getConnection()
Get available connection from poolvoid
init()
Initialize ConnectionPoolManagerboolean
releaseConnection(DbConnection dbConnection)
Release connection
-
-
-
Field Detail
-
initialPoolSize
private int initialPoolSize
-
maxPoolSize
private int maxPoolSize
-
jdbcUrl
private java.lang.String jdbcUrl
-
jdbcUser
private java.lang.String jdbcUser
-
jdbcPassword
private java.lang.String jdbcPassword
-
jdbcProperties
private java.util.Properties jdbcProperties
-
availableList
private java.util.List<DbConnection> availableList
-
inUseList
private java.util.Collection<DbConnection> inUseList
-
-
Constructor Detail
-
ConnectionPoolManager
public ConnectionPoolManager(java.lang.String jdbcUrl, java.lang.String jdbcUser, java.lang.String jdbcPassword, java.util.Properties jdbcProperties, int initialPoolSize, int maxPoolSize)
Constructs ConnectionPoolManager- Parameters:
jdbcUrl
-jdbcUser
-jdbcPassword
-initialPoolSize
-maxPoolSize
-
-
-
Method Detail
-
init
public void init() throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.sql.SQLException, java.io.FileNotFoundException, java.io.IOException
Initialize ConnectionPoolManager- Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
java.sql.SQLException
java.io.FileNotFoundException
java.io.IOException
-
close
public void close() throws java.sql.SQLException
Close ConnectionPoolManager- Specified by:
close
in interfacejava.lang.AutoCloseable
- Throws:
java.sql.SQLException
-
getConnection
public DbConnection getConnection() throws java.sql.SQLException
Get available connection from pool- Returns:
- Throws:
java.sql.SQLException
-
releaseConnection
public boolean releaseConnection(DbConnection dbConnection) throws java.sql.SQLException
Release connection- Parameters:
dbConnection
-- Returns:
- true if connection successfully released
- Throws:
java.sql.SQLException
-
addNewConnection
private void addNewConnection() throws java.sql.SQLException
Add new connection to pool- Throws:
java.sql.SQLException
-
-