public void run() { System.err.println(); Date now = new Date(); if (!done) flout("INTERRUPTED\n"); flout("START: " + start + "\n"); flout("FINISH: " + now + "\n"); flout("N: " + n_files + "\n"); flout("Subject id: " + subject_id + "\n"); flout("Sample id: " + sample_id + "\n"); flout("total files: " + total_files + "\n"); flout("total bytes: " + total_bytes + "\n"); flout("retrieve failures: " + retrieve_failures + "\n"); flout("metadata retrieve failures: " + md_retrieve_failures + "\n"); flout("bad files retrieved: " + bad_file_errors + "\n"); flout("bad metadata retrieved: " + bad_md_errors + "\n"); reportExceptions(); flout("store retries: " + store_retries + "\n"); flout("retrieve retries: " + retrieve_retries + "\n"); flout("md retrieve retries: " + md_retrieve_retries + "\n"); if (md_retrieve_time > 0) flout("md retrieve rate (ms/record): " + (md_retrieve_time / md_retrieves) + "\n"); if (total_store_time > 0) flout("total store rate (bytes/sec): " + ((total_bytes * 1000) / total_store_time) + "\n"); if (total_retrieve_time > 0) flout( "total retrieve rate (bytes/sec): " + ((total_bytes * 1000) / total_retrieve_time) + "\n"); if (time_store_30M > 0) flout("30 MB store (bytes/sec): " + (1000 * bytes_30M / time_store_30M) + "\n"); if (time_retrv_30M > 0) flout("30 MB retrieve (bytes/sec): " + (1000 * bytes_30M / time_retrv_30M) + "\n"); if (time_store_3M > 0) flout("3 MB store (bytes/sec): " + (1000 * bytes_30M / time_store_3M) + "\n"); if (time_retrv_3M > 0) flout("3 MB retrieve (bytes/sec): " + (1000 * bytes_3M / time_retrv_3M) + "\n"); if (time_store_300K > 0) flout("300 KB store (bytes/sec): " + (1000 * bytes_300K / time_store_300K) + "\n"); if (time_retrv_300K > 0) flout("300 KB retrieve (bytes/sec): " + (1000 * bytes_300K / time_retrv_300K) + "\n"); if (update) { flout("update oid query retries: " + query_retries + "\n"); flout("update retries: " + update_retries + "\n"); if (oid_query_time > 0) flout("query-oid's time (ms): " + oid_query_time + "\n"); if (update_time > 0) flout("update time (ms/record): " + (update_time / updates) + "\n"); if (updating && updates != n_files * 3) flout("files saved: " + (n_files * 3) + " updates: " + updates + "\n"); } if (failed_rtrv.size() > 0) { ListIterator li = failed_rtrv.listIterator(0); while (li.hasNext()) flout("lost data: " + (String) li.next() + "\n"); } if (failed_md_rtrv.size() > 0) { ListIterator li = failed_md_rtrv.listIterator(0); while (li.hasNext()) flout("lost mdata: " + (String) li.next() + "\n"); } // long deltat = now.getTime() - start.getTime(); // if (deltat > 0) // flout("total thruput (bytes/sec rdwr): " + // (2000 * total_bytes / deltat) + "\n"); try { new File(lastfile).delete(); } catch (Exception e) { } }