Code Snippet 1 Parsing the Performance Log // object s2 is previous timing mark // object s is the later timing mark // object.set method adds the time to the named category. if (s.startsWith("TSE")) // timing event // parse the event name and time { sx = s.substring(4,s.indexOf(" ",6)); d.setEndEvent(sx.trim()); ctime2 = s.substring(s.lastIndexOf(" ") + 1); ctimet = ctime2.trim(); try { // change string to LONG time2 = Long.parseLong(ctimet); } // if..else to add time if (s2.equals("FSERVER_START")) { d.setFormServerTime(time2 - time1); } else if (s2.equals("DBLOGON_START")) { d.setDatabaseTime(time2 - time1); } else if (s2.equals("DB_START")) { d.setDatabaseTime(time2 - time1); } else if (s2.equals("DBLOGOFF_START")) { d.setDatabaseTime(time2 - time1); } else if (s2.equals("DBLOGON_END")) { d.setFormServerTime(time2 - time1); } else if (s2.equals("DB_END")) { d.setFormServerTime(time2 - time1); } else if (s2.equals("DBLOGOFF_END")) { d.setFormServerTime(time2 - time1); } else if (s2.equals("FSERVER_END")) { if (client) // Add to Client not Network { d.setClientTime(time2 - time1); client = false; // clear the flag } else // Add to Network { d.setNetworkTime(time2 - time1); } } } // end start TSE if (s.startsWith("#####")) { // Begin Client time client = true; // set the flag } . . . End Code Snippet 1. Code Snippet 2 Filling an array with Performance Data int x = 0; // define the array to hold the results long[] dataAr = new long[15]; for (int i = 0; i < 15; i++) { if (i < 10) x = i + 1; // set sec = 1 thru 10 else { if (i == 10) x = 15; // set seconds = 15 if (i == 11) x = 25; // set seconds = 25 if (i == 12) x = 30; // set seconds = 30 if (i == 13) x = 60; // set seconds = 60 if (i == 14) x = 1000; // Count all events } if (i < 14) query = "SELECT COUNT(*) " + "FROM stats$forms_perf" + " WHERE ((FSERVER + DBASE)/1000) < " + x + " AND FRMDATE >= " + "TO_DATE('" + startdate + "','YYYY-MM-DD')" + " AND FRMDATE <= " + "TO_DATE('" + enddate + "','YYYY-MM-DD')"; else query = "SELECT COUNT(*) " + "FROM stats$forms_perf" + " WHERE FRMDATE >= " + "TO_DATE('" + startdate + "','YYYY-MM-DD')" + " AND FRMDATE <= " + "TO_DATE('" + enddate + "','YYYY-MM-DD')"; try { // execute the query rs = stmt.executeQuery(query); rs.next(); // load the results into the array dataAr[i] = rs.getLong(1); } . . . End Code Snippet 2.