我们正在将应用程序从JBoss 4.2.1 GA迁移到JBos EAP 7.0.0。应用程序审核作为线程计数的currentThreadsBusy。这不适用于EAP。
以下是代码片段
javax.management.MBeanServerConnection server = java.lang.management.ManagementFactory.getPlatformMBeanServer();
javax.management.QueryExp qe = javax.management.Query.finalSubString(javax.management.Query.attr("name"), javax.management.Query.value("-" + request.getLocalPort()));
System.out.println("qu = "+qe.toString());
Set<ObjectInstance> set = server.queryMBeans(new javax.management.ObjectName("jboss.web:type=ThreadPool,*"),qe);
System.out.println("Set = "+set);
String objectName = "";
for (ObjectInstance objectInstance : set) {
if (objectInstance.getObjectName().getCanonicalName().contains("=http")) {
objectName = objectInstance.getObjectName().getCanonicalName();
}
}
System.out.println("objectName = "+objectName);
Object object = server.getAttribute(new ObjectName(objectName),"currentThreadsBusy");
System.out.println("object "+object);
问题是返回的Set为NULL。
问题可能是我们需要在查询mbean服务之前在EAP 7上启用Web线程监控。
在jConsole中我们也看不到网络线程组件。
这里有任何指针或帮助。