- 浏览: 1017520 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
tomcat 7 源码分析-6 server初始化中的JMX(DynamicMBean)续
先说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; 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 ;
- }
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);
- }
- }
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
修改属性值,结果如下
发表评论
-
tomcat7.0.8的高级应用-apr1.4.2安装
2011-03-24 17:16 988一 windows下安装 直接 ... -
tomcat 7 源码分析-14 tomcat的container设计
2011-03-11 19:18 1553tomcat 7 源码分析-14 tomca ... -
tomcat 7 源码分析-13 处理request的Valve和Valve的链表Pipeline
2011-03-11 19:17 1133tomcat 7 源码分析-13 处理request的Val ... -
tomcat 7 源码分析-12 Enumeration枚举
2011-03-11 19:14 1256tomcat 7 源码分析-12 Enumeration枚举 ... -
tomcat 7 源码分析-11 tomcat对http协议的实现
2011-03-11 19:13 1404tomcat 7 源码分析-11 tomcat对http协议 ... -
tomcat 7 源码分析-10 线程池ThreadPoolExecutor
2011-03-11 19:12 2216tomcat 7 源码分析-10 线程池ThreadPool ... -
tomcat 7 源码分析-9 tomcat对ServerSocket的封装和使用
2011-03-11 19:11 1644tomcat 7 源码分析-9 tomcat对ServerS ... -
tomcat 7 源码分析-8 生命周期lifecycle和监听listener
2011-03-11 19:10 1390tomcat 7 源码分析-8 生命周期lifecycle和 ... -
tomcat 7 源码分析-7 server初始化中的JMX(DynamicMBean)再续
2011-03-11 19:09 1044tomcat 7 源码分析-7 server初始化中的JMX ... -
tomcat 7 源码分析-5 server初始化中的JMX(DynamicMBean)
2011-03-11 19:08 1369tomcat 7 源码分析-5 server初始化中的JMX ... -
tomcat 7 源码分析-4 server初始化背后getServer().init()
2011-03-11 19:06 1362tomcat 7 源码分析-4 server初始化背后get ... -
tomcat 7 源码分析-3 使用Digester读取xml文件实例化server
2011-03-11 19:05 1395tomcat 7 源码分析-3 使用Digester读取xm ... -
tomcat 7 源码分析-2 类加载ClassLoader
2011-03-11 19:04 1938tomcat 7 源码分析-2 类加载ClassLoader ... -
tomcat 7 源码分析-1 关于读取properties及注册系统properties
2011-03-11 19:02 1597tomcat 7 源码分析-1 关于读取properties ... -
Tomcat的四种基于HTTP协议的Connector性能比较
2011-03-11 17:58 1122Tomcat的四种基于HTTP协议的Connector性能比较 ...
相关推荐
tomcat-catalina-jmx-remote-9.0.5 tomcat-catalina-jmx-remote-9.0.5.jar
3. common:这个模块包含了Tomcat中可被所有其他模块共享的组件和服务,如Logging、Naming和JMX支持。 4. jasper:Jasper是Tomcat的JSP编译器,负责将JSP页面转换为Servlet Java代码。 5. shared:共享库,提供...
在本压缩包中,包含了三个不同版本的Tomcat,分别是Tomcat 6、Tomcat 7和Tomcat 8,分别适用于Windows x86和x64架构。以下将详细讲解这三个版本以及它们在Windows环境下的安装和使用。 1. **Tomcat 6** - **概述**...
- **JMX监控**: 可以启用JMX(Java Management Extensions)进行远程监控和管理,配置在`server.xml`中的`<Connector>`元素内。 总结起来,Apache Tomcat 10.0.0-M1是一个用于运行Java Web应用的高效服务器,特别...
3. **生命周期管理**:每个Tomcat组件都有自己的生命周期,包括初始化、启动、停止和销毁。源码中,这些生命周期方法的实现有助于理解Tomcat的内部工作流程。 4. **部署与加载**:Tomcat可以自动或手动部署Web应用...
首先,让我们从Apache Tomcat 6.0.39源码开始分析。这个版本是Tomcat 6系列的一个稳定版本,它主要支持Java EE 5规范。在这个版本中,你可以深入学习以下关键知识点: 1. **Servlet 2.5规范**:Tomcat 6是基于...
Apache Tomcat 是一款广泛应用的开源软件,主要用于部署和运行Java Servlet和JavaServer Pages(JSP)应用程序。在本文中,我们将深入探讨Apache Tomcat 11.0.0-M17这一版本,它是针对Windows 64位操作系统的。这个...
1. Servlet容器:Tomcat作为Servlet容器,负责加载、初始化、运行Servlet,处理来自客户端的HTTP请求,并将响应返回给客户端。 2. JSP支持:Tomcat能动态编译JSP文件为Servlet,使得开发者可以使用动态网页技术编写...
Apache Tomcat 是一款广泛应用的开源软件,主要用于部署和运行Java Servlet和JavaServer Pages(JSP)应用程序。在本文中,我们将深入探讨“apache-tomcat-8.0.44-windows-x64”这一特定版本,它专为64位Windows操作...
Apache Tomcat 9.0.78 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。这个版本是专门为Windows x64平台设计的,确保在64位操作系统上的高效运行。在...
6. **JMX改进**:增强了JMX(Java Management Extensions)功能,使得监控和管理Tomcat服务器更加便捷。 7. **MBean注册**:允许用户通过MBeans动态注册和管理组件,提供更灵活的配置。 8. **配置简化**:对服务器...
这个版本的Tomcat是7.x系列的一个稳定版本,提供了对Java EE 6规范的支持。在本文中,我们将深入探讨Apache Tomcat 7.0.96的相关知识点。 1. **Tomcat的角色**: - Tomcat是一个轻量级的应用服务器,主要负责运行...
Apache Tomcat是一款开源的Java应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)应用程序。这个最新的Windows版本,即apache-tomcat-10.0.0-windows-x64.zip,是专为64位Windows操作系统设计的,提供...
通过源码,我们可以学习如何自定义MBeans并集成到Tomcat中。 总的来说,深入研究Tomcat 6和7的源码不仅可以帮助我们理解其工作原理,还可以提升我们在服务器优化、性能调试和问题定位方面的技能。这是一项基础且...
7. **JMX(Java Management Extensions)**:Tomcat 8.5支持JMX,允许远程监控和管理服务器状态,这对于运维人员监控和优化服务器性能非常有用。 8. **性能优化**:可以通过调整`server.xml`中的线程池设置、启用...
在本项目中,"jmx监控weblogic,tomcat,websphere源码"涉及了使用JMX来监控三个主流的Java应用服务器:WebLogic、Tomcat和WebSphere。这些服务器都是企业级应用部署的常见选择,对它们的监控对于确保系统性能、稳定性...
它的源码资源对于我们理解Tomcat的工作原理、进行定制开发或者优化性能都具有极大的价值。`apache-tomcat-9.0.8-src`这个压缩包包含了Tomcat 9.0.8版本的完整源代码,这是学习和研究Tomcat的绝佳材料。 1. **Tomcat...
在Tomcat中,Servlet负责接收来自客户端的请求,进行业务逻辑处理,然后返回响应。lib包中的servlet-api.jar包含了Servlet API,这是开发Servlet所必需的。 2. **HTTP链接**:Tomcat作为HTTP服务器,处理HTTP请求和...
Apache Tomcat是一个开源的软件应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)应用程序。这个"apache-tomcat-7.0.79.zip"压缩包包含了Apache Tomcat的7.0.79版本,这是一个稳定且广泛使用的版本。...
Tomcat是Apache软件基金会的Jakarta项目的一部分,提供了对Servlet、JavaServer Pages (JSP) 和Java EE 6 Web Profile的实现。在这个64位版本中,它优化了在64位操作系统上的性能和内存管理。 **1. Tomcat 7.0.85...