多資料庫下activiti的流程定義快取問題
活動例項表中記錄的活動名稱(ACT_HI_ACTINST表的ACT_NAME)竟然是該流程中不存在的活動名稱,
確認了該流程沒有被修改升級過。
後來發現了是activiti快取的問題,我們的產品是支援多公司使用的,各個公司分別使用不同的資料庫,
因此不同公司下activiti生成的流程定義ID有可能重複(ACT_RE_PROCDEF的ID_欄位),例如A公司和B公司都存在名為Proc:1:104的流程。
這時候,activiti的快取機制只會載入其中一個到記憶體中(先使用的先載入),因此就會出現A公司使用了B公司流程的問題。
解決方案:定義流程時,給流程定義ID加上一個公司ID的標識,這樣就能保證全系統唯一。