上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

首先介绍一下activiti:

 

Activiti 其核心是 BPMN 2.0 的流程引擎。BPMN 是目前被各 BPM 厂商广泛接受的 BPM 标准,全称为 Business Process Model and Notation,由 OMG 组织进行维护,2011 年 1 月份发布了其 2.0 的正式版。BPMN 2.0 对比于第一个版本,其最重要的变化在于其定义了流程的元模型和执行语义,即它自己解决了存储、交换和执行的问题。这代表着 BPMN 2.0 流程定义模型不仅仅可以在任何兼容 BPMN 2.0 的引擎中执行,而且也可以在图形编辑器间交换。作为一个标准,BPMN 2.0 统一了工作流社区。

 

1

Activiti 是由 jBPM 的创建者 Tom Baeyens 离开 JBoss 之后建立的项目,构建在开发 jBPM 版本 1 到 4 时积累的多年经验的基础之上,旨在创建下一代的 BPM 解决方案。同时 Activiti 选择了 Apache 许可,一方面是希望 Activiti 能有更长久的生命力,因为它不受任何个人或是公司的控制而是属于整个社区,另一方面更是希望这个宽松的许可能够让 Activiti BPM 引擎和 BPMN2.0 被更广泛的采纳、使用和商业化。

2

 对于 Java 开发者来说,Activiti 的首席架构师 Tom Baeyens 曾提到,Activiti 的首个目标就是要获得开发者的青睐。首先它在使用时极为方便,只是个 jar 文件,使用时仅需要将其放在类路径中,当然,Activiti 也可以作为独立服务器的方式使用;同时 Activiti 提供了很多 BPM 高级工具,其中还包括开发了协作工具,使得开发人员、业务人员和运维人员能够更好的协同工作。

我们再来看看客户自己的配置,基本上把访问达梦数据库的部分都修改到位了:

 

整体项目采用的 springmvc+spring+hibernate 框架进行搭建,单纯的以上配置可以使用达梦数据库,启动没有问题,但是由于项目中需要使用工作流,采用Activiti与spring进行集成,Activiti需要进行数据库配置,Activiti,我们测试并不支持DM数据库,配置以后无法启动,不能进行Activiti工作流的初始工 作,启动项目直接报错。

 

 具体配置文件以下 

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

 

再来看看客户的报错信息:

 

上海腾科教育干货分享之达梦数据库课程如何让Activiti支持DM7

 

可以看到数据库已经连上了,报了无效的表或视图名,登录数据库查看发现没有这个表,

 

很显然表没建上或者建表的脚本报错了,通过sql日志观察发现根本没有执行建表操作,

 

所以可以判断出这个地方和达梦数据库没有关系,和activiti的配置有关,activiti第一次启动时才需要建表

 

问一下度娘就知道答案了:

 

<property name="databaseSchemaUpdate" value="false" />

--把这个属性中false改成true就可以建表了

<property name="databaseSchemaUpdate" value="true" />

 

大家可以看到,activiti默认是不支持达梦的,所以我们选择了oracle数据库类型来兼容达梦,上面的问题解决后,建表报错了:

 

建表脚本里面用到了nvarchar2这种类型,达梦不支持,咋办?

 

其实很简单,我们打开activiti的jar包,找到oracle的建表脚本,全部改为varchar,改完了把jar包替换掉即可。