多數(shù)據(jù)庫(kù)下activiti的流程定義緩存問(wèn)題
來(lái)源:程序員人生 發(fā)布時(shí)間:2014-11-18 08:27:12 閱讀次數(shù):2853次
我們使用activiti(5.14版本)作為流程引擎,今天在產(chǎn)品中發(fā)現(xiàn)1個(gè)問(wèn)題,某流程的審批記錄中,
活動(dòng)實(shí)例表中記錄的活動(dòng)名稱(ACT_HI_ACTINST表的ACT_NAME)居然是該流程中不存在的活動(dòng)名稱,
確認(rèn)了該流程沒(méi)有被修改升級(jí)過(guò)。
后來(lái)發(fā)現(xiàn)了是activiti緩存的問(wèn)題,我們的產(chǎn)品是支持多公司使用的,各個(gè)公司分別使用不同的http://www.vxbq.cn/db/,
因此不同公司下activiti生成的流程定義ID有可能重復(fù)(ACT_RE_PROCDEF的ID_字段),例如A公司和B公司都存在名為Proc:1:104的流程。
這時(shí)候候,activiti的緩存機(jī)制只會(huì)加載其中1個(gè)到內(nèi)存中(先使用的先加載),因此就會(huì)出現(xiàn)A公司使用了B公司流程的問(wèn)題。
解決方案:定義流程時(shí),給流程定義ID加上1個(gè)公司ID的標(biāo)識(shí),這樣就可以保證全系統(tǒng)唯1。
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)