Author: lulabad Date: 2008-03-16 10:03:52 +0100 (Sun, 16 Mar 2008) New Revision: 4568
Added: trunk/htroot/Threaddump_p.html trunk/htroot/Threaddump_p.java Log: added Threaddump Servlet, see http://forum.yacy-websuche.de/viewtopic.php?f=9&t=862 Added: trunk/htroot/Threaddump_p.html =================================================================== --- trunk/htroot/Threaddump_p.html 2008-03-15 21:57:55 UTC (rev 4567) +++ trunk/htroot/Threaddump_p.html 2008-03-16 09:03:52 UTC (rev 4568) @@ -0,0 +1,22 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <title>YaCy '#[clientname]#': Threaddump</title> + #%env/templates/metas.template%# +</head> +<body id="Threaddump"> + #%env/templates/header.template%# + <h2>Threaddump</h2> + <form action="Threaddump_p.html" method="get" > + <fieldset> + <input type="submit" name="createThreaddump" value="create Threaddump" /> + </fieldset> + </form> + + + <div> + #(dump)#::#[content]##(/dump)# + </div> + #%env/templates/footer.template%# +</body> +</html> Property changes on: trunk/htroot/Threaddump_p.html ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/htroot/Threaddump_p.java =================================================================== --- trunk/htroot/Threaddump_p.java 2008-03-15 21:57:55 UTC (rev 4567) +++ trunk/htroot/Threaddump_p.java 2008-03-16 09:03:52 UTC (rev 4568) @@ -0,0 +1,110 @@ +// Threaddump_p.java +// ----------------------- +// part of YACY +// (C) by Michael Peter Christen; [EMAIL PROTECTED] +// first published on http://www.anomic.de +// Frankfurt, Germany, 2004 +// +// This File is contributed by Alexander Fieger +// +// $LastChangedDate: 2008-01-22 12:51:43 +0100 (Di, 22 Jan 2008) $ +// $LastChangedRevision: 4374 $ +// $LastChangedBy: low012 $ +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// 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 +// +// Using this software in any meaning (reading, learning, copying, compiling, +// running) means that you agree that the Author(s) is (are) not responsible +// for cost, loss of data or any harm that may be caused directly or indirectly +// by usage of this softare or this documentation. The usage of this software +// is on your own risk. The installation and usage (starting/running) of this +// software may allow other people or application to access your computer and +// any attached devices and is highly dependent on the configuration of the +// software which must be done by the user of the software; the author(s) is +// (are) also not responsible for proper configuration and usage of the +// software, even if provoked by documentation provided together with +// the software. +// +// Any changes to this file according to the GPL as documented in the file +// gpl.txt aside this file in the shipment you received can be done to the +// lines that follows this copyright notice here, but changes must not be +// done inside the copyright notive above. A re-distribution must contain +// the intact and unchanged copyright notice. +// Contributions and changes to the program code must be marked as such. + +// You must compile this file with +// javac -classpath .:../Classes Blacklist_p.java +// if the shell's current path is HTROOT + +import de.anomic.http.httpHeader; +import de.anomic.plasma.plasmaSwitchboard; +import de.anomic.server.serverObjects; +import de.anomic.server.serverSwitch; +import de.anomic.yacy.yacyVersion; + +import java.util.Map; +import java.lang.StringBuffer; +import java.util.Iterator; +import java.util.Date; + +public class Threaddump_p { + + private static serverObjects prop; + private static plasmaSwitchboard sb; + + public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) { + + + prop = new serverObjects(); + sb = (plasmaSwitchboard) env; + StringBuffer buffer = new StringBuffer(); + + + if (post != null && post.containsKey("createThreaddump")) { + prop.put("dump", "1"); + // Thread dump + Map<Thread,StackTraceElement[]> stackTraces = Thread.getAllStackTraces(); + Date dt = new Date(); + String versionstring = yacyVersion.combined2prettyVersion(sb.getConfig("version","0.1")); + + buffer.append("************* Start Thread Dump " + dt + " *******************").append("<br />"); + buffer.append("<br /> YaCy Version: " + versionstring + "<br />"); + //buffer.append(" -- Memory Details --").append("<br />"); + buffer.append("Total Memory = " + (Runtime.getRuntime().totalMemory())).append("<br />"); + buffer.append("Used Memory = " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory())).append("<br />"); + buffer.append("Total Memory = " + (Runtime.getRuntime().freeMemory())).append("<br />"); + buffer.append(" --- --- --- ---").append("<br />"); + for (Iterator<Thread> iterator = stackTraces.keySet().iterator(); iterator.hasNext();) { + Thread thread = (Thread) iterator.next(); + StackTraceElement[] stackTraceElement = (StackTraceElement[]) stackTraces.get(thread); + buffer.append("Thread= " + thread.getName() + " " + (thread.isDaemon()?"daemon":"") + " id=" + thread.getId() + " " + thread.getState()).append("<br />"); + for(int i = 0; i <= (stackTraceElement.length -1); i++) { + buffer.append("\t" + stackTraceElement[i]).append("<br />"); + } + buffer.append("<br />"); + //buffer.append(" --- --- --- ---").append("<br>"); + } + buffer.append("************* End Thread Dump " + dt + " *******************").append("<br />"); + + prop.put("dump_content", buffer.toString()); + } else { + prop.put("dump", "0"); + } + + return prop; // return from serverObjects respond() + } + + +} Property changes on: trunk/htroot/Threaddump_p.java ___________________________________________________________________ Name: svn:mime-type + text/plain _______________________________________________ YaCy-svn mailing list YaCy-svn@lists.berlios.de https://lists.berlios.de/mailman/listinfo/yacy-svn