这个问题困扰了我一个多星期,之前一直是程序的问题,问了很多大牛都说是配置文件加载两次,但我遇到的问题不是这样的,本身jboss自带的有一个quartz定时器,我自己又引入一个quartz定时器,也就是相当于两个定时器在同一时刻不停的走,导致重复走了两次。
如果你用的web服务器是jboss4.2,那么你就注意了,当你启动的时候,用命令调用jconsole,去java监视和控制平台去看看,jboss服务器自带的quartz有默认的调度线程有十个。
继续往下看,我自己引用的quartz也有十个定时线程,一共有20个,也就是说定时器定时的时候重复执行两次。
解决办法:
第一种解决方法:进入jmx-console平台,http://localhost:8080/jmx-console/,找到jboss.jca项,可以看到如下信息。jboss默认启动的时候是加载的,所以如果不想让自带的quartz运行,只需要进入此项,点击stop下的invoke就行了。但重启项目后quartz又会重新加载,
下面介绍下面一种方法:
另一种解决方法:去jboss安装目录,找到server\xxx\deploy\jbossjca-service.xml,
再去\server\xxx\conf\jboss-service.xml下注释下mbean就ok了。
重新启动jboss服务器,然后打开java监视和管理控制台查看当前调度线程,一共有十个,正常启动....