Author: fhanik
Date: Wed Apr 15 05:44:43 2009
New Revision: 765054
URL: http://svn.apache.org/viewvc?rev=765054&view=rev
Log:
When using the fair queue, use a much more efficient idle connection handling
by using a FILO queue
so that connections are reused properly
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=765054&r1=765053&r2=765054&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
Wed Apr 15 05:44:43 2009
@@ -630,7 +630,7 @@
con.validate(PooledConnection.VALIDATE_RETURN)) {
con.setStackTrace(null);
con.setTimestamp(System.currentTimeMillis());
- if ((idle.size()>=poolProperties.getMaxIdle()) ||
(!idle.offer(con))) {
+ if (((idle.size()>=poolProperties.getMaxIdle()) &&
!poolProperties.isPoolSweeperEnabled()) || (!idle.offer(con))) {
if (log.isDebugEnabled()) {
log.debug("Connection ["+con+"] will be closed
and not returned to the pool,
idle["+idle.size()+"]>=maxIdle["+poolProperties.getMaxIdle()+"] idle.offer
failed.");
}
@@ -920,7 +920,7 @@
try {
if (pool.getPoolProperties().isRemoveAbandoned())
pool.checkAbandoned();
- if
(pool.getPoolProperties().getMaxIdle()<pool.idle.size())
+ if
(pool.getPoolProperties().getMinIdle()<pool.idle.size())
pool.checkIdle();
if (pool.getPoolProperties().isTestWhileIdle())
pool.testAllIdle();
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java?rev=765054&r1=765053&r2=765054&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java
Wed Apr 15 05:44:43 2009
@@ -63,7 +63,7 @@
c = waiters.poll();
c.setItem(e);
} else {
- items.add(e);
+ items.addFirst(e);
}
} finally {
lock.unlock();
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java?rev=765054&r1=765053&r2=765054&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
Wed Apr 15 05:44:43 2009
@@ -45,7 +45,7 @@
protected String connectionProperties;
protected int initialSize = 10;
protected int maxActive = 100;
- protected int maxIdle = maxActive;
+ protected int maxIdle = Integer.MAX_VALUE;
protected int minIdle = initialSize;
protected int maxWait = 30000;
protected String validationQuery;
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java?rev=765054&r1=765053&r2=765054&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java
Wed Apr 15 05:44:43 2009
@@ -154,7 +154,7 @@
}
public int getNumActive() {
- return getNumActive();
+ return getActive();
}
//=================================================================
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]