欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI
欢迎使用普元文档库
【问题描述】
业务上有一个操作叫做封发,操作为创建与本流程不相关的流程,并为流程第一环节指定参与者,然后启动流程。目前出现的问题是在一次启动多个流程的前提下,在刚启动完服务器后调用该操作有很大可能性失败,在第一次失败后再次调用则不会出现该问题,失败原因是死锁,wfprocessinstattr表插入数据失败(数据库为mysql5.6),以前遇到过类似问题,当时的解决方案是修改数据库隔离级别为read committed
【解答】
产品支持数据库最高隔离级别为read-committed. Oracle,DB2 等数据库默认隔离级别都是类似read-committed的级别,产品经过严格测试并无问题,在其他客户系统中也都是这么使用mysql数据库默认高了一个级别,BPS产品本身在测试MySQL是采用的也是read-committed的级别, 产品中关于这部分的代码先update再insert 已是最优写法,无优化空间.