1/6用友股份-LE支持服务业务本部技术方案--《预警及定时任务类问题汇总》建立日期:2013-07-01修改日期:xxxx-xx-xx文档属性:客户文控编号:LE-DY-JS-2013-00782/6文档控制创建记录适用范围审阅人日期审阅签字所属部门发布范围内部员工伙伴客户发布人姓名所属部门发布时间日期作者所属部门邮件地址版本2013-7-01魏享林产品支持部V1.0版本领域模块备注3/6目录预警及定时任务类问题汇总.......................................................................................4一、NC56定时任务启不来及被卡住问题................................................................4二、NC57定时任务重复执行多次问题.....................................................................64/6预警及定时任务类问题汇总一、NC56定时任务启不来及被卡住问题56预警的实现机制是,每个server启动时,会从定时任务表去取定时任务,哪个server抢到就会到哪个server上运行。而新建、修改定时任务,点击保存时,会将定时任务放到当前登录的server上运行。即假设一个定时任务在server1上运行,如果用户登录server2修改了该定时任务,则系统会将server1上的该定时任务取消掉,并在server2上创建定时任务。问题一、中间件重启后,定时任务无法启动,必须点修改保存后,才可以启动查看NC对于中间件起动时,定时任务的创建方法,可以看出,一个server启动时,会向自己及其他server发送server启动的消息,停止时也是如此,只有当server接收到自身发来的server启动消息时,才会加载定时任务。5/6出现这个问题的原因是,NC中有个Bug,server起动时,不能向自己发消息,只能向其他server发消息,导致加载定时任务的方法永远走不到。而修改定时任务后,该定时任务会在登录的那个server上重建,当然定时任务就可以执行了。这个问题UAP出了补丁。问题二、定时任务修改后,无法启动,但在任务监控处可以看到任务处于等待状态如果定时任务修改后,在任务监控处永远处于等待状态,这时需要检查该定时任务创建的server,可以在任务监控处看到。非常大的可能是创建定时任务的server是master,出现这种情况的原因是用户登录了master节点做的定时任务修改,导致定时任务在master上重新创建。而运行定时任务的线程必须是一个was受管线程,master上不允许起动was受管线程,致使定时任务永远得不到运行。6/6解决这种问题很简单,登录一个非master节点,修改并保存该任务,该定时任务就可以起来了。二、NC57定时任务重复执行多次问题57中,即使配置了运行预警的server,定时任务也会在多个server上同时运行,这是因为程序中并未读取运行预警的server信息,在创建定时任务时,会在各个server上都创建,导致定时任务会在多个server上同时运行,任务被重复执行多次。NC提供了补丁,把所有创建定时任务的操作都调度到配置好的server上,控制定时任务只会执行一次。