remm 2005/04/18 15:50:24 Modified: webapps/manager/WEB-INF/classes/org/apache/catalina/manager StatusManagerServlet.java StatusTransformer.java Log: - Add some OS level stats if APR is available. Swallow silently if APR is not available. Revision Changes Path 1.16 +4 -1 jakarta-tomcat-catalina/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/StatusManagerServlet.java Index: StatusManagerServlet.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/StatusManagerServlet.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- StatusManagerServlet.java 23 Sep 2004 07:03:27 -0000 1.15 +++ StatusManagerServlet.java 18 Apr 2005 22:50:24 -0000 1.16 @@ -276,6 +276,9 @@ try { + // Display operating system statistics using APR if available + StatusTransformer.writeOSState(writer,mode); + // Display virtual machine statistics StatusTransformer.writeVMState(writer,mode); 1.26 +52 -2 jakarta-tomcat-catalina/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/StatusTransformer.java Index: StatusTransformer.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/StatusTransformer.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- StatusTransformer.java 14 Apr 2005 23:32:54 -0000 1.25 +++ StatusTransformer.java 18 Apr 2005 22:50:24 -0000 1.26 @@ -18,6 +18,7 @@ package org.apache.catalina.manager; import java.io.PrintWriter; +import java.lang.reflect.Method; import java.text.MessageFormat; import java.util.Date; import java.util.Enumeration; @@ -142,6 +143,55 @@ /** + * Write the OS state. Mode 0 will generate HTML. + * Mode 1 will generate XML. + */ + public static void writeOSState(PrintWriter writer, int mode) { + long[] result = new long[14]; + boolean ok = false; + try { + String methodName = "info"; + Class paramTypes[] = new Class[1]; + paramTypes[0] = result.getClass(); + Object paramValues[] = new Object[1]; + paramValues[0] = result; + Method method = Class.forName("org.apache.tomcat.jni.OS") + .getMethod(methodName, paramTypes); + method.invoke(null, paramValues); + ok = true; + } catch (Throwable t) { + // Ignore + } + + if (ok) { + if (mode == 0){ + writer.print("<h1>OS</h1>"); + + writer.print("<p>"); + writer.print(" Physical memory: "); + writer.print(formatSize(new Long(result[0]), true)); + writer.print(" Available memory: "); + writer.print(formatSize(new Long(result[1]), true)); + writer.print(" Total page file: "); + writer.print(formatSize(new Long(result[2]), true)); + writer.print(" Free page file: "); + writer.print(formatSize(new Long(result[3]), true)); + writer.print(" Memory load: "); + writer.print(new Long(result[4])); + writer.print("<br>"); + writer.print(" Process kernel time: "); + writer.print(formatTime(new Long(result[9] / 1000), true)); + writer.print(" Process user time: "); + writer.print(formatTime(new Long(result[10] / 1000), true)); + writer.print("</p>"); + } else if (mode == 1){ + } + } + + } + + + /** * Write the VM state. Mode 0 will generate HTML. * Mode 1 will generate XML. */ @@ -853,7 +903,7 @@ } if (seconds) { - return ((time / 1000) + " s"); + return ((((float) time ) / 1000) + " s"); } else { return (time + " ms"); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]