Author: fhanik
Date: Tue Oct 28 08:00:22 2008
New Revision: 708592

URL: http://svn.apache.org/viewvc?rev=708592&view=rev
Log:
Make the polling fairness configurable

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/DataSourceFactory.java
    
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
    
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.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=708592&r1=708591&r2=708592&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
 Tue Oct 28 08:00:22 2008
@@ -265,7 +265,7 @@
         //make space for 10 extra in case we flow over a bit
         busy = new 
ArrayBlockingQueue<PooledConnection>(properties.getMaxActive(),false);
         //make space for 10 extra in case we flow over a bit
-        idle = new 
ArrayBlockingQueue<PooledConnection>(properties.getMaxActive(),false);
+        idle = new 
ArrayBlockingQueue<PooledConnection>(properties.getMaxActive(),properties.isFairQueue());
 
         //if the evictor thread is supposed to run, start it now
         if (properties.isPoolSweeperEnabled()) {

Modified: 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSourceFactory.java?rev=708592&r1=708591&r2=708592&view=diff
==============================================================================
--- 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSourceFactory.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSourceFactory.java
 Tue Oct 28 08:00:22 2008
@@ -99,6 +99,7 @@
     protected final static String PROP_INTERCEPTORS = "jdbcInterceptors";
     protected final static String PROP_VALIDATIONINTERVAL = 
"validationInterval";
     protected final static String PROP_JMX_ENABLED = "jmxEnabled";
+    protected final static String PROP_FAIR_QUEUE = "fairQueue";
     
     public static final int UNKNOWN_TRANSACTIONISOLATION = -1;
 
@@ -135,7 +136,8 @@
         PROP_CONNECTIONPROPERTIES,
         PROP_INITSQL,
         PROP_INTERCEPTORS,
-        PROP_JMX_ENABLED
+        PROP_JMX_ENABLED,
+        PROP_FAIR_QUEUE
     };
 
     // -------------------------------------------------- ObjectFactory Methods
@@ -380,6 +382,12 @@
         if (value != null) {
             
dataSource.getPoolProperties().setJmxEnabled(Boolean.parseBoolean(value));
         }
+        
+        value = properties.getProperty(PROP_FAIR_QUEUE);
+        if (value != null) {
+            
dataSource.getPoolProperties().setFairQueue(Boolean.parseBoolean(value));
+        }
+        
 
         // Return the configured DataSource instance
         DataSource ds = getDataSource(dataSource);

Modified: 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java?rev=708592&r1=708591&r2=708592&view=diff
==============================================================================
--- 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
 Tue Oct 28 08:00:22 2008
@@ -284,6 +284,10 @@
         this.getPoolProperties().setJmxEnabled(enabled);
     }
     
+    public void setFairQueue(boolean fairQueue) {
+        this.getPoolProperties().setFairQueue(fairQueue);
+    }
+    
     public void setConnectionProperties(String properties) {
         try {
             java.util.Properties prop = 
DataSourceFactory.getProperties(properties);

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=708592&r1=708591&r2=708592&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
 Tue Oct 28 08:00:22 2008
@@ -58,6 +58,15 @@
     protected String initSQL;
     protected boolean testOnConnect =false;
     private String jdbcInterceptors=null;
+    private boolean fairQueue = false;
+
+    public boolean isFairQueue() {
+        return fairQueue;
+    }
+
+    public void setFairQueue(boolean fairQueue) {
+        this.fairQueue = fairQueue;
+    }
 
     public boolean isAccessToUnderlyingConnectionAllowed() {
         return accessToUnderlyingConnectionAllowed;



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to