Blocking Queue example of limited connection pool

private BlockingQueue<Connection> pool = new ArrayBlockingQueue<Connection>(10);
private AtomicInteger connCount = new AtomicInteger();
 
public Connection getConnection() {
    Connection conn = pool.poll(5, TimeUnit.SECONDS);
    if (conn == null) {

  synchronized (connCount) {


if (connCount.get() < 10) {


    conn = getNewConnection();


    pool.offer(conn);


    connCount.incrementAndGet();


}

  }

  if (conn == null) {


throw new ConnUnavailException();

  } else {


return conn;

  }
    }
}

Related Article:

Reference: Java Concurrency Part 5 – Blocking Queues from our JCG partners at the Carfey Software blog

Share and enjoy!
© 2010-2012 Examples Java Code Geeks. Licenced under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
All trademarks and registered trademarks appearing on Examples Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Examples Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.