diff --git a/org.compiere.db.oracle.provider/src/org/compiere/dbPort/JdbcTest.java b/org.compiere.db.oracle.provider/src/org/compiere/dbPort/JdbcTest.java deleted file mode 100644 index 93a736edac..0000000000 --- a/org.compiere.db.oracle.provider/src/org/compiere/dbPort/JdbcTest.java +++ /dev/null @@ -1,472 +0,0 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * - * This program is free software; you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program; if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - * For the text or an alternative of this public license, you may reach us * - * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * - * or via info@compiere.org or http://www.compiere.org/license.html * - *****************************************************************************/ -package org.compiere.dbPort; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -import oracle.jdbc.pool.OracleDataSource; - -//import oracle.jdbc.rowset.*; - -/** - * JDBC Performance Test - Oracle - * - * @author Jorg Janke - * @version $Id: JdbcTest.java,v 1.2 2006/07/30 00:55:04 jjanke Exp $ - */ -public class JdbcTest extends Thread -{ -/***************************************************************************** - -Multiple Connections Fetch=10 Conn=2032 Stmt=0 Query=47 Retrieve=2109 ClRs=0 ClStmt=0 ClConn=0 - Total=4188 Stmt=2156 Query=2156 -Multiple Connections Fetch=10 Conn=141 Stmt=0 Query=31 Retrieve=1875 ClRs=0 ClStmt=0 ClConn=0 - Total=2047 Stmt=1906 Query=1906 -Multiple Connections Fetch=10 Conn=141 Stmt=0 Query=31 Retrieve=1844 ClRs=0 ClStmt=0 ClConn=0 - Total=2016 Stmt=1875 Query=1875 -Data Source Fetch=10 Conn=172 Stmt=0 Query=16 Retrieve=1875 ClRs=0 ClStmt=0 ClConn=0 - Total=2063 Stmt=1891 Query=1891 -Data Source Fetch=10 Conn=672 Stmt=15 Query=16 Retrieve=1797 ClRs=0 ClStmt=0 ClConn=0 - Total=2500 Stmt=1828 Query=1813 -Data Source Fetch=10 Conn=156 Stmt=0 Query=16 Retrieve=1766 ClRs=0 ClStmt=0 ClConn=15 - Total=1953 Stmt=1782 Query=1782 -Connection Cache Fetch=10 Conn=141 Stmt=0 Query=125 Retrieve=1766 ClRs=0 ClStmt=0 ClConn=0 - Total=2032 Stmt=1891 Query=1891 -Connection Cache Fetch=10 Conn=0 Stmt=0 Query=15 Retrieve=1766 ClRs=0 ClStmt=0 ClConn=0 - Total=1781 Stmt=1781 Query=1781 -Connection Cache Fetch=10 Conn=0 Stmt=0 Query=16 Retrieve=1765 ClRs=0 ClStmt=0 ClConn=0 - Total=1781 Stmt=1781 Query=1781 -Multiple Connections Fetch=20 Conn=4501 Stmt=0 Query=15 Retrieve=1313 ClRs=0 ClStmt=0 ClConn=0 - Total=5829 Stmt=1328 Query=1328 -Multiple Connections Fetch=20 Conn=125 Stmt=0 Query=16 Retrieve=1312 ClRs=0 ClStmt=0 ClConn=0 - Total=1453 Stmt=1328 Query=1328 -Multiple Connections Fetch=20 Conn=141 Stmt=0 Query=31 Retrieve=1406 ClRs=0 ClStmt=0 ClConn=0 - Total=1578 Stmt=1437 Query=1437 -Data Source Fetch=20 Conn=126 Stmt=0 Query=31 Retrieve=1297 ClRs=0 ClStmt=0 ClConn=0 - Total=1454 Stmt=1328 Query=1328 -Data Source Fetch=20 Conn=125 Stmt=0 Query=16 Retrieve=1328 ClRs=0 ClStmt=0 ClConn=0 - Total=1469 Stmt=1344 Query=1344 -Data Source Fetch=20 Conn=140 Stmt=0 Query=16 Retrieve=1469 ClRs=0 ClStmt=0 ClConn=0 - Total=1625 Stmt=1485 Query=1485 -Connection Cache Fetch=20 Conn=0 Stmt=0 Query=31 Retrieve=1344 ClRs=0 ClStmt=0 ClConn=0 - Total=1375 Stmt=1375 Query=1375 -Connection Cache Fetch=20 Conn=0 Stmt=0 Query=16 Retrieve=1375 ClRs=0 ClStmt=0 ClConn=0 - Total=1391 Stmt=1391 Query=1391 -Connection Cache Fetch=20 Conn=0 Stmt=0 Query=15 Retrieve=1375 ClRs=0 ClStmt=0 ClConn=0 - Total=1390 Stmt=1390 Query=1390 -JDBC RowSet Fetch=10 Conn=16 Stmt=0 Query=3969 Retrieve=3047 ClRs=0 ClStmt=0 ClConn=0 - Total=7032 Stmt=7016 Query=7016 -JDBC RowSet Fetch=10 Conn=0 Stmt=0 Query=172 Retrieve=2781 ClRs=0 ClStmt=0 ClConn=0 - Total=2953 Stmt=2953 Query=2953 -JDBC RowSet Fetch=10 Conn=0 Stmt=0 Query=313 Retrieve=2609 ClRs=0 ClStmt=0 ClConn=0 - Total=2922 Stmt=2922 Query=2922 -Cached RowSet Fetch=10 Conn=63 Stmt=0 Query=5406 Retrieve=16 ClRs=0 ClStmt=0 ClConn=0 - Total=5485 Stmt=5422 Query=5422 -Cached RowSet Fetch=10 Conn=0 Stmt=0 Query=3907 Retrieve=0 ClRs=0 ClStmt=0 ClConn=0 - Total=3907 Stmt=3907 Query=3907 -Cached RowSet Fetch=10 Conn=0 Stmt=0 Query=3890 Retrieve=0 ClRs=0 ClStmt=0 ClConn=0 - Total=3890 Stmt=3890 Query=3890 -Shared Connection Threads=10 Yield=false ms= 18267 each= 1826 -Shared Connection Threads=10 Yield=false ms= 18220 each= 1822 -Shared Connection Threads=10 Yield=true ms= 18329 each= 1832 -Shared Connection Threads=10 Yield=true ms= 18314 each= 1831 -Multiple Connections Threads=10 Yield=false ms= 14610 each= 1461 -Multiple Connections Threads=10 Yield=false ms= 14360 each= 1436 -Multiple Connections Threads=10 Yield=true ms= 13986 each= 1398 -Multiple Connections Threads=10 Yield=true ms= 14017 each= 1401 -Multiple PreCreated Threads=10 Yield=false ms= 5376 each= 537 -Multiple PreCreated Threads=10 Yield=false ms= 1828 each= 182 -Multiple PreCreated Threads=10 Yield=true ms= 12017 each= 1201 -Multiple PreCreated Threads=10 Yield=true ms= 12032 each= 1203 -Data Source Threads=10 Yield=false ms= 13391 each= 1339 -Data Source Threads=10 Yield=false ms= 13532 each= 1353 -Data Source Threads=10 Yield=true ms= 13923 each= 1392 -Data Source Threads=10 Yield=true ms= 13829 each= 1382 -Connection Cache Threads=10 Yield=false ms= 12907 each= 1290 CacheSize=2, Active=0 -Connection Cache Threads=10 Yield=false ms= 12907 each= 1290 CacheSize=2, Active=0 -Connection Cache Threads=10 Yield=true ms= 12813 each= 1281 CacheSize=2, Active=0 -Connection Cache Threads=10 Yield=true ms= 12813 each= 1281 CacheSize=2, Active=0 - -******************************************************************************/ - - // Default no of threads to 10 - private static final int NUM_OF_THREADS = 10; - - private static final String DRIVER = - // "oci8"; - "thin"; - - private static final String CONNECTION = - // "jdbc:oracle:oci8:@"; - // "jdbc:oracle:oci8:@dev1"; - "jdbc:oracle:thin:@//dev:1521/dev1"; - - - private static final String UID = "adempiere"; - private static final String PWD = "adempiere"; - private static final String STATEMENT = "SELECT * FROM AD_Column"; - private static final boolean WITH_OUTPUT = false; - - private static boolean s_do_yield = true; - - private static Connection s_sconn = null; - private static Connection[] s_conn = null; - private static OracleDataSource s_ds = null; -// private static OracleConnectionCacheImpl s_cc = null; - - private static int s_fetchSize = 10; - - // Connection - private static int s_cType = 0; - private static final String[] C_INFO = { - "Shared Connection ", - "Multiple Connections ", - "Multiple PreCreated ", - "Data Source ", - "Connection Cache "}; - private static final int C_SHARED = 0; - private static final int C_MULTIPLE = 1; - private static final int C_PRECREATED = 2; - private static final int C_DATASOURCE = 3; - private static final int C_CACHE = 4; - - // Data - //private static int s_rType = 0; - /*private static final String[] R_INFO = { - "ResultSet ", - "Cached RowSet ", - "JDBC RowSet "};*/ - - //private static final int R_CACHED_ROWSET = 1; - //private static final int R_JDBC_ROWSET = 2; - - - - /** - * Main Test Start - * @param args - */ - public static void main (String args []) - { - try - { - /* Load the JDBC driver */ - DriverManager.registerDriver(new oracle.jdbc.OracleDriver()); - - s_ds = new OracleDataSource(); - s_ds.setDriverType(DRIVER); - s_ds.setServerName("dev"); - s_ds.setNetworkProtocol("tcp"); - s_ds.setDatabaseName("dev1"); - s_ds.setPortNumber(1521); - s_ds.setUser("adempiere"); - s_ds.setPassword("adempiere"); - /* - s_cc = new OracleConnectionCacheImpl(); - s_cc.setDriverType(DRIVER); - s_cc.setServerName("dev"); - s_cc.setNetworkProtocol("tcp"); - s_cc.setDatabaseName("dev1"); - s_cc.setPortNumber(1521); - s_cc.setUser("adempiere"); - s_cc.setPassword("adempiere"); - s_cc.setMaxLimit(NUM_OF_THREADS/4); - s_cc.setCacheScheme(OracleConnectionCacheImpl.FIXED_WAIT_SCHEME); - // s_cc.setCacheScheme(OracleConnectionCacheImpl.DYNAMIC_SCHEME); - */ - - s_fetchSize = 10; - s_cType = C_MULTIPLE; - statementTiming(); - statementTiming(); - statementTiming(); - s_cType = C_DATASOURCE; - statementTiming(); - statementTiming(); - statementTiming(); - s_cType = C_CACHE; - statementTiming(); - statementTiming(); - statementTiming(); - s_fetchSize = 20; - s_cType = C_MULTIPLE; - statementTiming(); - statementTiming(); - statementTiming(); - s_cType = C_DATASOURCE; - statementTiming(); - statementTiming(); - statementTiming(); - s_cType = C_CACHE; - statementTiming(); - statementTiming(); - statementTiming(); - // - s_fetchSize = 10; // standard value -/** - s_rType = R_JDBC_ROWSET; - rowSetTiming(); - rowSetTiming(); - rowSetTiming(); - s_rType = R_CACHED_ROWSET; - rowSetTiming(); - rowSetTiming(); - rowSetTiming(); -**/ - // - s_cType = C_SHARED; - s_do_yield = false; - runTest(); - runTest(); - s_do_yield = true; - runTest(); - runTest(); - // - s_cType = C_MULTIPLE; - s_do_yield = false; - runTest(); - runTest(); - s_do_yield = true; - runTest(); - runTest(); - // - s_cType = C_PRECREATED; - s_do_yield = false; - runTest(); - runTest(); - s_do_yield = true; - runTest(); - runTest(); - // - s_cType = C_DATASOURCE; - s_do_yield = false; - runTest(); - runTest(); - s_do_yield = true; - runTest(); - runTest(); - // - s_cType = C_CACHE; - s_do_yield = false; - runTest(); - runTest(); - s_do_yield = true; - runTest(); - runTest(); - // - - } - catch (Exception e) - { - e.printStackTrace(); - } - } // main - - /*************************************************************************/ - - /** - * Run the test - * @throws Exception - */ - static void runTest() throws Exception - { - // Create the threads - Thread[] threadList = new Thread[NUM_OF_THREADS]; - s_conn = new Connection[NUM_OF_THREADS]; - - if (s_cType == C_SHARED) - s_sconn = DriverManager.getConnection (CONNECTION, UID, PWD); - // - // spawn threads - for (int i = 0; i < NUM_OF_THREADS; i++) - { - if (s_cType == C_PRECREATED) - s_conn[i] = DriverManager.getConnection (CONNECTION, UID, PWD); - // - threadList[i] = new JdbcTest(i); - threadList[i].start(); - } - // Start everyone at the same time - long start = System.currentTimeMillis(); - setGreenLight (); - // wait for all threads to end - for (int i = 0; i < NUM_OF_THREADS; i++) - threadList[i].join(); - // - if (s_sconn != null) - s_sconn.close(); - s_sconn = null; - for (int i = 0; i < NUM_OF_THREADS; i++) - { - if (s_conn[i] != null) - s_conn[i].close(); - s_conn[i] = null; - } - long result = System.currentTimeMillis() - start; - System.out.print (C_INFO[s_cType] - + "Threads=" + NUM_OF_THREADS - + " \tYield=" + s_do_yield - + " \tms= " + result - + " \teach= " + (result/NUM_OF_THREADS)); - // if (s_cType == C_CACHE) - // System.out.print (" \tCacheSize=" + s_cc.getCacheSize() + ", Active=" + s_cc.getActiveSize()); - System.out.println(); - } // runTest - - - /** - * Statement Timing - */ - private static void statementTiming() - { - try - { - long startConnection = System.currentTimeMillis(); - Connection conn = null; - if (s_cType == C_MULTIPLE) - conn = DriverManager.getConnection (CONNECTION, UID, PWD); - if (s_cType == C_DATASOURCE) - conn = s_ds.getConnection(); - // if (s_cType == C_CACHE) - // conn = s_cc.getConnection(); - - long startStatement = System.currentTimeMillis(); - Statement stmt = conn.createStatement (); - stmt.setFetchSize(s_fetchSize); - - long startQuery = System.currentTimeMillis(); - ResultSet rs = stmt.executeQuery (STATEMENT); - - //int i = 0; - long startRetrieve = System.currentTimeMillis(); - while (rs.next()) - { - rs.getString(1); - //i++; - } - long endRetrieve = System.currentTimeMillis(); - // System.out.println(i); - - rs.close(); - rs = null; - long endQuery = System.currentTimeMillis(); - - stmt.close(); - stmt = null; - long endStatement = System.currentTimeMillis(); - - conn.close(); - conn = null; - long endConnection = System.currentTimeMillis(); - - // - System.out.println(C_INFO[s_cType] - + "Fetch=" + s_fetchSize - + " \tConn=" + (startStatement - startConnection) - + " \tStmt=" + (startQuery - startStatement) - + " \tQuery=" + (startRetrieve - startQuery) - + " \tRetrieve=" + (endRetrieve - startRetrieve) - + " \tClRs=" + (endQuery - endRetrieve) - + " \tClStmt=" + (endStatement - endQuery) - + " \tClConn=" + (endConnection - endStatement) - + " \t- Total=" + (endConnection - startConnection) - + " \tStmt=" + (endStatement - startStatement) - + " \tQuery=" + (endQuery - startQuery)); - } - catch (SQLException e) - { - e.printStackTrace(); - } - } // statementTiming - - /*************************************************************************/ - - /** - * JDBC Test - * @param id Thread ID - */ - public JdbcTest(int id) - { - super(); - m_myId = id; - } // JdbcTest - - private int m_myId = 0; - - /** - * Async Worker - */ - public void run() - { - ResultSet rs = null; - Statement stmt = null; - - try - { - while (!getGreenLight()) - yield(); - if (WITH_OUTPUT) - System.out.println("Thread " + m_myId + " started"); - - // Get the connection & statement - if (s_cType == C_SHARED) - stmt = s_sconn.createStatement (); - else if (s_cType == C_MULTIPLE) - { - s_conn[m_myId] = DriverManager.getConnection (CONNECTION, UID, PWD); - stmt = s_conn[m_myId].createStatement (); - } - else if (s_cType == C_PRECREATED) - { - stmt = s_conn[m_myId].createStatement (); - } - else if (s_cType == C_DATASOURCE) - { - s_conn[m_myId] = s_ds.getConnection(); - stmt = s_conn[m_myId].createStatement (); - } - // else if (s_cType == C_CACHE) - // { - // s_conn[m_myId] = s_cc.getConnection(); - // stmt = s_conn[m_myId].createStatement (); - // } - stmt.setFetchSize(s_fetchSize); - - // Execute the Query - rs = stmt.executeQuery (STATEMENT); - - // Loop through the results - while (rs.next()) - { - if (s_do_yield) - yield(); // Yield To other threads - } - - // Close all the resources - rs.close(); - rs = null; - - // Close the statement - stmt.close(); - stmt = null; - - // Close the local connection - if (s_cType == C_SHARED || s_cType == C_PRECREATED) - ; - else - { - s_conn[m_myId].close(); - s_conn[m_myId] = null; - } - } - catch (Exception e) - { - System.out.println("Thread " + m_myId + " got Exception: " + e); - e.printStackTrace(); - return; - } - if (WITH_OUTPUT) - System.out.println("Thread " + m_myId + " finished"); - } - - /*************************************************************************/ - - static boolean greenLight = false; - static synchronized void setGreenLight () { greenLight = true; } - synchronized boolean getGreenLight () { return greenLight; } - -} // JdbcTest diff --git a/org.compiere.db.postgresql.provider/src/org/compiere/dbPort/JdbcTestPG.java b/org.compiere.db.postgresql.provider/src/org/compiere/dbPort/JdbcTestPG.java deleted file mode 100755 index baabd549e0..0000000000 --- a/org.compiere.db.postgresql.provider/src/org/compiere/dbPort/JdbcTestPG.java +++ /dev/null @@ -1,350 +0,0 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution - * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. - * This program is free software; you can redistribute it and/or modify it - * under the terms version 2 of the GNU General Public License as published - * by the Free Software Foundation. This program is distributed in the hope - * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * See the GNU General Public License for more details. - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - * You may reach us at: ComPiere, Inc. - http://www.compiere.org/license.html - * 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA or info@compiere.org - *****************************************************************************/ -package org.compiere.dbPort; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -/** - * JDBC Performance Test. - * - * @author Jorg Janke - * @version $Id: JdbcTestPG.java,v 1.4 2005/03/11 20:29:03 jjanke Exp $ - */ -public class JdbcTestPG extends Thread -{ -/***************************************************************************** - -Multiple Connections Fetch=10 Conn=407 Stmt=15 Query=1516 Retrieve=203 ClRs=0 ClStmt=0 ClConn=0 - Total=2141 Stmt=1734 Query=1719 -Multiple Connections Fetch=10 Conn=47 Stmt=0 Query=1234 Retrieve=31 ClRs=0 ClStmt=0 ClConn=0 - Total=1312 Stmt=1265 Query=1265 -Multiple Connections Fetch=10 Conn=31 Stmt=0 Query=1266 Retrieve=15 ClRs=0 ClStmt=0 ClConn=0 - Total=1312 Stmt=1281 Query=1281 -Shared Connection Threads=10 Yield=false ms= 13047 each= 1304 -Shared Connection Threads=10 Yield=false ms= 12891 each= 1289 -Shared Connection Threads=10 Yield=true ms= 13422 each= 1342 -Shared Connection Threads=10 Yield=true ms= 12969 each= 1296 -Multiple Connections Threads=10 Yield=false ms= 13046 each= 1304 -Multiple Connections Threads=10 Yield=false ms= 12891 each= 1289 -Multiple Connections Threads=10 Yield=true ms= 13062 each= 1306 -Multiple Connections Threads=10 Yield=true ms= 13062 each= 1306 -Multiple PreCreated Threads=10 Yield=false ms= 9968 each= 996 -Multiple PreCreated Threads=10 Yield=false ms= 10250 each= 1025 -Multiple PreCreated Threads=10 Yield=true ms= 10109 each= 1010 -Multiple PreCreated Threads=10 Yield=true ms= 9906 each= 990 - -******************************************************************************/ - - // Default no of threads to 10 - private static final int NUM_OF_THREADS = 10; - - private static final String CONNECTION = - "jdbc:postgresql://linux:5432/compiere"; - - private static final String UID = "compiere"; - private static final String PWD = "compiere"; - private static final String STATEMENT = "SELECT * FROM AD_Column"; - private static final boolean WITH_OUTPUT = false; - - private static boolean s_do_yield = true; - - private static Connection s_sconn = null; - private static Connection[] s_conn = null; - - private static int s_fetchSize = 10; - - // Connection - private static int s_cType = 0; - private static final String[] C_INFO = { - "Shared Connection ", - "Multiple Connections ", - "Multiple PreCreated ", - // "Data Source ", - // "Connection Cache " - }; - private static final int C_SHARED = 0; - private static final int C_MULTIPLE = 1; - private static final int C_PRECREATED = 2; -// private static final int C_DATASOURCE = 3; -// private static final int C_CACHE = 4; - - // Data - /*private static final String[] R_INFO = { - "ResultSet ", -// "Cached RowSet ", -// "JDBC RowSet " - };*/ -// private static final int R_CACHED_ROWSET = 1; -// private static final int R_JDBC_ROWSET = 2; - - - /** - * Main Test - * @param args - */ - public static void main (String args []) - { - try - { - /* Load the JDBC driver */ - DriverManager.registerDriver(new org.postgresql.Driver()); - - s_cType = C_MULTIPLE; - statementTiming(); - statementTiming(); - statementTiming(); - // - s_fetchSize = 10; // standard value - - // - s_cType = C_SHARED; - s_do_yield = false; - runTest(); - runTest(); - s_do_yield = true; - runTest(); - runTest(); - // - s_cType = C_MULTIPLE; - s_do_yield = false; - runTest(); - runTest(); - s_do_yield = true; - runTest(); - runTest(); - // - s_cType = C_PRECREATED; - s_do_yield = false; - runTest(); - runTest(); - s_do_yield = true; - runTest(); - runTest(); - // - - } - catch (Exception e) - { - e.printStackTrace(); - } - } // main - - /*************************************************************************/ - - /** - * Run the test - * @throws Exception - */ - static void runTest() throws Exception - { - // Create the threads - Thread[] threadList = new Thread[NUM_OF_THREADS]; - s_conn = new Connection[NUM_OF_THREADS]; - - if (s_cType == C_SHARED) - s_sconn = DriverManager.getConnection (CONNECTION, UID, PWD); - // - // spawn threads - for (int i = 0; i < NUM_OF_THREADS; i++) - { - if (WITH_OUTPUT) - System.out.println("Starting #" + i); - if (s_cType == C_PRECREATED) - s_conn[i] = DriverManager.getConnection (CONNECTION, UID, PWD); - // - threadList[i] = new JdbcTestPG(i); - threadList[i].start(); - } - - // Start everyone at the same time - long start = System.currentTimeMillis(); - setGreenLight (); - - // wait for all threads to end - for (int i = 0; i < NUM_OF_THREADS; i++) - threadList[i].join(); - // - if (s_sconn != null) - s_sconn.close(); - s_sconn = null; - for (int i = 0; i < NUM_OF_THREADS; i++) - { - if (s_conn[i] != null) - s_conn[i].close(); - s_conn[i] = null; - } - long result = System.currentTimeMillis() - start; - System.out.print (C_INFO[s_cType] - + "Threads=" + NUM_OF_THREADS - + " \tYield=" + s_do_yield - + " \tms= " + result - + " \teach= " + (result/NUM_OF_THREADS)); - System.out.println(); - } // runTest - - - /** - * Statement Timing - */ - private static void statementTiming() - { - try - { - long startConnection = System.currentTimeMillis(); - Connection conn = null; - if (s_cType == C_MULTIPLE) - conn = DriverManager.getConnection (CONNECTION, UID, PWD); - - long startStatement = System.currentTimeMillis(); - Statement stmt = conn.createStatement (); - // stmt.setFetchSize(s_fetchSize); - - long startQuery = System.currentTimeMillis(); - ResultSet rs = stmt.executeQuery (STATEMENT); - - //int i = 0; - long startRetrieve = System.currentTimeMillis(); - while (rs.next()) - { - rs.getString(1); - //i++; - } - long endRetrieve = System.currentTimeMillis(); - // System.out.println(i); - - rs.close(); - rs = null; - long endQuery = System.currentTimeMillis(); - - stmt.close(); - stmt = null; - long endStatement = System.currentTimeMillis(); - - conn.close(); - conn = null; - long endConnection = System.currentTimeMillis(); - - // - System.out.println(C_INFO[s_cType] - + "Fetch=" + s_fetchSize - + " \tConn=" + (startStatement - startConnection) - + " \tStmt=" + (startQuery - startStatement) - + " \tQuery=" + (startRetrieve - startQuery) - + " \tRetrieve=" + (endRetrieve - startRetrieve) - + " \tClRs=" + (endQuery - endRetrieve) - + " \tClStmt=" + (endStatement - endQuery) - + " \tClConn=" + (endConnection - endStatement) - + " \t- Total=" + (endConnection - startConnection) - + " \tStmt=" + (endStatement - startStatement) - + " \tQuery=" + (endQuery - startQuery)); - } - catch (SQLException e) - { - e.printStackTrace(); - } - } // statementTiming - - - /*************************************************************************/ - - /** - * JdbcTest Thread - * @param id Thread ID - */ - public JdbcTestPG (int id) - { - super(); - m_myId = id; - } - - private int m_myId = 0; - - /** - * Async Worker - */ - public void run() - { - ResultSet rs = null; - Statement stmt = null; - - try - { - if (WITH_OUTPUT) - System.out.println("Thread " + m_myId + " waiting"); - while (!getGreenLight()) - yield(); - if (WITH_OUTPUT) - System.out.println("Thread " + m_myId + " started"); - - // Get the connection & statement - if (s_cType == C_SHARED) - stmt = s_sconn.createStatement (); - else if (s_cType == C_MULTIPLE) - { - s_conn[m_myId] = DriverManager.getConnection (CONNECTION, UID, PWD); - stmt = s_conn[m_myId].createStatement (); - } - else if (s_cType == C_PRECREATED) - { - stmt = s_conn[m_myId].createStatement (); - } - // stmt.setFetchSize(s_fetchSize); - - // Execute the Query - rs = stmt.executeQuery (STATEMENT); - - // Loop through the results - while (rs.next()) - { - if (s_do_yield) - yield(); // Yield To other threads - } - - // Close all the resources - rs.close(); - rs = null; - - // Close the statement - stmt.close(); - stmt = null; - - // Close the local connection - if (s_cType == C_SHARED || s_cType == C_PRECREATED) - ; - else - { - s_conn[m_myId].close(); - s_conn[m_myId] = null; - } - } - catch (Exception e) - { - System.out.println("Thread " + m_myId + " got Exception: " + e); - e.printStackTrace(); - return; - } - if (WITH_OUTPUT) - System.out.println("Thread " + m_myId + " finished"); - } - - /*************************************************************************/ - - static boolean greenLight = false; - static synchronized void setGreenLight () { greenLight = true; } - synchronized boolean getGreenLight () { return greenLight; } - -} // JdbcTestPG