Maximo ESCALATION关联ACTION在CI上执行失败,是否为锁定导致?
问题1:Maximo脚本执行串行/并行逻辑说明
- Maximo的Escalation默认采用单线程串行执行模式:对检索到的所有CI记录,会按顺序逐个触发关联Action及自动化脚本,必须等待前一个CI对应的脚本执行完成、事务提交后才会处理下一条记录。
- 若单条脚本出现卡顿(如调用外部REST API超时、网络阻塞、业务逻辑死循环),会直接阻塞后续所有CI的脚本执行;若阻塞时长超过Escalation的调度间隔,还会出现下一次调度启动时上一次执行仍未完成的情况,最终导致大量CI未被扫描处理。
- 可通过开启Escalation的
Run as Background Process参数调整为异步执行模式,开启后单条CI的处理任务会被提交到Maximo后台任务队列,无需等待前一条任务完成即可处理下一条。
问题2:异步脚本最大并行数说明
- 异步执行的自动化脚本并发上限受两个核心参数控制:
- 全局异步任务队列最大线程数:对应系统属性
mxe.crontask.asynctask.maxthreads,默认值为10,可根据服务器硬件性能调整,建议最高不超过30。 - 对应Escalation Cron任务的最大线程数:可在
系统配置>平台配置>Cron任务中找到当前关联的Escalation Cron任务实例,调整其最大线程数参数,该参数值不能超过上述全局异步任务队列的最大线程数。
- 全局异步任务队列最大线程数:对应系统属性
排查建议
你当前场景中脚本涉及外部REST API调用,可优先在脚本中强制配置HTTP请求超时参数(连接超时建议设为5s,读超时建议设为10s),同时补充异常捕获逻辑,单条CI处理失败时直接结束当前事务,避免单条异常任务长时间占用线程资源。
内容的提问来源于stack exchange,提问作者Niek Jonkman
相关产品推荐
相关产品推荐

