void runProcTest() { setProgressMinMax(0, m_nNumRuns - 1); int nProgressStep = m_nNumRuns / 10 + 1; CallableStatement stmt = null; try { boolean m_bTransactionsUsed = m_bTrans && m_conn.getMetaData().supportsTransactions(); stmt = m_conn.prepareCall("{call ODBC_BENCHMARK(?,?,?,?,?,?,?)}"); int nAccNum, nBranchNum, nTellerNum; double dDelta, dBalance; log( "Starting procedure benchmark for " + m_nNumRuns + ((m_time > 0) ? " min.\n" : " runs\n"), 0); java.util.Random rand = new java.util.Random(m_nMaxAccount + m_nMaxBranch + m_nMaxTeller); for (int nRun = 0; (m_time > 0) ? true : nRun < m_nNumRuns; nRun++) { if (m_time > 0) { java.util.Date current = new java.util.Date(); if ((current.getTime() - m_time) > (m_nNumRuns * 60000)) break; } try { nAccNum = (int) (rand.nextFloat() * rand.nextFloat() * (m_nMaxAccount - 1)) + 1; nBranchNum = (int) (rand.nextFloat() * (m_nMaxBranch - 1)) + 1; nTellerNum = (int) (rand.nextFloat() * (m_nMaxTeller - 1)) + 1; dDelta = ((double) ((long) ((((int) (rand.nextFloat() * (m_nMaxTeller - 1)) + 1) * (rand.nextFloat() > 0.5 ? -1 : 1)) * 100))) / 100; stmt.clearParameters(); stmt.setInt(1, nRun + 1); stmt.setInt(2, nAccNum); stmt.setInt(3, nTellerNum); stmt.setInt(4, nBranchNum); stmt.setFloat(5, (float) dDelta); stmt.registerOutParameter(6, Types.FLOAT); stmt.setString(7, BenchPanel.strFiller.substring(0, 22)); java.util.Date startTime = new java.util.Date(); log( "{call ODBC_BENCHMARK(" + nRun + ", " + nAccNum + "," + nTellerNum + "," + nBranchNum + "," + dDelta + ",?,\'" + BenchPanel.strFiller.substring(0, 22) + "\')}\n", 2); stmt.execute(); stmt.getFloat(6); if (m_bQuery) executeQuery(); java.util.Date endTime = new java.util.Date(); m_nTrans += 1; double diff = endTime.getTime() - startTime.getTime(); if (diff < 1000) m_nTrans1Sec += 1; else if (diff < 2000) m_nTrans2Sec += 1; m_nTimeSum += diff / 1000; } catch (SQLException e1) { // System.err.println(e1.getMessage()); // e1.printStackTrace(); break; } if (nRun % nProgressStep == 0) setProgressValue(nRun); // yield(); } setProgressValue(m_nNumRuns - 1); } catch (SQLException e) { // JOptionPane.showMessageDialog(null, e.getMessage(), "SQL Error in proc test", // JOptionPane.ERROR_MESSAGE); log("SQLError in procedure test : " + e.getMessage(), 0); } finally { if (stmt != null) try { stmt.close(); } catch (SQLException e) { } stmt = null; } }