jBPM4 的数据持久化基于 Hibernate 框架。
1 流程定义与实例运行时数据表
这些表用于保存所有与流程定义相关的资源以及运行中的流程实例数据:
流程定义与实例运行时数据表
表名 | 涉及的类 | 说明 |
---|---|---|
jbpm4_deployment | org.jbpm.pvm.internal.repository.DeploymentImpl | 流程定义的部署信息。 |
jbpm4_deployprop | org.jbpm.pvm.internal.repository.DeploymentProperty | 流程定义的部署详细信息,是 jbpm4_deployment 的子表。 |
jbpm4_lob | org.jbpm.pvm.internal.lob.Lob | 流程定义的相关资源,包括 jPDL XML 配置、图片和用户 Java 类等资源,它们都已二进制格式被存储在这里。 |
jbpm4_job | org.jbpm.pvm.internal.job.JobImpl、org.jbpm.pvm.internal.job.TimerImpl | 异步活动或定时执行的 Job 记录。 |
jbpm4_variable | org.jbpm.pvm.internal.type.Variable | 流程实例变量 |
jbpm4_execution | org.jbpm.pvm.internal.model.ExecutionImpl | 流程实例及执行对象。 |
jbpm4_swimlane | org.jbpm.pvm.internal.task.SwimlaneImpl | 任务泳道,是流程定义的子表。 |
jbpm4_participation | org.jbpm.pvm.internal.task.ParticipationImpl | 任务参与者。 |
jbpm4_task | org.jbpm.pvm.internal.task.TaskImpl | 流程实例的任务记录。 |
以下以 MySQL 为例,来说明表字段的类型。
1.1 jbpm4_deployment
字段名 | 类型 | 说明 |
---|---|---|
DBID_ | bigint(20) | 主键 |
NAME_ | longtext | 名称 |
TIMESTAMP_ | bigint(20) | 时间戳 |
STATE_ | varchar(255) | active:活跃;suspended:被挂起 |
1.2 jbpm4_deployprop
字段名 | 类型 | 说明 |
---|---|---|
DBID_ | bigint(20) | 主键 |
DEPLOYMENT_ | bigint(20) | jbpm4_deployment 的外键 |
OBJNAME_ | varchar(255) | 流程定义名称 |
KEY_ | varchar(255) | 属性名;pdid:流程定义 ID;pdkey:流程定义 KEY;pdversion:流程定义版本号;langid:定义语言版本号 |
STRINGVAL_ | varchar(255) | 属性内容(字符串型) |
LONGVAL_ | bigint(20) | 属性内容(长整型) |
jbpm4_deployprop 示例
1.3 jbpm4_lob
字段名 | 类型 | 说明 |
---|---|---|
DBID_ | bigint(20) | 主键 |
DBVERSION_ | int(11) | 版本号,从 0 开始 |
BLOB_VALUE_ | longblob | 流程定义 XML 文件 |
DEPLOYMENT_ | bigint(20) | jbpm4_deployment 的外键 |
NAME_ | longtext | 流程定义文件相对路径,包含文件名 |
1.4 jbpm4_job
字段名 | 类型 | 说明 |
---|---|---|
DBID_ | bigint(20) | 主键 |
CLASS_ | varchar(255) | - |
DBVERSION_ | int(11) | - |
DUEDATE_ | datetime | job 被执行的截止时间 |
STATE_ | varchar(255) | job 状态:waiting、acquired、error、suspended |
ISEXCLUSIVE_ | bit(1) | 是否已独占的方式执行 |
LOCKOWNER_ | varchar(255) | 锁住这个 job 的执行器名 |
LOCKEXPTIME_ | datetime | job 锁住后最后被释放的时间 |
EXCEPTION_ | longtext | 抛出异常时的错误栈信息 |
RETRIES_ | int(11) | 抛出异常时的重试次数,默认为 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
字段名 | 类型 | 说明 |
---|---|---|
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 流程历史数据表
jBPM4 分离了运行中的流程实例数据与已完成的流程实例数据,从而形成了一系列的流程历史实例表:
表名 | 说明 |
---|---|
jbpm4_hist_procinst | 历史流程实例 |
jbpm4_hist_actinst | 历史流程活动 |
jbpm4_hist_task | 历史流程任务 |
jbpm4_hist_var | 历史流程变量 |
jbpm4_hist_detail | 历史流程实例、活动、任务的明细数据;包含起止时间、平均处理时间和任务注释等内容,可用于效率分析、数据挖掘等领域。 |
3 身份认证数据表
这些表用于任务分派与权限认证功能。
表名 | 说明 |
---|---|
jbpm4_id_user | 用户 |
jbpm4_id_group | 组 |
jbpm4_id_membership | 用户与组之间的关系 |
4 属性数据表
这张表保存着一些初始化数据,比如引擎版本(key = db.version)与 ID 生成器版本(key = next.dbid)等。