を待っている私はこのようなのConnectionPoolを使用してプールを作成しました:タイムアウトがアイドルオブジェクトApacheの接続プールの
私は、データベースからgetConectionにいくつかのtaksを作成し、それらをexcute。私はアプリケーションを3回だけ実行し、私のアプリケーションは例外をスローします。
PoolableObjectFactory mySqlPoolableObjectFactory = new MySqlPoolableObjectFactory(
host, dbName, user, password);
Config config = new GenericObjectPool.Config();
config.maxActive = 10;
config.testOnBorrow = true;
config.testWhileIdle = true;
config.maxIdle = 5;
config.minIdle = 1;
config.maxWait = 10000;
config.timeBetweenEvictionRunsMillis = 10000;
config.minEvictableIdleTimeMillis = 60000;
GenericObjectPoolFactory genericObjectPoolFactory = new GenericObjectPoolFactory(
mySqlPoolableObjectFactory, config);
return genericObjectPoolFactory.createPool();
public Connection getConnectionFromPool() {
Connection conn = null;
try {
conn = (Connection) connPool.borrowObject();
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
しかし、私は多くのスレッドを実行します。これは、組み合わせて意味がありませんExeption
java.util.NoSuchElementException: Timeout waiting for idle object
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1174)
at vn.vccorp.bigdata.mysql.AdmarketPool.getConnectionFromPool(AdmarketPool.java:76)
returnObjectメソッドを使用してオブジェクトをプールに戻しますか? (!= nullのをconnの){ \t \t \t試し{ \t \t \t \t connPool.returnObject(CONN)場合ます。public void safeClose(接続CONN){ \t \tを使用して、私のSQLを終了した後 –
はい、私なかれ近い接続。 \t \t \t}キャッチ(例外e){ \t \t \t \t e.printStackTrace(); \t \t \t \t \t \t} – phuongdo