`
流浪鱼
  • 浏览: 1693430 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用 JMX 和 RMI 远程管理 Quartz

 
阅读更多

原文地址为:http://www.oschina.net/question/12_67413

方法1: JMX

很多人询问如何通过 JMX 来管理 Quertz,很奇怪的是 Quartz 的文档完全没有提及这方面的问题,你可以在 quartz.properties 中通过以下配置来启用 JMX 的支持:

1 org.quartz.scheduler.jmx. export = true

然后你就可以使用标准的 JMX 客户端,例如 $JAVA_HOME/bin/jconsole 来连接到 Quartz 并进行远程管理。

方法2: RMI

另外一个远程管理 Quartz 的方法就是启用 RMI。如果你用的是 RMI 的方式,就会自动一个 Quartz 实例来作为 RMI 服务器,然后你可启动第二个 Quartz 实例来作为 RMI 客户端,二者通过 TCP 端口进行通讯。

服务器端调度实例配置方法(quartz.properties):

1 org.quartz.scheduler.rmi. export = true
2 org.quartz.scheduler.rmi.createRegistry = true
3 org.quartz.scheduler.rmi.registryHost = localhost
4 org.quartz.scheduler.rmi.registryPort = 1099
5 org.quartz.scheduler.rmi.serverPort = 1100

客户端调度器配置(quartz.properties):

1 org.quartz.scheduler.rmi.proxy = true
2 org.quartz.scheduler.rmi.registryHost = localhost
3 org.quartz.scheduler.rmi.registryPort = 1099

 

关于 Quartz 的 RMI 特性的文档描述请看 这里 . Quartz 不提供客户端 API,服务器端和客户端都是使用 org.quartz.Scheduler,只是配置不同而已。通过不同的配置来执行不同的行为。对服务器端来说,调度器用来执行所有的作业;而客户端只是一个简单的代理,不运行任何作业,在关闭客户端的时候必须小心,因为它允许你也同时关闭服务器端。

这些配置都在我的示例程序 MySchedule 中有着重说明,如果你运行的是 Web 应用,你可以看到 这个演示 ,你将看到我们提供了很多 quartz 的示例配置用来做远程管理。

如果使用 RMI 方法,你可以用 MySchedule Web UI 做为一个代理来管理 Quartz,你可以查看作业,可停止服务器的运行。

根据我的经验,使用 RMI 方法的弊端就是创建一个新的单点故障,如果你的服务器端口宕掉了,就无法恢复。

分享到:
评论

相关推荐

    jboss6下使用quartz两种方法

    在JBoss AS6中使用Quartz,有两种主要的方法来实现定时任务,这两种方法都是基于Quartz框架的。下面将详细解释这两种方法。 **1. 第一种方法:定义MDB-Consumer(Message-Driven Bean)** 这种方法是首选的方式,...

    quartz集群完整应用实例

    还可以通过RMI(Remote Method Invocation)或JMX(Java Management Extensions)来远程管理Quartz集群。 在实际应用中,我们可能需要监控Quartz集群的状态。可以借助Quartz提供的JMX支持,或者自定义监控界面,...

    Spring in Action(第2版)中文版

    12.4使用jmx管理springbean 12.4.1将springbean输出为mbean 12.4.2远程访问mbean 12.4.3处理通知 12.5小结 第三部分spring客户端 第13章处理web请求 13.1开始springmvc之旅 13.1.1请求生命中的一天 13.1.2...

    Spring in Action(第二版 中文高清版).part2

    12.4 使用JMX管理Spring Bean 12.4.1 将Spring Bean输出为MBean 12.4.2 远程访问MBean 12.4.3 处理通知 12.5 小结 第三部分 Spring客户端 第13章 处理Web请求 13.1 开始Spring MVC之旅 13.1.1 请求生命中的...

    Spring in Action(第二版 中文高清版).part1

    12.4 使用JMX管理Spring Bean 12.4.1 将Spring Bean输出为MBean 12.4.2 远程访问MBean 12.4.3 处理通知 12.5 小结 第三部分 Spring客户端 第13章 处理Web请求 13.1 开始Spring MVC之旅 13.1.1 请求生命中的...

    Java学习的30个目标

    学习JNDI、JMS、JTA、JMX等J2EE标准服务,提升企业级应用的可扩展性和管理能力。 #### 17. EJB与实体Bean 掌握EJB(Enterprise JavaBeans)规范,理解无状态会话Bean、有状态会话Bean、实体Bean(BMP/CMP)和消息...

    Java学习的30个目标.txt

    - **JMX**:掌握Java Management Extensions,学会使用JMX进行系统监控和管理。 - **JavaMail**:熟悉JavaMail API,学会使用JavaMail发送和接收电子邮件。 #### 十六、JavaBeans(EJB) - **EJB**:理解Enterprise ...

    Spring中文帮助文档

    12.5.2. 使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport 12.5.3. 基于原生的iBATIS API的DAO实现 12.6. JPA 12.6.1. 在Spring环境中建立JPA 12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的...

    Spring 2.0 开发参考手册

    17.2. 使用RMI暴露服务 17.2.1. 使用 RmiServiceExporter 暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为Hessian配置DispatcherServlet 17.3.2. 使用...

    Spring API

    12.5.2. 使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport 12.5.3. 基于原生的iBATIS API的DAO实现 12.6. JPA 12.6.1. 在Spring环境中建立JPA 12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的...

    java学习目标

    熟练掌握Tomcat、Resin、JRun等Web服务器的安装、配置和管理,对于部署和维护Web应用至关重要。 #### 9. 远程方法调用与分布式计算 学习远程方法调用(RMI)、RMI/IIOP等技术,以及Java命名和目录接口(JNDI)、...

    Spring-Reference_zh_CN(Spring中文参考手册)

    9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. Spring JDBC包结构...

    spring chm文档

    17.2. 使用RMI暴露服务 17.2.1. 使用 RmiServiceExporter 暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为Hessian配置DispatcherServlet 17.3.2. 使用...

    java的28个学习目标

    掌握主流数据库产品如Oracle、MySQL、MS SQL Server的使用和操作。 ### 6. 安全性与加密 深入学习Java安全模型,包括类加载器安全、字节码验证、安全管理器、策略和权限、代码签名、数字签名、加密学基础、认证机制...

    java学习中的一点忠告

    熟悉Java EE标准,包括JNDI、JMS、JTA/JTS、JMX等服务接口,以及使用Tomcat、Resin、JRun等Web容器部署Web应用,是成为一名合格的Java企业级开发者不可或缺的技能。 ### 八、XML与Web服务 学习XML相关API,如JAXP...

    Spring2.5jar所有开发包及完整文档及项开发实例.pdf

    2. `spring-beans.jar`:这个jar包是所有Spring应用都需要的,它包含解析配置文件、创建和管理bean以及IoC/DI操作的类。 3. `spring-aop.jar`:提供了面向切面编程(AOP)的支持,包括声明式事务管理,需要时添加此...

    成为Java高手的25个学习要点

    学习如何使用RMI、RMI/IIOP等远程接口技术,可以实现在不同系统间进行透明的数据交换和服务调用。 #### 11. 了解CORBA与Java EE规范 对于企业级应用而言,掌握CORBA、Java EE等标准协议和规范是必不可少的,它们为...

    学习Java语言的30个参考,让你坐拥别人之上的30个擦考

    - **集合框架**:包括List、Set、Map等容器的使用和区别。 - **序列化与反序列化**:了解如何将对象转换为字节流以及如何恢复。 - **流处理**:掌握输入输出流的使用,如FileInputStream、BufferedReader等。 - **...

    spring jar 包详解

    - **功能简介**:此 Jar 包包含了访问配置文件、创建和管理 Bean 以及进行依赖注入相关的所有类。 - **应用场景**:用于实现基本的 IoC/DI 支持。 - **依赖关系**:需要 `spring-core.jar` 和 `cglib-nodep-2.1_3....

Global site tag (gtag.js) - Google Analytics