Author: markt
Date: Thu Mar 15 22:49:06 2012
New Revision: 1301256
URL: http://svn.apache.org/viewvc?rev=1301256&view=rev
Log:
Added support to the JMXProxyServlet for fetching a specific key from a
CompositeData value.
Added documentation for the entire 'get' command for the JMXProxyServlet,
including the new optional 'key' parameter.
Backport of patch by schultz
Modified:
tomcat/tc7.0.x/trunk/ (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/JMXProxyServlet.java
tomcat/tc7.0.x/trunk/webapps/docs/manager-howto.xml
Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Mar 15 22:49:06 2012
@@ -1 +1 @@
-/tomcat/trunk:1156115-1157160,1157162-1157859,1157862-1157942,1157945-1160347,1160349-1163716,1163718-1166689,1166691-1174340,1174342-1175596,1175598-1175611,1175613-1175932,1175934-1177783,1177785-1177980,1178006-1180720,1180722-1183094,1183096-1187753,1187755,1187775,1187801,1187806,1187809,1187826-1188312,1188314-1188401,1188646-1188840,1188842-1190176,1190178-1195223,1195225-1195953,1195955,1195957-1201238,1201240-1203345,1203347-1206623,1206625-1208046,1208073,1208096,1208114,1208145,1208772,1209194-1212125,1212127-1220291,1220293,1220295-1221321,1221323-1222328,1222332-1222401,1222405-1222795,1222850-1222950,1222969-1225326,1225328-1225463,1225465,1225627,1225629-1226534,1226536-1228908,1228911-1228923,1228927-1229532,1229534-1230766,1230768-1231625,1231627-1233414,1233419-1235207,1235209-1237425,1237427,1237429-1237977,1237981,1237985,1238070,1238073,1239024-1239048,1239050-1239062,1239135,1239256,1239258-1239485,1240101,1240106,1240109,1240112,1240114,1240116,1240118
,1240121,1240329,1240697,1240795,1240821,1240842,1240857,1241087,1241160,1241908-1241909,1241982,1242099,1242110,1242371,1242434,1242495,1242947,1243034,1243038,1244302,1244511,1244567,1244718-1244719,1244935-1244938,1245274,1245449,1245849,1290875,1292334,1292338,1292345-1292347,1293155,1293831-1293832,1295998,1296284,1297014-1297015,1297017,1297158,1297177,1297202,1297209,1297213,1297717,1297722,1297729,1297768,1297778,1297818,1297828,1297979,1297987,1298121,1298140,1298590,1298592,1298628-1298629,1298794,1298983-1298984,1299020,1299034,1299819,1300154-1300155,1300569,1300948
+/tomcat/trunk:1156115-1157160,1157162-1157859,1157862-1157942,1157945-1160347,1160349-1163716,1163718-1166689,1166691-1174340,1174342-1175596,1175598-1175611,1175613-1175932,1175934-1177783,1177785-1177980,1178006-1180720,1180722-1183094,1183096-1187753,1187755,1187775,1187801,1187806,1187809,1187826-1188312,1188314-1188401,1188646-1188840,1188842-1190176,1190178-1195223,1195225-1195953,1195955,1195957-1201238,1201240-1203345,1203347-1206623,1206625-1208046,1208073,1208096,1208114,1208145,1208772,1209194-1212125,1212127-1220291,1220293,1220295-1221321,1221323-1222328,1222332-1222401,1222405-1222795,1222850-1222950,1222969-1225326,1225328-1225463,1225465,1225627,1225629-1226534,1226536-1228908,1228911-1228923,1228927-1229532,1229534-1230766,1230768-1231625,1231627-1233414,1233419-1235207,1235209-1237425,1237427,1237429-1237977,1237981,1237985,1238070,1238073,1239024-1239048,1239050-1239062,1239135,1239256,1239258-1239485,1239785-1240046,1240101,1240106,1240109,1240112,1240114
,1240116,1240118,1240121,1240329,1240697,1240795,1240821,1240842,1240857,1241087,1241160,1241908-1241909,1241982,1242099,1242110,1242371,1242434,1242495,1242947,1243034,1243038,1244302,1244511,1244567,1244718-1244719,1244935-1244938,1245274,1245449,1245849,1290875,1292334,1292338,1292345-1292347,1293155,1293831-1293832,1295998,1296284,1297014-1297015,1297017,1297158,1297177,1297202,1297209,1297213,1297717,1297722,1297729,1297768,1297778,1297818,1297828,1297979,1297987,1298121,1298140,1298590,1298592,1298628-1298629,1298794,1298983-1298984,1299020,1299034,1299819,1300154-1300155,1300569,1300948
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/JMXProxyServlet.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/JMXProxyServlet.java?rev=1301256&r1=1301255&r2=1301256&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/JMXProxyServlet.java
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/JMXProxyServlet.java
Thu Mar 15 22:49:06 2012
@@ -25,6 +25,7 @@ import javax.management.MBeanOperationIn
import javax.management.MBeanParameterInfo;
import javax.management.MBeanServer;
import javax.management.ObjectName;
+import javax.management.openmbean.CompositeData;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -97,7 +98,7 @@ public class JMXProxyServlet extends Htt
qry=request.getParameter("get");
if( qry!= null ) {
String name=request.getParameter("att");
- getAttribute( writer, qry, name );
+ getAttribute( writer, qry, name, request.getParameter("key") );
return;
}
qry = request.getParameter("invoke");
@@ -122,18 +123,35 @@ public class JMXProxyServlet extends Htt
}
- public void getAttribute(PrintWriter writer, String onameStr, String att) {
+ public void getAttribute(PrintWriter writer, String onameStr, String att,
String key) {
try {
ObjectName oname = new ObjectName(onameStr);
Object value = mBeanServer.getAttribute(oname, att);
+
+ if(null != key && value instanceof CompositeData)
+ value = ((CompositeData)value).get(key);
+
String valueStr;
if (value != null) {
valueStr = value.toString();
} else {
valueStr = "<null>";
}
- writer.println("OK - Attribute get '" + onameStr + "' - " + att
- + "= " + MBeanDumper.escape(valueStr));
+
+ writer.print("OK - Attribute get '");
+ writer.print(onameStr);
+ writer.print("' - ");
+ writer.print(att);
+
+ if(null != key) {
+ writer.print(" - key '");
+ writer.print(key);
+ writer.print("'");
+ }
+
+ writer.print(" = ");
+
+ writer.println(MBeanDumper.escape(valueStr));
} catch (Exception ex) {
writer.println("Error - " + ex.toString());
ex.printStackTrace(writer);
Modified: tomcat/tc7.0.x/trunk/webapps/docs/manager-howto.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/manager-howto.xml?rev=1301256&r1=1301255&r2=1301256&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/manager-howto.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/manager-howto.xml Thu Mar 15 22:49:06 2012
@@ -1265,6 +1265,37 @@ http://webserver/manager/jmxproxy/?qry=S
you may run.
</subsection>
+ <subsection name="JMX Get command">
+ The JXMProxyServlet also supports a "get" command that you can use to
+ fetch the value of a specific MBean's attribute. The general form of
+ the <code>get</code> command is:
+
+ <source>
+
http://webserver/manager/jmxproxy/?get=BEANNAME&att=MYATTRIBUTE&key=MYKEY
+ </source>
+
+ You must provide the following parameters:
+ <ol>
+ <li><code>get</code>: The full bean name</li>
+ <li><code>att</code>: The attribute you wish to fetch</li>
+ <li><code>key</code>: (optional) The key into a CompositeData MBean
attribute</li>
+ </ol>
+
+ If all goes well, then it will say OK, otherwise an error message will
+ be shown. For example, let's say we wish to fetch the current heap memory
+ data:
+
+ <source>
+
http://webserver/manager/jmxproxy/?get=java.lang:type=Memory&att=HeapMemoryUsage
+ </source>
+
+ Or, if you only want the "used" key:
+
+ <source>
+
http://webserver/manager/jmxproxy/?get=java.lang:type=Memory&att=HeapMemoryUsage&key=used
+ </source>
+ </subsection>
+
<subsection name="JMX Set command">
Now that you can query an MBean, its time to muck with Tomcat's internals!
The general form of the set command is :
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]