You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2008/11/03 23:38:56 UTC

svn commit: r710199 [4/4] - in /tomcat/trunk/modules/jdbc-pool: ./ doc/ java/org/apache/tomcat/jdbc/pool/ java/org/apache/tomcat/jdbc/pool/jmx/ test/org/apache/tomcat/jdbc/test/

Modified: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/CheckOutThreadTest.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/CheckOutThreadTest.java?rev=710199&r1=710198&r2=710199&view=diff
==============================================================================
--- tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/CheckOutThreadTest.java (original)
+++ tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/CheckOutThreadTest.java Mon Nov  3 14:38:55 2008
@@ -1,371 +1,371 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tomcat.jdbc.test;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.sql.Connection;
-import java.sql.Statement;
-import java.sql.ResultSet;
-
-import javax.sql.DataSource;
-
-import org.apache.tomcat.jdbc.pool.DataSourceFactory;
-
-/**
- * @author Filip Hanik
- * @version 1.0
- */
-public class CheckOutThreadTest extends DefaultTestCase {
-    public CheckOutThreadTest(String name) {
-        super(name);
-    }
-
-    CountDownLatch latch = null;
-
-    public void testDBCPThreads10Connections10() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.threadcount = 10;
-        this.transferProperties();
-        this.tDatasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-dbcp-"+i);
-            t.d = this.tDatasource;
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testDBCPThreads10Connections10]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-
-    public void testPoolThreads10Connections10() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.threadcount = 10;
-        this.transferProperties();
-        this.datasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-pool-"+i);
-            t.d = DataSourceFactory.getDataSource(this.datasource);
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testPoolThreads10Connections10]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-
-    public void testDBCPThreads20Connections10() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.threadcount = 20;
-        this.transferProperties();
-        this.tDatasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-dbcp-"+i);
-            t.d = this.tDatasource;
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testDBCPThreads20Connections10]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-
-    public void testPoolThreads20Connections10() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.threadcount = 20;
-        this.transferProperties();
-        this.datasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-pool-"+i);
-            t.d = DataSourceFactory.getDataSource(this.datasource);
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testPoolThreads20Connections10]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-
-    public void testPoolThreads20Connections10Fair() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.datasource.getPoolProperties().setFairQueue(true);
-        this.threadcount = 20;
-        this.transferProperties();
-        this.datasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-pool-"+i);
-            t.d = DataSourceFactory.getDataSource(this.datasource);
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testPoolThreads20Connections10Fair]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-
-    
-    public void testDBCPThreads10Connections10Validate() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
-        this.datasource.getPoolProperties().setTestOnBorrow(true);
-        this.threadcount = 10;
-        this.transferProperties();
-        this.tDatasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-dbcp-validate-"+i);
-            t.d = this.tDatasource;
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testDBCPThreads10Connections10Validate]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-
-    public void testPoolThreads10Connections10Validate() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
-        this.datasource.getPoolProperties().setTestOnBorrow(true);
-        this.threadcount = 10;
-        this.transferProperties();
-        this.datasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-pool-validate-"+i);
-            t.d = DataSourceFactory.getDataSource(this.datasource);
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testPoolThreads10Connections10Validate]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-
-    public void testDBCPThreads20Connections10Validate() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
-        this.datasource.getPoolProperties().setTestOnBorrow(true);
-        this.threadcount = 20;
-        this.transferProperties();
-        this.tDatasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-dbcp-validate-"+i);
-            t.d = this.tDatasource;
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testDBCPThreads20Connections10Validate]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-
-    public void testPoolThreads10Connections20Validate() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
-        this.datasource.getPoolProperties().setTestOnBorrow(true);
-        this.threadcount = 20;
-        this.transferProperties();
-        this.datasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-pool-validate-"+i);
-            t.d = DataSourceFactory.getDataSource(this.datasource);
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testPoolThreads20Connections10Validate]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-    
-    public void testDBCPThreads10Connections10WithQuery() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.datasource.getPoolProperties().setTestOnBorrow(false);
-        this.threadcount = 10;
-        this.transferProperties();
-        this.tDatasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-dbcp-"+i);
-            t.d = this.tDatasource;
-            t.query = "select * from user";
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testDBCPThreads10Connections10WithQuery]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-
-    public void testPoolThreads10Connections10WithQuery() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.datasource.getPoolProperties().setTestOnBorrow(false);
-        this.threadcount = 10;
-        this.transferProperties();
-        this.datasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-pool-"+i);
-            t.d = DataSourceFactory.getDataSource(this.datasource);
-            t.query = "select * from user";
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testPoolThreads10Connections10WithQuery]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-    
-    public void testDBCPThreads10Connections10WithValidateWithQuery() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.datasource.getPoolProperties().setTestOnBorrow(true);
-        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
-        this.threadcount = 10;
-        this.transferProperties();
-        this.tDatasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-dbcp-"+i);
-            t.d = this.tDatasource;
-            t.query = "select * from user";
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testDBCPThreads10Connections10WithValidateWithQuery]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-
-    public void testPoolThreads10Connections10WithValidateWithQuery() throws Exception {
-        init();
-        this.datasource.getPoolProperties().setMaxActive(10);
-        this.datasource.getPoolProperties().setTestOnBorrow(true);
-        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
-        this.threadcount = 10;
-        this.transferProperties();
-        this.datasource.getConnection().close();
-        latch = new CountDownLatch(threadcount);
-        long start = System.currentTimeMillis();
-        for (int i=0; i<threadcount; i++) {
-            TestThread t = new TestThread();
-            t.setName("tomcat-pool-"+i);
-            t.d = DataSourceFactory.getDataSource(this.datasource);
-            t.query = "select * from user";
-            t.start();
-        }
-        latch.await();
-        long delta = System.currentTimeMillis() - start;
-        System.out.println("[testPoolThreads10Connections10WithValidateWithQuery]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
-        tearDown();
-    }
-    
-    public class TestThread extends Thread {
-        protected DataSource d;
-        protected String query = null;
-        public void run() {
-            long max = -1, totalmax=0, totalcmax=0, cmax = -1, nroffetch = 0, totalruntime = 0;
-            try {
-                for (int i = 0; i < CheckOutThreadTest.this.iterations; i++) {
-                    long start = System.nanoTime();
-                    Connection con = null;
-                    try {
-                        con = d.getConnection();
-                        long delta = System.nanoTime() - start;
-                        totalmax += delta;
-                        max = Math.max(delta, max);
-                        nroffetch++;
-                        if (query!=null) {
-                            Statement st = con.createStatement();
-                            ResultSet rs = st.executeQuery(query);
-                            while (rs.next()) {
-                            }
-                            rs.close();
-                            st.close();
-                        }
-                    } finally {
-                        long cstart = System.nanoTime();
-                        if (con!=null) try {con.close();}catch(Exception x) {x.printStackTrace();}
-                        long cdelta = System.nanoTime() - cstart;
-                        totalcmax += cdelta;
-                        cmax = Math.max(cdelta, cmax);
-                    }
-                    totalruntime+=(System.nanoTime()-start);
-                }
-
-            } catch (Exception x) {
-                x.printStackTrace();
-            } finally {
-                CheckOutThreadTest.this.latch.countDown();
-            }
-            if (System.getProperty("print-thread-stats")!=null) {
-                System.out.println("["+getName()+"] "+
-                    "\n\tMax time to retrieve connection:"+(((float)max)/1000f/1000f)+" ms."+
-                    "\n\tTotal time to retrieve connection:"+(((float)totalmax)/1000f/1000f)+" ms."+
-                    "\n\tAverage time to retrieve connection:"+(((float)totalmax)/1000f/1000f)/(float)nroffetch+" ms."+
-                    "\n\tMax time to close connection:"+(((float)cmax)/1000f/1000f)+" ms."+
-                    "\n\tTotal time to close connection:"+(((float)totalcmax)/1000f/1000f)+" ms."+
-                    "\n\tAverage time to close connection:"+(((float)totalcmax)/1000f/1000f)/(float)nroffetch+" ms."+
-                    "\n\tRun time:"+(((float)totalruntime)/1000f/1000f)+" ms."+
-                    "\n\tNr of fetch:"+nroffetch);
-            }
-        }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomcat.jdbc.test;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.sql.Connection;
+import java.sql.Statement;
+import java.sql.ResultSet;
+
+import javax.sql.DataSource;
+
+import org.apache.tomcat.jdbc.pool.DataSourceFactory;
+
+/**
+ * @author Filip Hanik
+ * @version 1.0
+ */
+public class CheckOutThreadTest extends DefaultTestCase {
+    public CheckOutThreadTest(String name) {
+        super(name);
+    }
+
+    CountDownLatch latch = null;
+
+    public void testDBCPThreads10Connections10() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.threadcount = 10;
+        this.transferProperties();
+        this.tDatasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-dbcp-"+i);
+            t.d = this.tDatasource;
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testDBCPThreads10Connections10]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+
+    public void testPoolThreads10Connections10() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.threadcount = 10;
+        this.transferProperties();
+        this.datasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-pool-"+i);
+            t.d = DataSourceFactory.getDataSource(this.datasource);
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testPoolThreads10Connections10]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+
+    public void testDBCPThreads20Connections10() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.threadcount = 20;
+        this.transferProperties();
+        this.tDatasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-dbcp-"+i);
+            t.d = this.tDatasource;
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testDBCPThreads20Connections10]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+
+    public void testPoolThreads20Connections10() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.threadcount = 20;
+        this.transferProperties();
+        this.datasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-pool-"+i);
+            t.d = DataSourceFactory.getDataSource(this.datasource);
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testPoolThreads20Connections10]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+
+    public void testPoolThreads20Connections10Fair() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.datasource.getPoolProperties().setFairQueue(true);
+        this.threadcount = 20;
+        this.transferProperties();
+        this.datasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-pool-"+i);
+            t.d = DataSourceFactory.getDataSource(this.datasource);
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testPoolThreads20Connections10Fair]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+
+    
+    public void testDBCPThreads10Connections10Validate() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
+        this.datasource.getPoolProperties().setTestOnBorrow(true);
+        this.threadcount = 10;
+        this.transferProperties();
+        this.tDatasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-dbcp-validate-"+i);
+            t.d = this.tDatasource;
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testDBCPThreads10Connections10Validate]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+
+    public void testPoolThreads10Connections10Validate() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
+        this.datasource.getPoolProperties().setTestOnBorrow(true);
+        this.threadcount = 10;
+        this.transferProperties();
+        this.datasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-pool-validate-"+i);
+            t.d = DataSourceFactory.getDataSource(this.datasource);
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testPoolThreads10Connections10Validate]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+
+    public void testDBCPThreads20Connections10Validate() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
+        this.datasource.getPoolProperties().setTestOnBorrow(true);
+        this.threadcount = 20;
+        this.transferProperties();
+        this.tDatasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-dbcp-validate-"+i);
+            t.d = this.tDatasource;
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testDBCPThreads20Connections10Validate]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+
+    public void testPoolThreads10Connections20Validate() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
+        this.datasource.getPoolProperties().setTestOnBorrow(true);
+        this.threadcount = 20;
+        this.transferProperties();
+        this.datasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-pool-validate-"+i);
+            t.d = DataSourceFactory.getDataSource(this.datasource);
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testPoolThreads20Connections10Validate]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+    
+    public void testDBCPThreads10Connections10WithQuery() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.datasource.getPoolProperties().setTestOnBorrow(false);
+        this.threadcount = 10;
+        this.transferProperties();
+        this.tDatasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-dbcp-"+i);
+            t.d = this.tDatasource;
+            t.query = "select * from user";
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testDBCPThreads10Connections10WithQuery]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+
+    public void testPoolThreads10Connections10WithQuery() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.datasource.getPoolProperties().setTestOnBorrow(false);
+        this.threadcount = 10;
+        this.transferProperties();
+        this.datasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-pool-"+i);
+            t.d = DataSourceFactory.getDataSource(this.datasource);
+            t.query = "select * from user";
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testPoolThreads10Connections10WithQuery]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+    
+    public void testDBCPThreads10Connections10WithValidateWithQuery() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.datasource.getPoolProperties().setTestOnBorrow(true);
+        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
+        this.threadcount = 10;
+        this.transferProperties();
+        this.tDatasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-dbcp-"+i);
+            t.d = this.tDatasource;
+            t.query = "select * from user";
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testDBCPThreads10Connections10WithValidateWithQuery]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+
+    public void testPoolThreads10Connections10WithValidateWithQuery() throws Exception {
+        init();
+        this.datasource.getPoolProperties().setMaxActive(10);
+        this.datasource.getPoolProperties().setTestOnBorrow(true);
+        this.datasource.getPoolProperties().setValidationQuery("SELECT 1");
+        this.threadcount = 10;
+        this.transferProperties();
+        this.datasource.getConnection().close();
+        latch = new CountDownLatch(threadcount);
+        long start = System.currentTimeMillis();
+        for (int i=0; i<threadcount; i++) {
+            TestThread t = new TestThread();
+            t.setName("tomcat-pool-"+i);
+            t.d = DataSourceFactory.getDataSource(this.datasource);
+            t.query = "select * from user";
+            t.start();
+        }
+        latch.await();
+        long delta = System.currentTimeMillis() - start;
+        System.out.println("[testPoolThreads10Connections10WithValidateWithQuery]Test complete:"+delta+" ms. Iterations:"+(threadcount*this.iterations));
+        tearDown();
+    }
+    
+    public class TestThread extends Thread {
+        protected DataSource d;
+        protected String query = null;
+        public void run() {
+            long max = -1, totalmax=0, totalcmax=0, cmax = -1, nroffetch = 0, totalruntime = 0;
+            try {
+                for (int i = 0; i < CheckOutThreadTest.this.iterations; i++) {
+                    long start = System.nanoTime();
+                    Connection con = null;
+                    try {
+                        con = d.getConnection();
+                        long delta = System.nanoTime() - start;
+                        totalmax += delta;
+                        max = Math.max(delta, max);
+                        nroffetch++;
+                        if (query!=null) {
+                            Statement st = con.createStatement();
+                            ResultSet rs = st.executeQuery(query);
+                            while (rs.next()) {
+                            }
+                            rs.close();
+                            st.close();
+                        }
+                    } finally {
+                        long cstart = System.nanoTime();
+                        if (con!=null) try {con.close();}catch(Exception x) {x.printStackTrace();}
+                        long cdelta = System.nanoTime() - cstart;
+                        totalcmax += cdelta;
+                        cmax = Math.max(cdelta, cmax);
+                    }
+                    totalruntime+=(System.nanoTime()-start);
+                }
+
+            } catch (Exception x) {
+                x.printStackTrace();
+            } finally {
+                CheckOutThreadTest.this.latch.countDown();
+            }
+            if (System.getProperty("print-thread-stats")!=null) {
+                System.out.println("["+getName()+"] "+
+                    "\n\tMax time to retrieve connection:"+(((float)max)/1000f/1000f)+" ms."+
+                    "\n\tTotal time to retrieve connection:"+(((float)totalmax)/1000f/1000f)+" ms."+
+                    "\n\tAverage time to retrieve connection:"+(((float)totalmax)/1000f/1000f)/(float)nroffetch+" ms."+
+                    "\n\tMax time to close connection:"+(((float)cmax)/1000f/1000f)+" ms."+
+                    "\n\tTotal time to close connection:"+(((float)totalcmax)/1000f/1000f)+" ms."+
+                    "\n\tAverage time to close connection:"+(((float)totalcmax)/1000f/1000f)/(float)nroffetch+" ms."+
+                    "\n\tRun time:"+(((float)totalruntime)/1000f/1000f)+" ms."+
+                    "\n\tNr of fetch:"+nroffetch);
+            }
+        }
+    }
+}

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/CheckOutThreadTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/CheckOutThreadTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultProperties.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultProperties.java?rev=710199&r1=710198&r2=710199&view=diff
==============================================================================
--- tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultProperties.java (original)
+++ tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultProperties.java Mon Nov  3 14:38:55 2008
@@ -1,63 +1,63 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tomcat.jdbc.test;
-
-import java.util.Properties;
-
-import org.apache.tomcat.jdbc.pool.DataSourceFactory;
-import org.apache.tomcat.jdbc.pool.PoolProperties;
-
-/**
- * @author Filip Hanik
- * @version 1.0
- */
-public class DefaultProperties extends PoolProperties {
-    public DefaultProperties() {
-        dbProperties = new Properties();
-        url = "jdbc:mysql://localhost:3306/mysql?autoReconnect=true";
-        driverClassName = "com.mysql.jdbc.Driver";
-        password = "password";
-        username = "root";
-        defaultAutoCommit = true;
-        defaultReadOnly = false;
-        defaultTransactionIsolation = DataSourceFactory.UNKNOWN_TRANSACTIONISOLATION;
-        connectionProperties = null;
-        defaultCatalog = null;
-        initialSize = 10;
-        maxActive = 100;
-        maxIdle = initialSize;
-        minIdle = initialSize;
-        maxWait = 10000;
-        validationQuery = "SELECT 1";
-        testOnBorrow = true;
-        testOnReturn = false;
-        testWhileIdle = true;
-        timeBetweenEvictionRunsMillis = 5000;
-        numTestsPerEvictionRun = 0;
-        minEvictableIdleTimeMillis = 1000;
-        accessToUnderlyingConnectionAllowed = false;
-        removeAbandoned = true;
-        removeAbandonedTimeout = 5000;
-        logAbandoned = true;
-        loginTimeout = 0;
-        validationInterval = 0; //always validate
-        initSQL = null;
-        testOnConnect = false;;
-        dbProperties.setProperty("user",username);
-        dbProperties.setProperty("password",password);
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomcat.jdbc.test;
+
+import java.util.Properties;
+
+import org.apache.tomcat.jdbc.pool.DataSourceFactory;
+import org.apache.tomcat.jdbc.pool.PoolProperties;
+
+/**
+ * @author Filip Hanik
+ * @version 1.0
+ */
+public class DefaultProperties extends PoolProperties {
+    public DefaultProperties() {
+        dbProperties = new Properties();
+        url = "jdbc:mysql://localhost:3306/mysql?autoReconnect=true";
+        driverClassName = "com.mysql.jdbc.Driver";
+        password = "password";
+        username = "root";
+        defaultAutoCommit = true;
+        defaultReadOnly = false;
+        defaultTransactionIsolation = DataSourceFactory.UNKNOWN_TRANSACTIONISOLATION;
+        connectionProperties = null;
+        defaultCatalog = null;
+        initialSize = 10;
+        maxActive = 100;
+        maxIdle = initialSize;
+        minIdle = initialSize;
+        maxWait = 10000;
+        validationQuery = "SELECT 1";
+        testOnBorrow = true;
+        testOnReturn = false;
+        testWhileIdle = true;
+        timeBetweenEvictionRunsMillis = 5000;
+        numTestsPerEvictionRun = 0;
+        minEvictableIdleTimeMillis = 1000;
+        accessToUnderlyingConnectionAllowed = false;
+        removeAbandoned = true;
+        removeAbandonedTimeout = 5000;
+        logAbandoned = true;
+        loginTimeout = 0;
+        validationInterval = 0; //always validate
+        initSQL = null;
+        testOnConnect = false;;
+        dbProperties.setProperty("user",username);
+        dbProperties.setProperty("password",password);
+    }
+}

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultProperties.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultProperties.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java?rev=710199&r1=710198&r2=710199&view=diff
==============================================================================
--- tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java (original)
+++ tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java Mon Nov  3 14:38:55 2008
@@ -1,158 +1,158 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tomcat.jdbc.test;
-
-import java.lang.reflect.Method;
-import java.util.Properties;
-
-import org.apache.tomcat.dbcp.dbcp.BasicDataSource;
-import org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory;
-
-import junit.framework.TestCase;
-import org.apache.tomcat.jdbc.pool.PoolProperties;
-import org.apache.tomcat.jdbc.pool.DataSourceProxy;
-
-/**
- * @author Filip Hanik
- * @version 1.0
- */
-public class DefaultTestCase extends TestCase {
-    protected DataSourceProxy datasource;
-    protected BasicDataSource tDatasource;
-    protected int threadcount = 10;
-    protected int iterations = 100000;
-    public DefaultTestCase(String name) {
-        super(name);
-    }
-
-    protected void init() throws Exception {
-        PoolProperties p = new DefaultProperties();
-        p.setJmxEnabled(false);
-        p.setTestWhileIdle(false);
-        p.setTestOnBorrow(false);
-        p.setTestOnReturn(false);
-        p.setValidationInterval(30000);
-        p.setTimeBetweenEvictionRunsMillis(30000);
-        p.setMaxActive(threadcount);
-        p.setInitialSize(threadcount);
-        p.setMaxWait(10000);
-        p.setRemoveAbandonedTimeout(10);
-        p.setMinEvictableIdleTimeMillis(10000);
-        p.setMinIdle(threadcount);
-        p.setLogAbandoned(false);
-        p.setRemoveAbandoned(false);
-        datasource = new org.apache.tomcat.jdbc.pool.DataSourceProxy();
-        datasource.setPoolProperties(p);
-    }
-
-    protected void transferProperties() {
-        try {
-            BasicDataSourceFactory factory = new BasicDataSourceFactory();
-            Properties p = new Properties();
-
-            for (int i=0; i<this.ALL_PROPERTIES.length; i++) {
-                String name = "get" + Character.toUpperCase(ALL_PROPERTIES[i].charAt(0)) + ALL_PROPERTIES[i].substring(1);
-                String bname = "is" + name.substring(3);
-                Method get = null;
-                try {
-                    get = PoolProperties.class.getMethod(name, new Class[0]);
-                }catch (NoSuchMethodException x) {
-                    try {
-                    get = PoolProperties.class.getMethod(bname, new Class[0]);
-                    }catch (NoSuchMethodException x2) {
-                        System.err.println(x2.getMessage());
-                    }
-                }
-                   if (get!=null) {
-                       Object value = get.invoke(datasource.getPoolProperties(), new Object[0]);
-                       if (value!=null) {
-                           p.setProperty(ALL_PROPERTIES[i], value.toString());
-                       }
-                }
-            }
-            tDatasource = (BasicDataSource)factory.createDataSource(p);
-        }catch (Exception x) {
-            x.printStackTrace();
-        }
-    }
-
-
-    protected void tearDown() throws Exception {
-        datasource = null;
-        tDatasource = null;
-        System.gc();
-    }
-
-    private final static String PROP_DEFAULTAUTOCOMMIT = "defaultAutoCommit";
-    private final static String PROP_DEFAULTREADONLY = "defaultReadOnly";
-    private final static String PROP_DEFAULTTRANSACTIONISOLATION = "defaultTransactionIsolation";
-    private final static String PROP_DEFAULTCATALOG = "defaultCatalog";
-    private final static String PROP_DRIVERCLASSNAME = "driverClassName";
-    private final static String PROP_MAXACTIVE = "maxActive";
-    private final static String PROP_MAXIDLE = "maxIdle";
-    private final static String PROP_MINIDLE = "minIdle";
-    private final static String PROP_INITIALSIZE = "initialSize";
-    private final static String PROP_MAXWAIT = "maxWait";
-    private final static String PROP_TESTONBORROW = "testOnBorrow";
-    private final static String PROP_TESTONRETURN = "testOnReturn";
-    private final static String PROP_TIMEBETWEENEVICTIONRUNSMILLIS = "timeBetweenEvictionRunsMillis";
-    private final static String PROP_NUMTESTSPEREVICTIONRUN = "numTestsPerEvictionRun";
-    private final static String PROP_MINEVICTABLEIDLETIMEMILLIS = "minEvictableIdleTimeMillis";
-    private final static String PROP_TESTWHILEIDLE = "testWhileIdle";
-    private final static String PROP_PASSWORD = "password";
-    private final static String PROP_URL = "url";
-    private final static String PROP_USERNAME = "username";
-    private final static String PROP_VALIDATIONQUERY = "validationQuery";
-    private final static String PROP_ACCESSTOUNDERLYINGCONNECTIONALLOWED = "accessToUnderlyingConnectionAllowed";
-    private final static String PROP_REMOVEABANDONED = "removeAbandoned";
-    private final static String PROP_REMOVEABANDONEDTIMEOUT = "removeAbandonedTimeout";
-    private final static String PROP_LOGABANDONED = "logAbandoned";
-    private final static String PROP_POOLPREPAREDSTATEMENTS = "poolPreparedStatements";
-    private final static String PROP_MAXOPENPREPAREDSTATEMENTS = "maxOpenPreparedStatements";
-    private final static String PROP_CONNECTIONPROPERTIES = "connectionProperties";
-
-    private final static String[] ALL_PROPERTIES = {
-        PROP_DEFAULTAUTOCOMMIT,
-        PROP_DEFAULTREADONLY,
-        PROP_DEFAULTTRANSACTIONISOLATION,
-        PROP_DEFAULTCATALOG,
-        PROP_DRIVERCLASSNAME,
-        PROP_MAXACTIVE,
-        PROP_MAXIDLE,
-        PROP_MINIDLE,
-        PROP_INITIALSIZE,
-        PROP_MAXWAIT,
-        PROP_TESTONBORROW,
-        PROP_TESTONRETURN,
-        PROP_TIMEBETWEENEVICTIONRUNSMILLIS,
-        PROP_NUMTESTSPEREVICTIONRUN,
-        PROP_MINEVICTABLEIDLETIMEMILLIS,
-        PROP_TESTWHILEIDLE,
-        PROP_PASSWORD,
-        PROP_URL,
-        PROP_USERNAME,
-        PROP_VALIDATIONQUERY,
-        PROP_ACCESSTOUNDERLYINGCONNECTIONALLOWED,
-        PROP_REMOVEABANDONED,
-        PROP_REMOVEABANDONEDTIMEOUT,
-        PROP_LOGABANDONED,
-        PROP_CONNECTIONPROPERTIES
-    };
-
-
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomcat.jdbc.test;
+
+import java.lang.reflect.Method;
+import java.util.Properties;
+
+import org.apache.tomcat.dbcp.dbcp.BasicDataSource;
+import org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory;
+
+import junit.framework.TestCase;
+import org.apache.tomcat.jdbc.pool.PoolProperties;
+import org.apache.tomcat.jdbc.pool.DataSourceProxy;
+
+/**
+ * @author Filip Hanik
+ * @version 1.0
+ */
+public class DefaultTestCase extends TestCase {
+    protected DataSourceProxy datasource;
+    protected BasicDataSource tDatasource;
+    protected int threadcount = 10;
+    protected int iterations = 100000;
+    public DefaultTestCase(String name) {
+        super(name);
+    }
+
+    protected void init() throws Exception {
+        PoolProperties p = new DefaultProperties();
+        p.setJmxEnabled(false);
+        p.setTestWhileIdle(false);
+        p.setTestOnBorrow(false);
+        p.setTestOnReturn(false);
+        p.setValidationInterval(30000);
+        p.setTimeBetweenEvictionRunsMillis(30000);
+        p.setMaxActive(threadcount);
+        p.setInitialSize(threadcount);
+        p.setMaxWait(10000);
+        p.setRemoveAbandonedTimeout(10);
+        p.setMinEvictableIdleTimeMillis(10000);
+        p.setMinIdle(threadcount);
+        p.setLogAbandoned(false);
+        p.setRemoveAbandoned(false);
+        datasource = new org.apache.tomcat.jdbc.pool.DataSourceProxy();
+        datasource.setPoolProperties(p);
+    }
+
+    protected void transferProperties() {
+        try {
+            BasicDataSourceFactory factory = new BasicDataSourceFactory();
+            Properties p = new Properties();
+
+            for (int i=0; i<this.ALL_PROPERTIES.length; i++) {
+                String name = "get" + Character.toUpperCase(ALL_PROPERTIES[i].charAt(0)) + ALL_PROPERTIES[i].substring(1);
+                String bname = "is" + name.substring(3);
+                Method get = null;
+                try {
+                    get = PoolProperties.class.getMethod(name, new Class[0]);
+                }catch (NoSuchMethodException x) {
+                    try {
+                    get = PoolProperties.class.getMethod(bname, new Class[0]);
+                    }catch (NoSuchMethodException x2) {
+                        System.err.println(x2.getMessage());
+                    }
+                }
+                   if (get!=null) {
+                       Object value = get.invoke(datasource.getPoolProperties(), new Object[0]);
+                       if (value!=null) {
+                           p.setProperty(ALL_PROPERTIES[i], value.toString());
+                       }
+                }
+            }
+            tDatasource = (BasicDataSource)factory.createDataSource(p);
+        }catch (Exception x) {
+            x.printStackTrace();
+        }
+    }
+
+
+    protected void tearDown() throws Exception {
+        datasource = null;
+        tDatasource = null;
+        System.gc();
+    }
+
+    private final static String PROP_DEFAULTAUTOCOMMIT = "defaultAutoCommit";
+    private final static String PROP_DEFAULTREADONLY = "defaultReadOnly";
+    private final static String PROP_DEFAULTTRANSACTIONISOLATION = "defaultTransactionIsolation";
+    private final static String PROP_DEFAULTCATALOG = "defaultCatalog";
+    private final static String PROP_DRIVERCLASSNAME = "driverClassName";
+    private final static String PROP_MAXACTIVE = "maxActive";
+    private final static String PROP_MAXIDLE = "maxIdle";
+    private final static String PROP_MINIDLE = "minIdle";
+    private final static String PROP_INITIALSIZE = "initialSize";
+    private final static String PROP_MAXWAIT = "maxWait";
+    private final static String PROP_TESTONBORROW = "testOnBorrow";
+    private final static String PROP_TESTONRETURN = "testOnReturn";
+    private final static String PROP_TIMEBETWEENEVICTIONRUNSMILLIS = "timeBetweenEvictionRunsMillis";
+    private final static String PROP_NUMTESTSPEREVICTIONRUN = "numTestsPerEvictionRun";
+    private final static String PROP_MINEVICTABLEIDLETIMEMILLIS = "minEvictableIdleTimeMillis";
+    private final static String PROP_TESTWHILEIDLE = "testWhileIdle";
+    private final static String PROP_PASSWORD = "password";
+    private final static String PROP_URL = "url";
+    private final static String PROP_USERNAME = "username";
+    private final static String PROP_VALIDATIONQUERY = "validationQuery";
+    private final static String PROP_ACCESSTOUNDERLYINGCONNECTIONALLOWED = "accessToUnderlyingConnectionAllowed";
+    private final static String PROP_REMOVEABANDONED = "removeAbandoned";
+    private final static String PROP_REMOVEABANDONEDTIMEOUT = "removeAbandonedTimeout";
+    private final static String PROP_LOGABANDONED = "logAbandoned";
+    private final static String PROP_POOLPREPAREDSTATEMENTS = "poolPreparedStatements";
+    private final static String PROP_MAXOPENPREPAREDSTATEMENTS = "maxOpenPreparedStatements";
+    private final static String PROP_CONNECTIONPROPERTIES = "connectionProperties";
+
+    private final static String[] ALL_PROPERTIES = {
+        PROP_DEFAULTAUTOCOMMIT,
+        PROP_DEFAULTREADONLY,
+        PROP_DEFAULTTRANSACTIONISOLATION,
+        PROP_DEFAULTCATALOG,
+        PROP_DRIVERCLASSNAME,
+        PROP_MAXACTIVE,
+        PROP_MAXIDLE,
+        PROP_MINIDLE,
+        PROP_INITIALSIZE,
+        PROP_MAXWAIT,
+        PROP_TESTONBORROW,
+        PROP_TESTONRETURN,
+        PROP_TIMEBETWEENEVICTIONRUNSMILLIS,
+        PROP_NUMTESTSPEREVICTIONRUN,
+        PROP_MINEVICTABLEIDLETIMEMILLIS,
+        PROP_TESTWHILEIDLE,
+        PROP_PASSWORD,
+        PROP_URL,
+        PROP_USERNAME,
+        PROP_VALIDATIONQUERY,
+        PROP_ACCESSTOUNDERLYINGCONNECTIONALLOWED,
+        PROP_REMOVEABANDONED,
+        PROP_REMOVEABANDONEDTIMEOUT,
+        PROP_LOGABANDONED,
+        PROP_CONNECTIONPROPERTIES
+    };
+
+
+
+}

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/FairnessTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/FairnessTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestGCClose.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestGCClose.java?rev=710199&r1=710198&r2=710199&view=diff
==============================================================================
--- tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestGCClose.java (original)
+++ tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestGCClose.java Mon Nov  3 14:38:55 2008
@@ -1,43 +1,43 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tomcat.jdbc.test;
-
-/**
- * @author Filip Hanik
- * @version 1.0
- */
-public class TestGCClose extends DefaultTestCase {
-    public TestGCClose(String name) {
-        super(name);
-    }
-    
-    public void testGCStop() throws Exception {
-        init();
-        datasource.getConnection();
-        System.out.println("Got a connection, but didn't return it");
-        tearDown();
-        Thread.sleep(20000);
-    }
-    
-    public void testClose() throws Exception {
-        init();
-        datasource.getConnection();
-        System.out.println("Got a connection, but didn't return it");
-        datasource.close(true);
-        Thread.sleep(20000);
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomcat.jdbc.test;
+
+/**
+ * @author Filip Hanik
+ * @version 1.0
+ */
+public class TestGCClose extends DefaultTestCase {
+    public TestGCClose(String name) {
+        super(name);
+    }
+    
+    public void testGCStop() throws Exception {
+        init();
+        datasource.getConnection();
+        System.out.println("Got a connection, but didn't return it");
+        tearDown();
+        Thread.sleep(20000);
+    }
+    
+    public void testClose() throws Exception {
+        init();
+        datasource.getConnection();
+        System.out.println("Got a connection, but didn't return it");
+        datasource.close(true);
+        Thread.sleep(20000);
+    }
+}

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestGCClose.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestGCClose.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestTimeout.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestTimeout.java?rev=710199&r1=710198&r2=710199&view=diff
==============================================================================
--- tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestTimeout.java (original)
+++ tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestTimeout.java Mon Nov  3 14:38:55 2008
@@ -1,154 +1,154 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tomcat.jdbc.test;
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * @author Filip Hanik
- * @version 1.0
- */
-public class TestTimeout extends DefaultTestCase {
-    public TestTimeout(String name) {
-        super(name);
-    }
-
-    AtomicInteger counter = new AtomicInteger(0);
-
-    public void testCheckoutTimeout() throws Exception {
-        try {
-            init();
-            this.datasource.getPoolProperties().setTestWhileIdle(true);
-            this.datasource.getPoolProperties().setTestOnBorrow(false);
-            this.datasource.getPoolProperties().setTestOnReturn(false);
-            this.datasource.getPoolProperties().setValidationInterval(30000);
-            this.datasource.getPoolProperties().setTimeBetweenEvictionRunsMillis(1000);
-            this.datasource.getPoolProperties().setMaxActive(20);
-            this.datasource.getPoolProperties().setMaxWait(3000);
-            this.datasource.getPoolProperties().setRemoveAbandonedTimeout(5);
-            this.datasource.getPoolProperties().setMinEvictableIdleTimeMillis(5000);
-            this.datasource.getPoolProperties().setMinIdle(5);
-            this.datasource.getPoolProperties().setLogAbandoned(true);
-            System.out.println("About to test connection pool:"+datasource);
-            for (int i = 0; i < 21; i++) {
-                long now = System.currentTimeMillis();
-                this.datasource.getConnection();
-                long delta = System.currentTimeMillis()-now;
-                System.out.println("Got connection #"+i+" in "+delta+" ms.");
-            }
-        } catch ( Exception x ) {
-            x.printStackTrace();
-        }finally {
-            Thread.sleep(20000);
-            tearDown();
-        }
-    }
-
-    public void testCheckoutTimeoutFair() throws Exception {
-        try {
-            init();
-            this.datasource.getPoolProperties().setFairQueue(true);
-            this.datasource.getPoolProperties().setTestWhileIdle(true);
-            this.datasource.getPoolProperties().setTestOnBorrow(false);
-            this.datasource.getPoolProperties().setTestOnReturn(false);
-            this.datasource.getPoolProperties().setValidationInterval(30000);
-            this.datasource.getPoolProperties().setTimeBetweenEvictionRunsMillis(1000);
-            this.datasource.getPoolProperties().setMaxActive(20);
-            this.datasource.getPoolProperties().setMaxWait(3000);
-            this.datasource.getPoolProperties().setRemoveAbandonedTimeout(5);
-            this.datasource.getPoolProperties().setMinEvictableIdleTimeMillis(5000);
-            this.datasource.getPoolProperties().setMinIdle(5);
-            this.datasource.getPoolProperties().setLogAbandoned(true);
-            System.out.println("About to test connection pool:"+datasource);
-            for (int i = 0; i < 21; i++) {
-                long now = System.currentTimeMillis();
-                this.datasource.getConnection();
-                long delta = System.currentTimeMillis()-now;
-                System.out.println("Got connection #"+i+" in "+delta+" ms.");
-            }
-        } catch ( Exception x ) {
-            x.printStackTrace();
-        }finally {
-            Thread.sleep(20000);
-            tearDown();
-        }
-    }
-    
-
-    public void testRemoveAbandoned() throws Exception {
-        try {
-            init();
-            this.datasource.getPoolProperties().setTestWhileIdle(true);
-            this.datasource.getPoolProperties().setTestOnBorrow(false);
-            this.datasource.getPoolProperties().setTestOnReturn(false);
-            this.datasource.getPoolProperties().setValidationInterval(30000);
-            this.datasource.getPoolProperties().setTimeBetweenEvictionRunsMillis(1000);
-            this.datasource.getPoolProperties().setMaxActive(20);
-            this.datasource.getPoolProperties().setMaxWait(3000);
-            this.datasource.getPoolProperties().setRemoveAbandonedTimeout(5);
-            this.datasource.getPoolProperties().setMinEvictableIdleTimeMillis(5000);
-            this.datasource.getPoolProperties().setMinIdle(5);
-            this.datasource.getPoolProperties().setRemoveAbandoned(true);
-            this.datasource.getPoolProperties().setLogAbandoned(true);
-            System.out.println("About to test connection pool:"+datasource);
-            for (int i = 0; i < threadcount; i++) {
-                long now = System.currentTimeMillis();
-                this.datasource.getConnection();
-                long delta = System.currentTimeMillis()-now;
-                System.out.println("Got connection #"+i+" in "+delta+" ms.");
-            }
-        } catch ( Exception x ) {
-            x.printStackTrace();
-        }finally {
-            Thread.sleep(20000);
-            tearDown();
-        }
-    }
-    
-    public void testRemoveAbandonedFair() throws Exception {
-        try {
-            init();
-            this.datasource.getPoolProperties().setFairQueue(true);
-            this.datasource.getPoolProperties().setTestWhileIdle(true);
-            this.datasource.getPoolProperties().setTestOnBorrow(false);
-            this.datasource.getPoolProperties().setTestOnReturn(false);
-            this.datasource.getPoolProperties().setValidationInterval(30000);
-            this.datasource.getPoolProperties().setTimeBetweenEvictionRunsMillis(1000);
-            this.datasource.getPoolProperties().setMaxActive(20);
-            this.datasource.getPoolProperties().setMaxWait(3000);
-            this.datasource.getPoolProperties().setRemoveAbandonedTimeout(5);
-            this.datasource.getPoolProperties().setMinEvictableIdleTimeMillis(5000);
-            this.datasource.getPoolProperties().setMinIdle(5);
-            this.datasource.getPoolProperties().setRemoveAbandoned(true);
-            this.datasource.getPoolProperties().setLogAbandoned(true);
-            System.out.println("About to test connection pool:"+datasource);
-            for (int i = 0; i < threadcount; i++) {
-                long now = System.currentTimeMillis();
-                this.datasource.getConnection();
-                long delta = System.currentTimeMillis()-now;
-                System.out.println("Got connection #"+i+" in "+delta+" ms.");
-            }
-        } catch ( Exception x ) {
-            x.printStackTrace();
-        }finally {
-            Thread.sleep(20000);
-            tearDown();
-        }
-    }
-
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomcat.jdbc.test;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * @author Filip Hanik
+ * @version 1.0
+ */
+public class TestTimeout extends DefaultTestCase {
+    public TestTimeout(String name) {
+        super(name);
+    }
+
+    AtomicInteger counter = new AtomicInteger(0);
+
+    public void testCheckoutTimeout() throws Exception {
+        try {
+            init();
+            this.datasource.getPoolProperties().setTestWhileIdle(true);
+            this.datasource.getPoolProperties().setTestOnBorrow(false);
+            this.datasource.getPoolProperties().setTestOnReturn(false);
+            this.datasource.getPoolProperties().setValidationInterval(30000);
+            this.datasource.getPoolProperties().setTimeBetweenEvictionRunsMillis(1000);
+            this.datasource.getPoolProperties().setMaxActive(20);
+            this.datasource.getPoolProperties().setMaxWait(3000);
+            this.datasource.getPoolProperties().setRemoveAbandonedTimeout(5);
+            this.datasource.getPoolProperties().setMinEvictableIdleTimeMillis(5000);
+            this.datasource.getPoolProperties().setMinIdle(5);
+            this.datasource.getPoolProperties().setLogAbandoned(true);
+            System.out.println("About to test connection pool:"+datasource);
+            for (int i = 0; i < 21; i++) {
+                long now = System.currentTimeMillis();
+                this.datasource.getConnection();
+                long delta = System.currentTimeMillis()-now;
+                System.out.println("Got connection #"+i+" in "+delta+" ms.");
+            }
+        } catch ( Exception x ) {
+            x.printStackTrace();
+        }finally {
+            Thread.sleep(20000);
+            tearDown();
+        }
+    }
+
+    public void testCheckoutTimeoutFair() throws Exception {
+        try {
+            init();
+            this.datasource.getPoolProperties().setFairQueue(true);
+            this.datasource.getPoolProperties().setTestWhileIdle(true);
+            this.datasource.getPoolProperties().setTestOnBorrow(false);
+            this.datasource.getPoolProperties().setTestOnReturn(false);
+            this.datasource.getPoolProperties().setValidationInterval(30000);
+            this.datasource.getPoolProperties().setTimeBetweenEvictionRunsMillis(1000);
+            this.datasource.getPoolProperties().setMaxActive(20);
+            this.datasource.getPoolProperties().setMaxWait(3000);
+            this.datasource.getPoolProperties().setRemoveAbandonedTimeout(5);
+            this.datasource.getPoolProperties().setMinEvictableIdleTimeMillis(5000);
+            this.datasource.getPoolProperties().setMinIdle(5);
+            this.datasource.getPoolProperties().setLogAbandoned(true);
+            System.out.println("About to test connection pool:"+datasource);
+            for (int i = 0; i < 21; i++) {
+                long now = System.currentTimeMillis();
+                this.datasource.getConnection();
+                long delta = System.currentTimeMillis()-now;
+                System.out.println("Got connection #"+i+" in "+delta+" ms.");
+            }
+        } catch ( Exception x ) {
+            x.printStackTrace();
+        }finally {
+            Thread.sleep(20000);
+            tearDown();
+        }
+    }
+    
+
+    public void testRemoveAbandoned() throws Exception {
+        try {
+            init();
+            this.datasource.getPoolProperties().setTestWhileIdle(true);
+            this.datasource.getPoolProperties().setTestOnBorrow(false);
+            this.datasource.getPoolProperties().setTestOnReturn(false);
+            this.datasource.getPoolProperties().setValidationInterval(30000);
+            this.datasource.getPoolProperties().setTimeBetweenEvictionRunsMillis(1000);
+            this.datasource.getPoolProperties().setMaxActive(20);
+            this.datasource.getPoolProperties().setMaxWait(3000);
+            this.datasource.getPoolProperties().setRemoveAbandonedTimeout(5);
+            this.datasource.getPoolProperties().setMinEvictableIdleTimeMillis(5000);
+            this.datasource.getPoolProperties().setMinIdle(5);
+            this.datasource.getPoolProperties().setRemoveAbandoned(true);
+            this.datasource.getPoolProperties().setLogAbandoned(true);
+            System.out.println("About to test connection pool:"+datasource);
+            for (int i = 0; i < threadcount; i++) {
+                long now = System.currentTimeMillis();
+                this.datasource.getConnection();
+                long delta = System.currentTimeMillis()-now;
+                System.out.println("Got connection #"+i+" in "+delta+" ms.");
+            }
+        } catch ( Exception x ) {
+            x.printStackTrace();
+        }finally {
+            Thread.sleep(20000);
+            tearDown();
+        }
+    }
+    
+    public void testRemoveAbandonedFair() throws Exception {
+        try {
+            init();
+            this.datasource.getPoolProperties().setFairQueue(true);
+            this.datasource.getPoolProperties().setTestWhileIdle(true);
+            this.datasource.getPoolProperties().setTestOnBorrow(false);
+            this.datasource.getPoolProperties().setTestOnReturn(false);
+            this.datasource.getPoolProperties().setValidationInterval(30000);
+            this.datasource.getPoolProperties().setTimeBetweenEvictionRunsMillis(1000);
+            this.datasource.getPoolProperties().setMaxActive(20);
+            this.datasource.getPoolProperties().setMaxWait(3000);
+            this.datasource.getPoolProperties().setRemoveAbandonedTimeout(5);
+            this.datasource.getPoolProperties().setMinEvictableIdleTimeMillis(5000);
+            this.datasource.getPoolProperties().setMinIdle(5);
+            this.datasource.getPoolProperties().setRemoveAbandoned(true);
+            this.datasource.getPoolProperties().setLogAbandoned(true);
+            System.out.println("About to test connection pool:"+datasource);
+            for (int i = 0; i < threadcount; i++) {
+                long now = System.currentTimeMillis();
+                this.datasource.getConnection();
+                long delta = System.currentTimeMillis()-now;
+                System.out.println("Got connection #"+i+" in "+delta+" ms.");
+            }
+        } catch ( Exception x ) {
+            x.printStackTrace();
+        }finally {
+            Thread.sleep(20000);
+            tearDown();
+        }
+    }
+
+
+}

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestTimeout.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestTimeout.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org