jBPM用数据库来存放定义好的流程文件和执行过程中的所用信息, 没有什么可说的, 在正式运行jBPM前我们得把jBPM所用表部署到数据库中.
本系列博客中所用数据库为MySql, 由于jBPM采用hibernate来做持久层处理,别的数据库跟MySql类似.
当然我们得先create一个database,这里在MySQL中新建一个名为"jBPM"的database.
一般来说, 有三种方式来往数据库里部署所用表. 以下是相应总结:
1, 手工部署. 顾名思义, 手工部署是指,手动地把所需表的sql脚本通过source命令(在MySQL)生成到数据库中.
在说具体步骤之前, 先来看为什么要这么做. 应该说在正式工作中很少有必要这么建表. 不过考虑到这样的手工建表有以下几个好处, 于是在开始阶段最好还是能体会下手工建表的步骤:
- 有助于帮助我们从表间关系层面来理解jBPM的重要组件. 不用多说, 这些表是我们研究jBPM的第一手资料. 这里顺便说下, 当时不知道jBPM里可以看到现成的表生成语句,我用了一种非常规手段"截"下来建表语句.
- 以此为实例来看Hibernate是怎么来生成建表语句的.应该说, 工作中很少用到Hibernate生成建表语句的功能,但心里一直想看下, 这里倒是提供了一个机会.
- 以此机会来体验研究下ant脚本. 由于jBPM大量地用到了ant,这里通过这么一相对简单的实例可以提前热热身.
- 最后一个相对实际一点的原因, 当时费了不少事,搞明白了,若不记下来,过段时间后就忘了.
好了, 有了上面的思想准备, 我们下面来说手工建表的具体步骤:
- 利用ant命令生成相应建表语句. 起始时, jBPM并没有给每一个常用数据库生成建表语句, 我们得用ant命令自己生成. 这里以MySQL为例来说明.
- 修改JBPM_HOME/jbpm-db下的build.properties文件中的jbpm.3.location,使其指向"../jbpm", 即jbpm.3.location=../jbpm
- 确
保在是jBPM(三)
中提到的那个MockConnection已经实现了Connection接口下的方法.否则运行ant命令时会报错.这个文件在
JBPM_HOME\jbpm\src\java.jbpm.test\org\jbpm\persistence\db下.
- 在JBPM_HOME/jbpm-db目录下运行"ant mysql.scripts"命令. 这时还会报错. 报错大意为"请使用 -source 5或更高版本以启用泛型",
原来是ant默认是运行JDK1.4来运行. 而MockConnection里加了泛型. 但怎么来让ant以JDK1.5来运行呢?
直接在"ant mysql.scripts"命令后加" -source 5"不行. 先不管这个了,
把那个泛型<T>去掉.这样再执行ant mysql.scripts就成功了.
这样我们去JBPM_HOME\jbpm-db\build\mysql\scripts目录下,就能看到刚刚生成的建表语句.
- 启
动MySQL,利用"use database jBPM"命令进入上面新建的database中, 执行source
JBPM_HOME\jbpm-db\build\mysql\scripts\mysql.create.sql. 唰唰唰一段时间后,
通过"show tables"我们看到一共有33个表生成了. 大功告成!
这篇中写了不少了, 下篇将介绍后两种: 如何利用ant命令来自动建表,通过Java代码自动建表.
分享到:
相关推荐
JBPM数据库表说明 2 1 流程配置类数据库表: 2 1.1 JBPM_PROCESSDEFINITION:流程模版表 2 1.2 JBPM_NODE:流程节点表 2 1.3 JBPM_TRANSITION:流程迁移表 3 1.4 JBPM_ACTION:流程动作表 4 1.5 JBPM_EVENT:...
jbpm 需要持久化流程部署、流程实例、任务、用户认证等信息,于是 jbpm 设计了一系列的数据库表来存储这些信息。在 jbpm 4.4 中,主要使用的数据库表有: jbpm4_deployment jbpm4_deployment 表用于存储流程部署的...
1. JBPM_PROCESSDEFINITION表 JBPM_PROCESSDEFINITION表是jbpm数据库的核心表之一,它存储了流程定义的信息。该表的字段包括: * ID_:流程定义的唯一标识 * NAME_:流程定义的名称 * VERSION_:流程定义的版本号 ...
1. **流程配置类数据库表**: - **JBPM_ACTION**: 存储流程中的动作信息,如任务分配、通知等。 - **JBPM_DECISIONCONDITIONS**: 用于定义决策条件,决定流程执行的路径。 - **JBPM_DELEGATION**: 管理流程中的...
JBPM的数据库表结构设计得相当全面和细致,涵盖了从流程定义到执行过程中的各个方面。通过对这些表结构的理解,不仅可以帮助开发者更好地了解JBPM的工作原理,还能在实际项目开发中更高效地进行流程设计和优化。此外...
jbpm jbpm4.3.jar DDDDDDDD
本文将详细介绍jbpm数据库中的主要表及其相互关系,以便理解jbpm如何存储和管理流程信息。 **1. JBPM_PROCESSDEFINITION** 这是流程模板表,存储了jbpm流程的定义信息。表中的外键与其他表关联,如: - `FK_PROCST_...
1. **JBPM4_DEPLOYMENT**:这是流程定义表,记录了部署到jbpm中的所有流程定义。DBID字段作为主键标识每个流程模版,NAME_CLOB字段存储流程模版的名称,TIMESTAMP字段记录部署的时间戳,STATE字段表示流程模版的可用...
3. **所用到的表** - **资源库与运行时表结构**:用于存储流程定义、部署信息等。 - **历史数据表**:记录流程实例的历史信息,如活动实例、变量、过程实例等。 - **身份认证表结构**:用于管理用户、组和权限,...
本文将深入解析JBPM的数据结构,特别是涉及到的数据库表及其详细字段,以及JBPM如何生成ID。 1. **JBPM_PROCESSDEFINITION** 表: - ID_:此字段是流程模版的唯一标识,用于区分不同的流程定义。 - NAME_:存储...
理解这些数据库表的结构和字段,有助于开发者更好地设计、部署和调试基于JBPM的业务流程,进一步优化流程执行效率,提高系统的灵活性和可维护性。同时,对于系统管理员而言,也可以通过对这些表的查询和分析,监控和...
(2) 修改jbpm配置:打开`jbpm-config.xml`或`standalone.xml`(根据您的JBPM部署环境),找到数据库连接相关的配置,如以下示例: ```xml <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name=...
其强大的功能背后是基于数据库的存储机制,涉及到多个核心表来管理和跟踪工作流程实例。接下来,我们将深入探讨JBPM数据库中的关键表及其作用。 1. **TaskInstance表**:这个表存储了所有任务实例的信息,包括任务...
jbpm3.2表说明 很详细 1.1 JBPM_PROCESSDEFINITION:流程模版表 关系表 外键存在表 外键名称 外键存在表字段 存在原因 可能 关系 JBPM_NODE JBPM_NODE FK_PROCST_SBPRCDEF SUBPROCESSDEFINITION_ 子流程的...
2. **部署流程**:设计完成后,将流程模型导出为.bpel或.jpdl文件,然后通过jbPM API或命令行工具部署到服务器。 3. **启动流程**:编写Java代码或者使用API来启动一个流程实例,通常需要传入一些初始参数。 4. **...
**jbpm数据库表说明** jbpm(Java Business Process Management)是一个开源的工作流管理系统,它用于设计、执行和管理业务流程。在jbpm中,数据库扮演着至关重要的角色,存储了流程实例、任务、变量等核心信息。...
在SQL Server环境下,为了使JBPM能够存储和管理其运行时数据,如部署信息、执行状态、历史记录等,需要创建一系列特定的数据库表。以下是对给定部分的详细解读和扩展: ### 1. JBPM4_DEPLOYMENT 表 该表用于存储...
### jbpm4.3数据库表结构详解 #### 1. JBPM4_DEPLOYMENT - 流程定义表 此表存储了所有部署到系统中的流程模板的信息。每一行代表一个独立的流程模板。 - **DBID_**: `NUMBER(19)` 类型,主键,非空。该字段唯一...
以下是对JBPM数据库表的详细解释: 1. **JBPM_PROCESSDEFINITION**: - ID_:流程模版的唯一标识。 - NAME_:流程模版的名称。 - VERSION_:流程模版的版本,用于区分相同流程的不同版本。 - ...