在学习Tomcat 7 的源代码的时候发现,大量运用到了JMX, MBeans,所以决定先学习一下。
介绍
JMX是Java 5开始引入的API。这个API意在帮助管理和监控资源: applications, devices, services, and the Java virtual machine. 你可以用JMX API来:
- 查询和修改应用配置
- 应用行为统计
- 状态改变和出错通知
你也可以远程的访问JVM,从而远程管理和监控。
MBean, managed bean,受管的bean
Mbean其实也是一种Java Bean,特别之处就在于它是在管理之下的。所谓受管就是说它提供了读写的API。有四种MBean:standard MBeans, dynamic MBeans, open MBeans and model MBeans. 下面是一个standard MBeans的例子:
先定义接口:
package com.example.mbeans;
public interface HelloMBean {
public void sayHello();
public int add(int x, int y);
public String getName();
public int getCacheSize();
public void setCacheSize(int size);
}
再定义实现:
package com.example.mbeans;
public class Hello implements HelloMBean {
public void sayHello() {
System.out.println("hello, world");
}
public int add(int x, int y) {
return x + y;
}
public String getName() {
return this.name;
}
public int getCacheSize() {
return this.cacheSize;
}
public synchronized void setCacheSize(int size) {
this.cacheSize = size;
System.out.println("Cache size now " + this.cacheSize);
}
private final String name = "Reginald";
private int cacheSize = DEFAULT_CACHE_SIZE;
private static final int DEFAULT_CACHE_SIZE = 200;
}
JMX agent, MBean server
MBean是通过注册在JMX agent,也就是 MBean server中,从而被暴露出去而被管理的。
下面是这个agent 的使用实例:
package com.example.mbeans;
import java.lang.management.*;
import javax.management.*;
public class Main {
public static void main(String[] args) throws Exception {
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
ObjectName name = new ObjectName("com.example.mbeans:type=Hello");
Hello mbean = new Hello();
mbs.registerMBean(mbean, name);
System.out.println("Waiting forever...");
Thread.sleep(Long.MAX_VALUE);
}
}
运行Main类,之后它就等待被访问和修改。你可以用jconsole去尝试查询和修改。
控制台输出:
Waiting forever...
hello, world
Cache size now 300
hello, world
- 大小: 58.8 KB
分享到:
相关推荐
### Java分布式应用学习笔记09JMX-MBean的介绍 #### MBean概念及作用 MBean,即Managed Bean,是在JMX(Java Management Extensions)框架中用于管理资源的一种特殊Java对象。通过MBean,可以方便地对应用程序进行...
Java Management Extensions (JMX) 是Java平台上的一个标准,它定义了一种管理和监控Java应用程序的机制。JMX规范允许开发者创建可管理的组件,并通过管理系统(如JConsole)进行监控和控制。这些组件称为MBeans...
8. **Java Management Extensions (JMX)**:增强了JMX,使得监控和管理Java应用更加容易。 9. **Java Development Kit Tools**:包括Javadoc、javac编译器和jdb调试器等工具都进行了升级,提高了开发效率。 10. **...
JMX(Java Management Extensions)的改进也使得应用程序管理和监控更为高效。 总的来说,这个压缩包提供了一个全面的Java学习路径,从基础到进阶,理论与实践相结合。无论你是初入编程的新人还是希望深入JDK6的...
7. **Java Management Extensions (JMX)**:JMX在Java 6中得到了强化,使得管理系统资源和服务变得更加容易,可以远程监控和管理Java应用程序。 8. **改进的垃圾收集**:JDK6改进了垃圾收集机制,特别是并行垃圾...
JMX(Java Management Extensions)在JDK 6中也有所改进,使得管理系统资源和监控应用程序变得更加容易。开发者可以通过JMX创建、注册和管理MBeans(管理beans),实现对应用程序的远程监控和管理。 在国际化方面,...
最后,JDK 6还引入了一些工具和API的改进,如JConsole性能监控工具,JMX(Java Management Extensions)的增强,以及Javadoc的新选项,这些都为开发者提供了更强大的开发和调试环境。 总之,Java JDK 6学习笔记PPT...
10. **Java Management Extensions (JMX)**:JMX用于监控和管理Java应用程序,提供了创建、注册和管理管理对象的框架。 11. **Application Servers**:了解常用的Java EE应用服务器,如Apache Tomcat、WildFly和...
JDK 6引入了JSR 47,即Java Management Extensions (JMX)的日志服务API,允许开发者更加灵活地管理和配置日志。 11. **国际化和本地化** 支持更多的字符集和语言,增强了对Unicode的处理,使得应用程序能更好地...
- 性能监控:通过Java的JMX(Java Management Extensions)监控数据库连接池和SQL执行情况。 综上所述,Oracle DBA和Java的知识体系是相辅相成的,一个优秀的数据库管理员不仅需要精通Oracle的管理,还需要对Java...
4. 类库支持:Java 提供了丰富的标准类库,如JNI(Java Native Interface)允许Java代码与本地代码交互,JMX(Java Management Extensions)用于管理和监控应用程序,JNDI(Java Naming and Directory Interface)...
- **JMX(Java Management Extensions)**:WebLogic使用JMX来监控服务器的性能指标,如CPU使用率、内存消耗等。 - **日志和诊断**:通过日志记录和诊断收集,可以分析和解决运行时问题。 6. **WebLogic集群与高...
Java Management Extensions (JMX) 提供了一种管理和监控Java应用程序的标准框架。在Tomcat中,JMX用于监控和管理服务器状态,如线程池、内存使用情况、MBean服务器等。通过JMX,开发者可以远程操作Tomcat,进行...
12. **JMX(Java Management Extensions)** JMX提供了一套管理框架,可以监控和管理运行中的J2EE应用和服务。 13. **安全管理** J2EE提供了基于角色的访问控制(RBAC)、容器管理的安全性和编程模型安全,确保...
9. **JMX(Java Management Extensions)支持**:Spring 2.0支持JMX,允许应用程序暴露管理接口,方便系统监控和管理。 10. **测试工具**:Spring 2.0包含了JUnit和Mockito等测试工具的集成,有助于进行单元测试和...
7.2 监控工具:如JMX(Java Management Extensions)用于实时查看服务器状态和性能指标。 八、安全性与事务管理 8.1 安全性:支持基本认证、SSL加密、角色基访问控制等,确保服务的安全通信。 8.2 事务管理:确保...
11. **JMX监控**:通过Java Management Extensions (JMX),开发者可以监控和管理服务器的各个组件,包括内存使用、线程状态等。 12. **日志管理**:JBoss7使用Log4j2作为默认的日志管理系统,提供灵活的日志配置和...
- **JMX**:Java Management Extensions,允许远程监控和管理JVM。 - **JFR (Java Flight Recorder)** 和 **JMC (Java Mission Control)**:Oracle提供的高级诊断和分析工具,适用于复杂的性能问题排查。 5. **...