jBPM4 的數(shù)據(jù)持久化基于 Hibernate 框架有送。
1 流程定義與實(shí)例運(yùn)行時(shí)數(shù)據(jù)表
這些表用于保存所有與流程定義相關(guān)的資源以及運(yùn)行中的流程實(shí)例數(shù)據(jù):
流程定義與實(shí)例運(yùn)行時(shí)數(shù)據(jù)表
表名 | 涉及的類 | 說(shuō)明 |
---|---|---|
jbpm4_deployment | org.jbpm.pvm.internal.repository.DeploymentImpl | 流程定義的部署信息淌喻。 |
jbpm4_deployprop | org.jbpm.pvm.internal.repository.DeploymentProperty | 流程定義的部署詳細(xì)信息,是 jbpm4_deployment 的子表雀摘。 |
jbpm4_lob | org.jbpm.pvm.internal.lob.Lob | 流程定義的相關(guān)資源裸删,包括 jPDL XML 配置、圖片和用戶 Java 類等資源阵赠,它們都已二進(jìn)制格式被存儲(chǔ)在這里涯塔。 |
jbpm4_job | org.jbpm.pvm.internal.job.JobImpl、org.jbpm.pvm.internal.job.TimerImpl | 異步活動(dòng)或定時(shí)執(zhí)行的 Job 記錄清蚀。 |
jbpm4_variable | org.jbpm.pvm.internal.type.Variable | 流程實(shí)例變量 |
jbpm4_execution | org.jbpm.pvm.internal.model.ExecutionImpl | 流程實(shí)例及執(zhí)行對(duì)象匕荸。 |
jbpm4_swimlane | org.jbpm.pvm.internal.task.SwimlaneImpl | 任務(wù)泳道,是流程定義的子表枷邪。 |
jbpm4_participation | org.jbpm.pvm.internal.task.ParticipationImpl | 任務(wù)參與者榛搔。 |
jbpm4_task | org.jbpm.pvm.internal.task.TaskImpl | 流程實(shí)例的任務(wù)記錄。 |
以下以 MySQL 為例东揣,來(lái)說(shuō)明表字段的類型践惑。
1.1 jbpm4_deployment
字段名 | 類型 | 說(shuō)明 |
---|---|---|
DBID_ | bigint(20) | 主鍵 |
NAME_ | longtext | 名稱 |
TIMESTAMP_ | bigint(20) | 時(shí)間戳 |
STATE_ | varchar(255) | active:活躍;suspended:被掛起 |
1.2 jbpm4_deployprop
字段名 | 類型 | 說(shuō)明 |
---|---|---|
DBID_ | bigint(20) | 主鍵 |
DEPLOYMENT_ | bigint(20) | jbpm4_deployment 的外鍵 |
OBJNAME_ | varchar(255) | 流程定義名稱 |
KEY_ | varchar(255) | 屬性名嘶卧;pdid:流程定義 ID尔觉;pdkey:流程定義 KEY;pdversion:流程定義版本號(hào)芥吟;langid:定義語(yǔ)言版本號(hào) |
STRINGVAL_ | varchar(255) | 屬性內(nèi)容(字符串型) |
LONGVAL_ | bigint(20) | 屬性內(nèi)容(長(zhǎng)整型) |
jbpm4_deployprop 示例
1.3 jbpm4_lob
字段名 | 類型 | 說(shuō)明 |
---|---|---|
DBID_ | bigint(20) | 主鍵 |
DBVERSION_ | int(11) | 版本號(hào)侦铜,從 0 開始 |
BLOB_VALUE_ | longblob | 流程定義 XML 文件 |
DEPLOYMENT_ | bigint(20) | jbpm4_deployment 的外鍵 |
NAME_ | longtext | 流程定義文件相對(duì)路徑,包含文件名 |
1.4 jbpm4_job
字段名 | 類型 | 說(shuō)明 |
---|---|---|
DBID_ | bigint(20) | 主鍵 |
CLASS_ | varchar(255) | - |
DBVERSION_ | int(11) | - |
DUEDATE_ | datetime | job 被執(zhí)行的截止時(shí)間 |
STATE_ | varchar(255) | job 狀態(tài):waiting钟鸵、acquired钉稍、error、suspended |
ISEXCLUSIVE_ | bit(1) | 是否已獨(dú)占的方式執(zhí)行 |
LOCKOWNER_ | varchar(255) | 鎖住這個(gè) job 的執(zhí)行器名 |
LOCKEXPTIME_ | datetime | job 鎖住后最后被釋放的時(shí)間 |
EXCEPTION_ | longtext | 拋出異常時(shí)的錯(cuò)誤棧信息 |
RETRIES_ | int(11) | 拋出異常時(shí)的重試次數(shù)棺耍,默認(rèn)為 3 次 |
PROCESSINSTANCE_ | bigint(20) | - |
EXECUTION_ | bigint(20) | - |
CFG_ | bigint(20) | jbpm4_lob 的外鍵 |
SIGNAL_ | varchar(255) | - |
EVENT_ | varchar(255) | - |
REPEAT_ | varchar(255) | - |
1.5 jbpm4_variable
字段名 | 類型 | 說(shuō)明 |
---|---|---|
DBID_ | bigint(20) | 主鍵 |
CLASS_ | varchar(255) | - |
DBVERSION_ | int(11) | - |
KEY_ | varchar(255) | 變量名 |
CONVERTER_ | varchar(255) | - |
HIST_ | bit(1) | - |
EXECUTION_ | bigint(20) | jbpm4_execution 外鍵 |
TASK_ | bigint(20) | jbpm4_task 外鍵 |
LOB_ | bigint(20) | jbpm4_lob 外鍵 |
DATE_VALUE_ | datetime | 日期型的變量值 |
DOUBLE_VALUE_ | double | DOUBLE 型的變量值 |
CLASSNAME_ | varchar(255) | - |
LONG_VALUE_ | bigint(20) | LONG 型的變量值 |
STRING_VALUE_ | varchar(255) | 字符串型的變量值 |
TEXT_VALUE_ | longtext | 大字段型的變量值 |
EXESYS_ | bigint(20) | jbpm4_execution 外鍵(已被棄用) |
2 流程歷史數(shù)據(jù)表
jBPM4 分離了運(yùn)行中的流程實(shí)例數(shù)據(jù)與已完成的流程實(shí)例數(shù)據(jù)嫁盲,從而形成了一系列的流程歷史實(shí)例表:
表名 | 說(shuō)明 |
---|---|
jbpm4_hist_procinst | 歷史流程實(shí)例 |
jbpm4_hist_actinst | 歷史流程活動(dòng) |
jbpm4_hist_task | 歷史流程任務(wù) |
jbpm4_hist_var | 歷史流程變量 |
jbpm4_hist_detail | 歷史流程實(shí)例、活動(dòng)烈掠、任務(wù)的明細(xì)數(shù)據(jù)羞秤;包含起止時(shí)間、平均處理時(shí)間和任務(wù)注釋等內(nèi)容左敌,可用于效率分析瘾蛋、數(shù)據(jù)挖掘等領(lǐng)域。 |
3 身份認(rèn)證數(shù)據(jù)表
這些表用于任務(wù)分派與權(quán)限認(rèn)證功能矫限。
表名 | 說(shuō)明 |
---|---|
jbpm4_id_user | 用戶 |
jbpm4_id_group | 組 |
jbpm4_id_membership | 用戶與組之間的關(guān)系 |
4 屬性數(shù)據(jù)表
這張表保存著一些初始化數(shù)據(jù)哺哼,比如引擎版本(key = db.version)與 ID 生成器版本(key = next.dbid)等佩抹。