先说JMX,The JMX technology provides a simple, standard way of managing resources
such as applications, devices, and services.
JMX是为了管理资源产生的,这个资源包括应用、设备和服务等。取个例子,如果你写了一个应用,初始化了20个的数据连接数,当你的应用还在跑的时候,发觉这个连接数少了,你要增加这个参数。JMX提供不需要停机,动态的管理连接数的方法。
先从简单的Standard MBeans看起。
通常我们先定义interface
第一步:MBean Interface
package com.example;
public interface ConnectionNumberMBean {
public int getConnectionNumber();
public void setConnectionNumber(int num);
}
第二步:实现接口
package com.example;
import javax.management.*;
public class ConnectionNumber extends NotificationBroadcasterSupport implements ConnectionNumberMBean {
public int getConnectionNumber() {
return this.conNum ;
}
public synchronized void setConnectionNumber(int con_Num ) {
this.conNum = con_Num ;
System.out.println("Connection number now " + this.conNum );
}
private int conNum = DEFAULT_CON_Num;
private static final int DEFAULT_CON_Num= 20;
}
第三步:创建a JMX Ageng来管理资源
package com.example;
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
public class Main {
/* For simplicity, we declare "throws Exception".
Real programs will usually want finer-grained exception handling. */
public static void main(String[] args) throws Exception {
// Get the Platform MBean Server
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
// Construct the ObjectName for the Hello MBean we will register
ObjectName mbeanName = new ObjectName("com.example:type=ConnectionNumber");
// Create the Hello World MBean
ConnectionNumber mbean = new ConnectionNumber();
// Register the Hello World MBean
mbs.registerMBean(mbean, mbeanName);
// Wait forever
System.out.println("Waiting for incoming requests...");
Thread.sleep(Long.MAX_VALUE);
}
}
编译生产Class文件后,运行它。
打开windows控制台,运行jconsole命令,打开java控制台,如下图。
可以看见我们注册的mian已经在列表上,可以连接
看下图,点MBean
修改属性值,结果如下
分享到:
相关推荐
tomcat-catalina-jmx-remote-9.0.5 tomcat-catalina-jmx-remote-9.0.5.jar
当你想深入学习jvm的时候,肯定会用到。用于使用jvisualvm.exe远程监控服务器jvm
java项目,自己做的项目利用jmx监控weblogic,tomcat,websphere源码
Tomcat 8 Extras catalina-jmx-remote.jar,JMX监控所需文件之一。 JMX Remote Lifecycle Listener - org.apache.catalina.mbeans.JmxRemoteLifecycleListener
NULL 博文链接:https://90haofang-163-com.iteye.com/blog/1904451
星月牧场 - 下单接口 -dev.jmx
jmx-prometheus-httpserver-0.17.2
maven编译时报找不到这两个jar文件,发现已经无法从网站...Could not resolve dependencies for project ****:jar:0.0.1-SNAPSHOT: The following artifacts could not be resolved: com.sun.jdmk:jmxtools:jar:1.2.1, ...
catalina-jmx-remote.jar放到tomcat/lib目录下 如果是windows版本,编辑TOMCAT_HOME/bin/catalina.bat,在开头加入下面几行: set CATALINA_OPTS=%CATALINA_OPTS% -Djava.rmi.server.hostname=JMX_HOST set CATALINA...
tomcat7监控jar包,catalina-jmx-remote java-visualVM专用
① 先修改Tomcat的启动脚本,windows下为bin/catalina.bat(linux下为catalina.sh),添加以下内容,8999是jmxre
tomcat开启远程jmx连接方式包括tomcat5 6 7 windows版本开启远程jmx连接监控
文件中包含jmxtools-1.2.1.jar和jmxri-1.2.1.jar资源jar包
zabbix配置tomcat所需要的jmx的jar包,这里对应tomcat的8.0.36版本
基于Alpine Linux的Tomcat Oracle JDK7版本 用法 启动一个实例: docker run -d -p 8080:8080 --name tomcat-server sdd330/alpine-tomcat-oraclejdk 启动一个实例并挂载 webapps: docker run -d -p 8080:8080 ...
cmdline-jmxclient-0.10.3.jar + zabbix tomcat监控模板
cmdline-jmxclient-0.10.3 用于jmx监控调试,可应用于zabbix下java进程的监控。
代理Java包,用于生成JVM的健康的数据,jmx_prometheus_javaagent-0.12.0.jar