`
lendo.du
  • 浏览: 12705 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

JBoss Scheduler任务调度BUG之一

阅读更多

以前的系统架构为:jdk1.4+jboss4.0,在scheduler-service.xml配置文件中配置一个scheduler的标准代码如下:

<mbean code="org.jboss.varia.scheduler.Scheduler" name=":service=Scheduler">
  <attribute name="StartAtStartup">true</attribute>
  <attribute name="SchedulableClass">org.jboss.varia.scheduler.example.SchedulableExample</attribute>
  <attribute name="SchedulableArguments">Schedulabe Test,12345</attribute>
  <attribute name="SchedulableArgumentTypes">java.lang.String,int</attribute>
  <attribute name="InitialStartDate">0</attribute>
  <attribute name="SchedulePeriod">10000</attribute>
  <attribute name="InitialRepetitions">-1</attribute>  
</mbean>

最近,服务器升级,新的架构为:jdk5.0+jboss4.2,然后scheduler-service.xml得配置文件没有任何改动,出现了一个比较严重的问题,比如我设定调度器从午夜的12:00开始执行,在以前的架构下,每次都在12:00的时候开始执行,但是到新环境下,比如仍然是从12:00开始,执行任务的时间为1个小时,那么,下一次Scheduler启动的时间就在凌晨1点开始,再下一次则从凌晨2点开始。因为在半夜执行的任务都是批处理任务,相当耗性能,所以如果长时间不重新启动服务器,就可能导致业务繁忙的时候启动scheduler,这会给系统带来很大问题。调查了一段时间,终于在jboss的jira bug列表里面发现了这个问题,只需要改一下配置文件,配置如下:

<mbean code="org.jboss.varia.scheduler.Scheduler" name=":service=Scheduler">
  <attribute name="StartAtStartup">true</attribute>
  <attribute name="SchedulableClass">org.jboss.varia.scheduler.example.SchedulableExample</attribute>
  <attribute name="SchedulableArguments">Schedulabe Test,12345</attribute>
  <attribute name="SchedulableArgumentTypes">java.lang.String,int</attribute>
  <attribute name="InitialStartDate">0</attribute>
  <attribute name="SchedulePeriod">10000</attribute>
  <attribute name="InitialRepetitions">-1</attribute>
  <attribute name="FixedRate">true</attribute>    
</mbean>

也就是加入了倒数第二行"<attribute name="FixedRate">true</attribute>",导致这个问题的原因是jdk1.4和jdk5.0的Timer类在处理时间得时候发生了改变。所以需要加入这个参数让Scheduler按固定的启动时间运行。这也是JBoss4.2的一个Bug,Bug链接:https://jira.jboss.org/jira/browse/JBAS-328

 

 

分享到:
评论

相关推荐

    jboss 页面调度

    JBoss 支持与多种工具集成,例如 Apache Tomcat 作为 Servlet 容器,JNDI (Java Naming and Directory Interface) 用于服务发现,以及 Quartz 或 Spring Scheduler 进行任务调度。这些工具的整合使用可以实现更复杂...

    jdk6 jboss5 webservice bug

    标题 "jdk6 jboss5 webservice bug" 暗示了这是一个关于Java开发环境中,具体是JDK 6和JBoss Application Server 5版本中Web服务(Webservice)出现的问题。这个问题可能是由于某些兼容性、配置错误或者已知的bug...

    jboss-seam定时器

    - Seam定时器基于Quartz库,Quartz是一个开源的作业调度框架,能够管理计划性的任务。 - 定时器可以在应用程序启动时运行,或者在满足特定条件时触发,例如在用户会话结束时清理资源。 2. **配置定时器**: - 在...

    SpringBoot 整合Quartz(集群)实现定时任务调度

    SpringBoot整合Quartz实现定时任务调度是企业级应用中常见的需求,主要用于自动化执行某些周期性的任务,例如数据备份、报表生成、系统维护等。Quartz是一个功能强大的开源作业调度框架,能够灵活地定义任务和调度...

    Jboss下开发ejb应用之一会话bean的应用

    本文将围绕“Jboss下开发ejb应用之一会话bean的应用”这一主题,深入探讨如何在Jboss应用服务器上开发和部署会话Bean,以及涉及到的相关工具和源码。 会话Bean是EJB的一种类型,它代表了业务逻辑组件,为客户端提供...

    Jboss下开发ejb应用之一实体bean的应用

    标题:“Jboss下开发ejb应用之一实体bean的应用” 首先,理解EJB实体Bean的含义至关重要。实体Bean代表持久化的业务对象,它们与数据库中的记录相对应,负责存储和检索数据。EJB 3.0引入了注解驱动的开发方式,大大...

    web环境下Quartz作业调度入门源代码(Jboss)

    Quartz是一款开源的作业调度框架,它允许在Java应用程序中创建和执行定时任务。在Web环境下,Quartz能够很好地与各种应用服务器集成,如Jboss,实现后台作业的自动化调度。本示例“web环境下Quartz作业调度入门源...

    java的Time、Scheduler定时器

    `Quartz Scheduler` 是一个功能强大的任务调度库,能够处理复杂的调度需求。相比于 `java.util.Timer`,`Quartz` 提供了更灵活的配置和更强大的功能,如支持集群、支持Cron表达式定时、支持并发任务等。 在使用 `...

    JBOSS,JBoss安装部署

    JBoss是Red Hat公司开发的一款开源的应用服务器,它基于Java EE(Enterprise Edition)规范,提供了全面的企业级应用程序部署和管理解决方案。本篇文章将详细讲解JBoss的安装和部署过程,帮助你深入了解如何在本地...

    Jboss项目部署文档

    Jboss 项目部署文档 Jboss 项目部署文档是指在 Jboss 服务器上部署项目的详细步骤,包括环境变量的配置、项目打包、配置文件的修改、JNDI 的配置等。以下是 Jboss 项目部署文档的详细知识点: 一、环境变量配置 ...

    Linux中任务调度的配置与学习

    总结,Linux中的任务调度通过`cron`守护进程和`crontab`文件实现,为用户提供了一种灵活且强大的方式来安排和自动化执行系统任务。理解并熟练掌握`cron`和`crontab`的使用,对系统管理和运维工作至关重要。

    jboss一启动除开一闪而过.txt

    在IT领域,JBoss作为一个广泛使用的开源应用服务器,其启动问题常常困扰着开发者。本文将深入探讨“jboss一启动除开一闪而过”的问题及其解决方案,基于标题、描述、标签以及部分内容,我们将全面解析这一现象背后的...

    jboss7.1 linux版本

    JBoss AS 7.1.0.Final是在Linux环境下运行的一款开源Java应用服务器,由Red Hat公司维护。这个版本发布于2012年,它引入了许多改进和新特性,旨在提供更快的启动速度、更高的性能以及更好的模块化。在这个环境中,...

    jboss 下载(httpwww.jboss.org)

    JBoss 是一个开源的、基于 J2EE(Java 2 Platform, Enterprise Edition)的应用服务器,由全球开发者社区共同维护和开发。它最初以 LGPL 许可协议发布,允许商业应用免费使用。2006年,JBoss 被著名的开源公司 Red ...

    一台机器部署多个jboss说明

    ### 一台机器部署多个JBoss服务器的配置方法 在企业级应用开发中,有时需要在同一台物理机器上部署多个JBoss应用服务器实例。这可能是出于性能测试、开发环境搭建或是资源利用等多种考虑因素。然而,在同一台机器上...

    JavaEE源代码 jboss-common

    JavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-...

    JBoss JBPM4请假流程示例

    4. **工作流引擎**:JBoss JBPM4的核心组件,负责执行流程定义、任务调度和状态管理。当一个任务完成后,工作流引擎会根据流程定义中的流转规则决定下一个任务。 5. **监听器和事件**:在请假流程中,可能会有监听...

    MyEclipse中配置JBoss

    而JBoss则是一个开源的应用服务器,广泛用于部署和管理企业级应用程序。本篇将详细讲解如何在MyEclipse中配置JBoss,以便进行无缝的开发与调试。 【配置步骤】 1. **安装MyEclipse**:首先,确保已经安装了...

    jboss配置入门,jboss的初级配置

    jboss系统是一种基于Java的应用服务器,具有高性能、可扩展、安全性强等特点。在本文中,我们将对jboss的基本配置进行介绍,包括其文件夹结构、配置文件、负载均衡配置等。 jboss文件夹结构 jboss的文件夹结构主要...

Global site tag (gtag.js) - Google Analytics