概述
最近,集市有个作业调度出了问题,导致作业一直处于Running状态,但是后台进程并没有对应的作业。去检查日志,发现只有作业调度日志,并未脚本执行日志,这表明作业并未实际运行,检查作业调度日志,发现报了一个错,Only one instance of etlslave.pl allow to run,这说明已经有一个实例在运行了,百度谷歌都没有答案,于是自己动手丰衣足食。开始进入分析阶段。
第一步:检查日志
进入日志目录下,检查日志,只有调度日志,没有脚本执行日志。日志报错Only one instance of etlslave.pl allow to run.
第二步:重新调度
将作业状态置为Done,重新强制调起,发现无法调起作业。
第三步:检查控制文件
进入ETL目录下的DATA目录,检查各个目录下的控制文件的状态,去process目录检查,发现了当日的控制文件,而且控制文件已经从dir.xxxx变成了xxxx.dir,这表明,进程etlrcv.pl已经从receive件下检测到控制文件,然后放置到queue队列里面,然后再进去了process目录。进入receive目录,发现了后续几天的控制文件。于是删除了process目录下的控制文件,然后开始运行后一天的作业,状态仍然一直为Running,这证明了基本的调度是没有问题的。
第四步:深入挖掘
第五步:处理问题
于是立刻进入lock目录,发现了该作业的锁文件,于是删除该锁,重置作业状态,作业进入正常运行状态。查看日志,正常,问题解决。
第六步:总结分析
遇见问题,首先要定位问题,试错的方式虽然是最容易的,但是却是有代价的,所以从根本上分析问题才是最重要的,分析问题的过程带来对问题本质的更深入的了解,下一步就是深入的去了解Automation的精灵进程,通过详细理解代码,深入了解Automation的调度机制,做到遇见问题心中了然的境界。
最后
以上就是能干超短裙为你收集整理的Automation作业调度问题:Only one instance of etlslave.pl allow to run的全部内容,希望文章能够帮你解决Automation作业调度问题:Only one instance of etlslave.pl allow to run所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复