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 = " + "TO_DATE('" + startdate + "','YYYY-MM-DD')" + " AND FRMDATE = " + "TO_DATE('" + startdate + "','YYYY-MM-DD')" + " AND FRMDATE