📄 statustransformer.java
字号:
writer.print("P: Parse and prepare request S: Service F: Finishing R: Ready K: Keepalive");
writer.print("</p>");
} else if (mode == 1){
writer.write("<connector name='" + name + "'>");
writer.write("<threadInfo ");
writer.write(" maxThreads=\"" + mBeanServer.getAttribute(tpName, "maxThreads") + "\"");
writer.write(" currentThreadCount=\"" + mBeanServer.getAttribute(tpName, "currentThreadCount") + "\"");
writer.write(" currentThreadsBusy=\"" + mBeanServer.getAttribute(tpName, "currentThreadsBusy") + "\"");
writer.write(" />");
ObjectName grpName = null;
Enumeration enumeration = globalRequestProcessors.elements();
while (enumeration.hasMoreElements()) {
ObjectName objectName = (ObjectName) enumeration.nextElement();
if (name.equals(objectName.getKeyProperty("name"))) {
grpName = objectName;
}
}
if (grpName != null) {
writer.write("<requestInfo ");
writer.write(" maxTime=\"" + mBeanServer.getAttribute(grpName, "maxTime") + "\"");
writer.write(" processingTime=\"" + mBeanServer.getAttribute(grpName, "processingTime") + "\"");
writer.write(" requestCount=\"" + mBeanServer.getAttribute(grpName, "requestCount") + "\"");
writer.write(" errorCount=\"" + mBeanServer.getAttribute(grpName, "errorCount") + "\"");
writer.write(" bytesReceived=\"" + mBeanServer.getAttribute(grpName, "bytesReceived") + "\"");
writer.write(" bytesSent=\"" + mBeanServer.getAttribute(grpName, "bytesSent") + "\"");
writer.write(" />");
writer.write("<workers>");
enumeration = requestProcessors.elements();
while (enumeration.hasMoreElements()) {
ObjectName objectName = (ObjectName) enumeration.nextElement();
if (name.equals(objectName.getKeyProperty("worker"))) {
writeProcessorState(writer, objectName, mBeanServer, mode);
}
}
writer.write("</workers>");
}
writer.write("</connector>");
}
}
/**
* Write processor state.
*/
protected static void writeProcessorState(PrintWriter writer,
ObjectName pName,
MBeanServer mBeanServer,
int mode)
throws Exception {
Integer stageValue =
(Integer) mBeanServer.getAttribute(pName, "stage");
int stage = stageValue.intValue();
boolean fullStatus = true;
boolean showRequest = true;
String stageStr = null;
switch (stage) {
case (1/*org.apache.coyote.Constants.STAGE_PARSE*/):
stageStr = "P";
fullStatus = false;
break;
case (2/*org.apache.coyote.Constants.STAGE_PREPARE*/):
stageStr = "P";
fullStatus = false;
break;
case (3/*org.apache.coyote.Constants.STAGE_SERVICE*/):
stageStr = "S";
break;
case (4/*org.apache.coyote.Constants.STAGE_ENDINPUT*/):
stageStr = "F";
break;
case (5/*org.apache.coyote.Constants.STAGE_ENDOUTPUT*/):
stageStr = "F";
break;
case (7/*org.apache.coyote.Constants.STAGE_ENDED*/):
stageStr = "R";
fullStatus = false;
break;
case (6/*org.apache.coyote.Constants.STAGE_KEEPALIVE*/):
stageStr = "K";
fullStatus = true;
showRequest = false;
break;
case (0/*org.apache.coyote.Constants.STAGE_NEW*/):
stageStr = "R";
fullStatus = false;
break;
default:
// Unknown stage
stageStr = "?";
fullStatus = false;
}
if (mode == 0) {
writer.write("<td><strong>");
writer.write(stageStr);
writer.write("</strong></td>");
if (fullStatus) {
writer.write("<td>");
writer.print(formatTime(mBeanServer.getAttribute
(pName, "requestProcessingTime"), false));
writer.write("</td>");
writer.write("<td>");
if (showRequest) {
writer.print(formatSize(mBeanServer.getAttribute
(pName, "requestBytesSent"), false));
} else {
writer.write("?");
}
writer.write("</td>");
writer.write("<td>");
if (showRequest) {
writer.print(formatSize(mBeanServer.getAttribute
(pName, "requestBytesReceived"),
false));
} else {
writer.write("?");
}
writer.write("</td>");
writer.write("<td>");
writer.print(filter(mBeanServer.getAttribute
(pName, "remoteAddr")));
writer.write("</td>");
writer.write("<td nowrap>");
writer.write(filter(mBeanServer.getAttribute
(pName, "virtualHost")));
writer.write("</td>");
writer.write("<td nowrap>");
if (showRequest) {
writer.write(filter(mBeanServer.getAttribute
(pName, "method")));
writer.write(" ");
writer.write(filter(mBeanServer.getAttribute
(pName, "currentUri")));
String queryString = (String) mBeanServer.getAttribute
(pName, "currentQueryString");
if ((queryString != null) && (!queryString.equals(""))) {
writer.write("?");
writer.print(RequestUtil.filter(queryString));
}
writer.write(" ");
writer.write(filter(mBeanServer.getAttribute
(pName, "protocol")));
} else {
writer.write("?");
}
writer.write("</td>");
} else {
writer.write("<td>?</td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td>");
}
} else if (mode == 1){
writer.write("<worker ");
writer.write(" stage=\"" + stageStr + "\"");
if (fullStatus) {
writer.write(" requestProcessingTime=\""
+ mBeanServer.getAttribute
(pName, "requestProcessingTime") + "\"");
writer.write(" requestBytesSent=\"");
if (showRequest) {
writer.write("" + mBeanServer.getAttribute
(pName, "requestBytesSent"));
} else {
writer.write("0");
}
writer.write("\"");
writer.write(" requestBytesReceived=\"");
if (showRequest) {
writer.write("" + mBeanServer.getAttribute
(pName, "requestBytesReceived"));
} else {
writer.write("0");
}
writer.write("\"");
writer.write(" remoteAddr=\""
+ filter(mBeanServer.getAttribute
(pName, "remoteAddr")) + "\"");
writer.write(" virtualHost=\""
+ filter(mBeanServer.getAttribute
(pName, "virtualHost")) + "\"");
if (showRequest) {
writer.write(" method=\""
+ filter(mBeanServer.getAttribute
(pName, "method")) + "\"");
writer.write(" currentUri=\""
+ filter(mBeanServer.getAttribute
(pName, "currentUri")) + "\"");
String queryString = (String) mBeanServer.getAttribute
(pName, "currentQueryString");
if ((queryString != null) && (!queryString.equals(""))) {
writer.write(" currentQueryString=\""
+ RequestUtil.filter(queryString) + "\"");
} else {
writer.write(" currentQueryString=\"?\"");
}
writer.write(" protocol=\""
+ filter(mBeanServer.getAttribute
(pName, "protocol")) + "\"");
} else {
writer.write(" method=\"?\"");
writer.write(" currentUri=\"?\"");
writer.write(" currentQueryString=\"?\"");
writer.write(" protocol=\"?\"");
}
} else {
writer.write(" requestProcessingTime=\"0\"");
writer.write(" requestBytesSent=\"0\"");
writer.write(" requestBytesRecieved=\"0\"");
writer.write(" remoteAddr=\"?\"");
writer.write(" virtualHost=\"?\"");
writer.write(" method=\"?\"");
writer.write(" currentUri=\"?\"");
writer.write(" currentQueryString=\"?\"");
writer.write(" protocol=\"?\"");
}
writer.write(" />");
}
}
/**
* Write applications state.
*/
public static void writeDetailedState(PrintWriter writer,
MBeanServer mBeanServer, int mode)
throws Exception {
if (mode == 0){
ObjectName queryHosts = new ObjectName("*:j2eeType=WebModule,*");
Set hostsON = mBeanServer.queryNames(queryHosts, null);
// Navigation menu
writer.print("<h1>");
writer.print("Application list");
writer.print("</h1>");
writer.print("<p>");
int count = 0;
Iterator iterator = hostsON.iterator();
while (iterator.hasNext()) {
ObjectName contextON = (ObjectName) iterator.next();
String webModuleName = contextON.getKeyProperty("name");
if (webModuleName.startsWith("//")) {
webModuleName = webModuleName.substring(2);
}
int slash = webModuleName.indexOf("/");
if (slash == -1) {
count++;
continue;
}
writer.print("<a href=\"#" + (count++) + ".0\">");
writer.print(webModuleName);
writer.print("</a>");
if (iterator.hasNext()) {
writer.print("<br>");
}
}
writer.print("</p>");
// Webapp list
count = 0;
iterator = hostsON.iterator();
while (iterator.hasNext()) {
ObjectName contextON = (ObjectName) iterator.next();
writer.print("<a class=\"A.name\" name=\""
+ (count++) + ".0\">");
writeContext(writer, contextON, mBeanServer, mode);
}
} else if (mode == 1){
// for now we don't write out the Detailed state in XML
}
}
/**
* Write context state.
*/
protected static void writeContext(PrintWriter writer,
ObjectName objectName,
MBeanServer mBeanServer, int mode)
throws Exception {
if (mode == 0){
String webModuleName = objectName.getKeyProperty("name");
String name = webModuleName;
if (name == null) {
return;
}
String hostName = null;
String contextName = null;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -