【EAS工作流】工作流常见问题之流程大面积不流转/阻塞/不进流程原创
金蝶云社区-汪伟康
汪伟康
9人赞赏了该文章 598次浏览 未经作者许可,禁止转载编辑于2023年12月04日 09:53:55
  • 问题现象:流程大面积不流转/阻塞/单据提交不进流程


  • 问题原因分析:流程的流转,创建都是通过后台事务异步调度执行实现,那么该类问题原因一般都是对应流程的后台事务没有按时执行。没有按时执行的原因一般就是单实例上工作流后台事务线程达到默认并行上限(6个),即某个服务实例上存在6个执行中的工作流后台事务,则后面已就绪的工作流后台事务就排队等待,即造成上述问题现象。


  • 原因排查

1、EAS客户端-【后台事务监控】-搜索 标题 类似 WF 并且状态等于执行中

案例如下图,可知server2存在6个执行中的后台事务,则server2工作流存在阻塞。

image.png


2、通过EAS自带的服务端线程堆栈查看网页来查看对应实例正在运行的线程(针对该问题,我们只看后台事务线程)

2.1、建议远程到EAS服务器上,因为服务器上的各实例http端口一般没有对外开放。

2.2、打开服务器上的浏览器,访问地址:

http://127.0.0.1:集群控制器的http端口/easportal/tools/threaddump_mi.jsp

2.3、此时有些版本可能会跳转到登录首页,需要先登录,随便登录任意账号即可。

2.4、如下图,想看哪个实例当前执行中的线程堆栈情况就选择那个实例

案例如下:image.png2.5、最后一步,手动(ctrl+s)保存当前网页,间隔5s以上再保存一次,可反复操作3-4次,将保存下来的网页命好名放在一起压缩然后发给总部老师分析原因。



-------------------

其他:

  • 常见线程阻塞原因有

1、流程中存在调用业务方法或者工作流脚本执行update语句,由于并发量较大,数据库对应表可能产生行锁甚至死锁导致等待


2、流程中存在调用业务方法或者工作流脚本给第三方系统发送网络请求(http/tcp协议等),第三方系统服务端一直没有响应导致等待


3、流程中存在大量循环,导致循环创建活动实例并创建后台事务



赞 9