`
canofy
  • 浏览: 829719 次
  • 性别: Icon_minigender_1
  • 来自: 北京、四川
社区版块
存档分类
最新评论

JMX连接Tomcat的JMX测试类

    博客分类:
  • j2EE
阅读更多
首先是为了使tomcat支持JMX,必须在tomcat的启动项里加上以下几行
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl="false"
-Dcom.sun.management.jmxremote.authenticate="false"
意思大体上很明白,端口使用的9999,没有使用ssl,没有进行权限认证

下面是测试类
package com.rmi;

import java.lang.management.ManagementFactory;
import java.lang.management.MemoryManagerMXBean;
import java.util.Set;

import javax.management.MBeanAttributeInfo;
import javax.management.MBeanInfo;
import javax.management.MBeanOperationInfo;
import javax.management.MBeanParameterInfo;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;

/**
 * 远程链接Tomcat的MBeanServer
 * @author Administrator
 *
 */
public class TomcatClient {

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		 JMXServiceURL address =
		      new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi");
		    JMXConnector connector = JMXConnectorFactory.connect(address, null);
		    // it is a trivial matter to get a reference for the MBean server
		    // connection to the remote agent
		    MBeanServerConnection mbsc = connector.getMBeanServerConnection();


		    System.out.println("MBean count="+mbsc.getMBeanCount());

		    connector.connect();

//		    for (ObjectInstance object : mbsc.queryMBeans(null, null)) {//服务器上的所有MBean
//	            System.out.println("object.getObjectName="+object.getObjectName());
//	        }
		    ObjectName on=new ObjectName("Catalina:type=ThreadPool,name=http-8080");
			MBeanInfo mbeanInfo=mbsc.getMBeanInfo(on);
			MBeanOperationInfo[] operationInfo=mbeanInfo.getOperations();
			if(operationInfo!=null){//获取方法的一些东西
				for(MBeanOperationInfo opration:operationInfo){
					System.out.println("MBeanOperationInfo="+opration.getName());
					MBeanParameterInfo[] paramsInfo=opration.getSignature();
					for(MBeanParameterInfo param:paramsInfo){
						System.out.println("param="+param.getName());
//						param.getType();
//						param.getName();
					}
//					mbsc.invoke(on, opration.getName(), params, opration.getSignature());
				}
			}

			MBeanAttributeInfo[] attributeInfo=mbeanInfo.getAttributes();
			if(attributeInfo!=null){//获取属性的一些东西
				for(MBeanAttributeInfo attr:attributeInfo){
					System.out.println("MBeanAttributeInfo="+attr.getName()+";type="+attr.getType());
					System.out.println(mbsc.getAttribute(on, attr.getName()));//获取属性值
				}
			}

		    // Get the names of all the Memory Manager MXBeans in the server
	        Set srvMemMgrNames = mbsc.queryNames(new ObjectName(
	            ManagementFactory.MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE + ",*"), null);

	        // Get a MXBean Proxy for each name returned
	        for (Object memMgrName : srvMemMgrNames){
	            // Cast Object to an ObjectName
	            ObjectName memMgr = (ObjectName) memMgrName;

	            // Call newPlatformMXBeanProxy with the complete object name
	            // for the specific MXBean
	            MemoryManagerMXBean memMgrBean =
	                ManagementFactory.newPlatformMXBeanProxy(
	                		mbsc, memMgr.toString(), MemoryManagerMXBean.class);

	            // memMgrBean is a proxy to the remote MXBean. We can use it
	            // just as if it was a reference to a local MXBean.
	            System.out.println("Memory Manager Name = " + memMgrBean.getName());
	        }

	}

	public static String toCapital(String str){
		char[] cs=str.toCharArray();
		char c=(char)(str.charAt(0)-32);
		cs[0]=c;
//		System.out.println(String.valueOf(cs));
		return String.valueOf(cs);
	}
}



分享到:
评论

相关推荐

    jmx_access&password;

    例如,你可以定义哪些用户可以连接到JMX代理,哪些用户只能读取数据,哪些用户可以进行修改操作。 文件格式通常是基于文本的,使用类似于HTTP基本认证的格式。每行代表一个用户或角色的访问规则,通常包括用户名、...

    Tomcat源码研究.pdf

    - **远程监控**:通过配置,可以让JConsole或其他JMX客户端工具远程连接到Tomcat的MBean Server,实现远程监控和管理。 #### 1.7 JMX 在 Tomcat 中的应用(三) - **管理操作**:除了监控外,还可以通过JMX执行...

    zabbix监控tomcat所需资源包下载附带教程

    1. **配置Tomcat**:首先,需要在Tomcat的server.xml配置文件中启用JMX Remote,添加必要的连接器(RMI)设置,以便JMX客户端可以远程访问Tomcat的MBeans(管理Bean)。 2. **启动Tomcat**:修改配置后,重新启动...

    Professional Apache Tomcat 6

    19. **第20章:性能测试** - 提供了对Tomcat进行性能测试的方法,包括压力测试和负载测试。 20. **第21章:性能调优** - 分享了提高Tomcat运行效率的最佳实践和技巧。 21. **附录A:Tomcat与IDEs** - 探讨了如何...

    tomcat performance tuning 性能调整

    Apache Tomcat性能调整是优化应用程序运行效率的关键环节,特别是在高并发和大数据量的场景下。以下是一些关于Tomcat性能...通过不断的测试和监控,可以找到最佳的配置组合,从而提升Tomcat服务器的运行效率和稳定性。

    Tomcat性能优化

    10. **系统资源监控**:使用监控工具(如JMX)实时监控Tomcat的CPU、内存、线程等状态,以便及时发现和解决问题。 11. **更新到最新稳定版本**:保持Tomcat版本的更新,以获取官方的性能改进和安全修复。 12. **...

    Tomcat压缩包

    4. **Eclipse集成Tomcat**:Eclipse是一款流行的Java IDE,它可以集成Tomcat服务器,便于开发者进行调试和测试。通过Eclipse的 Servers 视图,可以添加、配置和管理Tomcat实例,然后将Web项目发布到Tomcat上。 5. *...

    tomcat8.5解压版

    另外,JMX(Java Management Extensions)接口允许远程监控和管理Tomcat实例。 11. **日志系统** Tomcat使用Juli日志框架,允许自定义日志配置,如分割日志文件、控制日志级别等。默认日志文件位于`logs`目录下。 ...

    tomcat 6.0

    Tomcat提供JMX接口,可以使用JConsole、VisualVM等工具进行监控。日志系统Juli可以定制日志级别和输出位置,便于故障排查和性能分析。 ### 9. 更新与升级 从Tomcat 6.0到更高版本的升级,需要注意API的不兼容性,...

    官方原版tomcat8.5.13 64位

    9. **JMX改进**:Java Management Extensions (JMX)接口得到了增强,使得远程管理和监控Tomcat变得更加便捷。 在下载并解压"apache-tomcat-8.5.13"压缩包后,你会得到包含以下组件的目录结构: 1. **bin**:包含了...

    tomcat集群jar包

    这意味着这些jar包可能包含特定于Tomcat7版本的类或API,如果尝试在Tomcat8上运行,可能会导致兼容性问题。 在Tomcat集群中,jar包可能包括以下组件: 1. **Clustering相关的JARs**:如`catalina-cluster.jar`,`...

    apache-tomcat-8.5.60.zip

    2. Jasper:Jasper是Tomcat中的JSP编译器,将JSP文件转换为Servlet类并进行编译。 3. Coyote:Coyote是Tomcat的HTTP/HTTPS连接器,负责处理网络通信。 4. JMX Remote:提供Java Management Extensions(JMX)远程...

    How Tomcat works(PDF)

    Tomcat作为开源软件,是许多Web应用的基础,尤其在轻量级开发和测试环境中非常常见。以下是对Tomcat核心知识点的详细解析: 1. **Java Servlet与JSP** - **Servlet**:Servlet是Java编写的应用程序,它运行在...

    工具tomcat

    Tomcat的使用范围广泛,涵盖了开发、测试和生产环境,因此相关的知识点非常丰富。 在压缩包子文件的文件名称列表中,只提到了“tomcat”,这可能表示压缩包包含的是完整的Tomcat 7安装或解压文件。通常,这样的文件...

    apache-tomcat-8.5.9

    在Windows环境下,使用`apache-tomcat-8.5.9.zip`文件,用户可以通过简单的步骤安装和运行Tomcat服务器,为开发和测试Java Web应用提供便利。理解并掌握上述知识点将有助于更好地管理和利用Tomcat服务器。

    tomcat-6.0.13

    此外,对于已经部署的应用,修改WEB-INF下的文件或更新classes目录中的类文件,Tomcat可以实现热部署,无需重启服务。 8. **日志和监控**:Tomcat提供了详细的日志功能,帮助开发者调试和诊断问题。同时,可以通过...

    tomcat6工具

    2. JMX支持:通过Java Management Extensions(JMX),可以远程监控和管理Tomcat服务器,提供更好的维护能力。 3. SSL支持:通过配置服务器,可以启用SSL,为Web应用提供安全的数据传输。 4. 配置文件优化:如server...

    tomcat 7.06

    - `server.xml`:这是Tomcat的主要配置文件,用于设置服务器端口、连接器、数据源、Context等。 - `context.xml`:定义单个Web应用的全局配置,可以覆盖`server.xml`中的配置。 - `web.xml`:Web应用的部署描述符...

    Java 服务器软件apache-tomcat.zip

    此外,Tomcat还提供了管理界面(Manager App)和监控接口(JMX),方便远程管理和监控服务器状态。 为了更好地利用Apache Tomcat,开发者需要了解基本的服务器配置,如修改server.xml文件来配置端口、虚拟主机、上...

Global site tag (gtag.js) - Google Analytics