后台事务终止帮助

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

后台事务终止帮助

适用版本:EAS V8.0版本及以上

用户场景

背景介绍

1. 数据库连接异常导致后台事务任务执行线程卡住,事务一直在执行中

2. 业务方法本身原因导致任务执行线程卡住事务一直在执行中

3. 一般的后台事务都是互斥的事务是排队执行,如果上一个事务一直执行中,那么就不会自动触发生成下一个事务

4. 后台事务执行事务的线程是有限的,当线程部分卡住,则会影响后台事务性能;当线程全部卡住,服务实例则不会加载执行事务

解决方案:

问题确认

确认正在执行中的事务是否线程卡住;

1. 查看【后台事务监控】界面,确定正在执行中的事务的开始时间是否距离现在已经很久了

2. 如果事务长时间一直在执行中,则需要收集线程堆栈进一步分析

a) 拿到任务对应执行服务器的实例IP和http端口,界面上的端口是rpc端口,http端口要去管理控制台查看

b) 在浏览器打开一下网址,实例IP和http端口填上打开网页http://serverIP:http端口号/easportal/tools/threaddump_mi.jsp

c) 打开网页后选择livingthreads页签,按ctrl+F,搜索BGJOB和业务方法名,找到事务对应的线程,另存为网页保存下来,隔几分钟后重复操作步骤C,保存多次网页;将保存下来的网页用文本编辑器打开,对比线程堆栈内容,如果内容都一致,则说明线程已经卡住;如果内容不一致,说明线程正常执行中;

风险说明

1. 评估确认正在执行中的事务是否线程卡住

2. 终止正在行的后台事务可能会导致业务中断,造成业务数据缺少;

3. 终止正在行的后台事务可能会导致业务重复执行,造成业务数据重复;

三 操作指引

1. 通过sql脚本将执行中任务状态修改为【已失败】;

Select * from t_job_inst where ftitle = '后台事务监控界面任务对应的标题' and fstate = 'Running';

通过上面sql查到任务实例,取fjobinstid;通过id更新状态,避免误改数据;

Update t_job_inst set fstate = 'Failed' where fjobinstid = '上面取到的fjobinstid';

2. 启任务当前执行的服务实例(后台事务监控界面任务对应的执行服务器),如没有重启的话后台事务重跑后会导致数据重复,只有重启服务实例才能终止事务线程


后台事务终止帮助

适用版本:EAS V8.0版本及以上一 用户场景背景介绍:1. 数据库连接异常导致后台事务任务执行线程卡住,事务一直在执行中;2. 业务方法...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息