首页 > 代码库 > 多数据库下activiti的流程定义缓存问题
多数据库下activiti的流程定义缓存问题
我们使用activiti(5.14版本)作为流程引擎,今天在产品中发现一个问题,某流程的审批记录中,
活动实例表中记录的活动名称(ACT_HI_ACTINST表的ACT_NAME)竟然是该流程中不存在的活动名称,
确认了该流程没有被修改升级过。
后来发现了是activiti缓存的问题,我们的产品是支持多公司使用的,各个公司分别使用不同的数据库,
因此不同公司下activiti生成的流程定义ID有可能重复(ACT_RE_PROCDEF的ID_字段),例如A公司和B公司都存在名为Proc:1:104的流程。
这时候,activiti的缓存机制只会加载其中一个到内存中(先使用的先加载),因此就会出现A公司使用了B公司流程的问题。
解决方案:定义流程时,给流程定义ID加上一个公司ID的标识,这样就能保证全系统唯一。
活动实例表中记录的活动名称(ACT_HI_ACTINST表的ACT_NAME)竟然是该流程中不存在的活动名称,
确认了该流程没有被修改升级过。
后来发现了是activiti缓存的问题,我们的产品是支持多公司使用的,各个公司分别使用不同的数据库,
因此不同公司下activiti生成的流程定义ID有可能重复(ACT_RE_PROCDEF的ID_字段),例如A公司和B公司都存在名为Proc:1:104的流程。
这时候,activiti的缓存机制只会加载其中一个到内存中(先使用的先加载),因此就会出现A公司使用了B公司流程的问题。
解决方案:定义流程时,给流程定义ID加上一个公司ID的标识,这样就能保证全系统唯一。
多数据库下activiti的流程定义缓存问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。