db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d..@apache.org
Subject svn commit: r382565 - /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/memory/ConnectionHandling.java
Date Thu, 02 Mar 2006 23:39:41 GMT
Author: djd
Date: Thu Mar  2 15:39:41 2006
New Revision: 382565

URL: http://svn.apache.org/viewcvs?rev=382565&view=rev
Log:
DERBY-444 Add a class in the test area memory/ConnectionHandling.java that pushes the
limit on obtaining connections once an out of memory siutation is hit.
Not added as a real test yet, just code that could form the basis of a test.

Added:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/memory/ConnectionHandling.java
  (with props)

Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/memory/ConnectionHandling.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/memory/ConnectionHandling.java?rev=382565&view=auto
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/memory/ConnectionHandling.java
(added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/memory/ConnectionHandling.java
Thu Mar  2 15:39:41 2006
@@ -0,0 +1,112 @@
+/*
+
+Derby - Class org.apache.derbyTesting.functionTests.tests.memory.ConnectionHandling
+
+Copyright 2006 The Apache Software Foundation or its licensors, as applicable.
+
+Licensed 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.derbyTesting.functionTests.tests.memory;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.ArrayList;
+
+/**
+ * Test opening connections until a failure due to out of memory
+ * and then continue with 500 connection requests to see if the
+ * system reacts well of falls over.
+ *
+ */
+public class ConnectionHandling {
+
+ public static void main(String[] args) throws Exception {
+
+        System.out.println("Test ConnectionHandling starting");
+
+
+        new org.apache.derby.jdbc.EmbeddedDriver();
+        
+        Connection conn = DriverManager.getConnection("jdbc:derby:wombat;create=true");
+        
+        ArrayList list = new ArrayList();
+        
+        try {
+            while (true)
+            {
+                Connection c = DriverManager.getConnection("jdbc:derby:wombat");
+                list.add(c);
+                if ((list.size() % 1000) == 0) {
+                    System.out.println(list.size() + " connections ...");
+                    System.out.println("FREE " + Runtime.getRuntime().freeMemory());
+                }
+            }
+        } catch (SQLException e) {
+            if ("08004".equals(e.getSQLState()))
+                System.out.println("FIRST OOME: " + e.getSQLState() + " " + e.getMessage());
+            else {
+                System.out.println("UNKNOWN ERROR " + e.getSQLState() + " " + e.getMessage());
+                e.printStackTrace(System.out);
+            }
+        } catch (Throwable t) {
+            System.out.println("UNKNOWN ERROR " + t);
+            t.printStackTrace(System.out);
+        }
+        
+        System.out.println(list.size() + " successful connections");
+        
+        // try to make 500 more connection requests.
+        int fail_sqloome = 0;
+        int fail_sql = 0;
+        int fail_bad = 0;
+        int ok = 0;
+        for (int i = 0; i < 500; i++)
+        {
+            try {
+                while (true)
+                {
+                    Connection c = DriverManager.getConnection("jdbc:derby:wombat");
+                    list.add(c);
+                    ok++;
+                }
+            } catch (SQLException e) {
+                if ("08004".equals(e.getSQLState()))
+                    fail_sqloome++;
+                else {
+                    fail_sql++;
+                    System.out.println("UNKNOWN ERROR " + e.getSQLState() + " " + e.getMessage());
+                    e.printStackTrace(System.out);
+                }
+            } catch (Throwable t) {
+                fail_bad++;
+                System.out.println("UNKNOWN ERROR " + t);
+                t.printStackTrace(System.out);
+            }
+        }
+        
+        System.out.println("OK                  : " + ok);
+        System.out.println("Failed 08004        : " + fail_sqloome);
+        System.out.println("Failed SQLException : " + fail_sql);
+        System.out.println("Failed Throwable    : " + fail_bad);
+        
+        System.out.println("closing connections : " + list.size());
+        for (int i = 0; i < list.size(); i++)
+        {
+            ((Connection) list.get(i)).close();
+        }
+        
+        conn.close();
+ }
+}
\ No newline at end of file

Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/memory/ConnectionHandling.java
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message