关闭

工作流Activiti的学习总结(三) activit数据库限制和数据库相关的配置

101人阅读 评论(0) 收藏 举报
分类:

数据库相关的配置:
    在activiti中的持久化框架采用Ibatis3实现。有两种方式定义activiti的数据库。
    1.通过jdbc.properties定义数据库相关的属性:
        jdbcUrl:jdbc url连接字符串. 
        jdbcDriver:数据库驱动 
        jdbcUsername:用户名。
        jdbcPassword: 用户密码
     默认的MyBatis连接池设置基于jdbc.properties文件构建数据源的。以下属性为可选的连接池默认的属性:
 jdbcMaxActiveConnections:在任何时间,连接池中最大的活动连接数.默认为10。      jdbcMaxIdleConnections:连接池中最大的连接池空闲连接数。
jdbcMaxCheckoutTime: 连接池心跳检查毫秒数。默认 20000 (20秒). jdbcMaxWaitTime: This is a low level setting that gives the pool a chance to print a log status and re-attempt the acquisition of a connection in the case that it’s taking unusually long (to avoid failing silently forever if the pool is misconfigured) Default is 20000 (20 seconds). 
在activiti-cfg.jar文件中配置如下:
<?xml version="1.0" encoding="UTF-8"?>

 

<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans.xsd">

 

  <bean id="processEngineConfiguration"class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

 

    <!-- Database configurations -->

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

    <property name="jdbcUrl" value="jdbc:h2:tcp://localhost/activiti" />

    <property name="jdbcDriver" value="org.h2.Driver" />

    <property name="jdbcUsername" value="sa" />

    <property name="jdbcPassword" value="" />

   

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

 

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

   

  </bean>

 

</beans>

采用数据源方式可以如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >

  <property name="driverClassName" value="com.mysql.jdbc.Driver" />

  <property name="url" value="jdbc:mysql://localhost:3306/activiti" />

  <property name="username" value="activiti" />

  <property name="password" value="activiti" />

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

</bean>      

 

<bean id="processEngineConfiguration"class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

  

    <property name="dataSource" ref="dataSource" />

... 
</bean>
以下两个属性最好设置:

databaseType:这个参数并不是必须设置,但是在采用非H2的数据库时候,就是必须的,这个设置在数据库创建和查询时候使用。
databaseSchemaUpdate:在工作流引擎启动和关闭的使用数据库的针对表结构的处理策略。
     默认为false:在工作流引擎启动时检查数据库脚本的版本和activiti library的版本是否一致如果不一致抛出异常信息。

true:在脚本结构发生变化时候,检查表结构是否存在,如果存在则更新,如果不存在则创建。
  create-drop:当工作流引擎被创建时候创建,当工作流引擎关闭时删除表结构信息。

Job executor activation
  JobExecutor是一个管理一系列激活timer和异步消息的线程的组件。在单元测试里可以使用ManagementService.createJobQuery查询线程,使用ManagementService.executeJob执行线程的方法。
  默认情况下JobExecutor在流程引擎启动的时候激活状态。可以通过以下方式关闭。
<property name="jobExecutorActivate" value="false" />

Mail Server配置:
   activiti支持在业务流程中发送电子邮件。如果要发送一个邮件,必须配置一个有效的SMTP邮件服务器配置。

History 配置
   配置如下:
<property name="history" value="audit" />

 

目前支持的数据库和版本(版本采用activiti5.6说明):

Activiti database type

Versions tested

Notes

h2

1.2.132

Default configured database

Mysql

5.1.11

 

Oracle

10.2.0

 

Postgres

8.4

 

db2

DB2 9.7 using db2jcc4

[EXPERIMENTAL]

Mssql

2008 using JDBC jtds-1.2.4

[EXPERIMENTAL]

 

选择不同数据库,如果要运行非H2数据库,通过运行demo setup或者需要自动生成配置文件为不同的数据库。可能需要编辑以下文件:

  •  
    1. 修改setup/build.properties 中db属性设置使用的数据库类型{oracle|mysql|postgres| h2|db2|mssql},activiti中db属性对数据库类型的大小写敏感。
    2. 修改set/build.${db}.propeties,设置jdbc的连接参数信息。

setup/build目录可以使用ant cfg.create自动生成配置文件在setup/build/activiti-cfg.xml和一个setup/build下一个包含activiti-cfg.xml配置文件的activiti-cfg.jar
如果想重新安装demo在其他数据库可以采用如下步骤命令:
1.停止demo setup
 ant demo.stop 
2.清空并重启
ant demo.clean demo.start
备注在数据库升级的时候最好设置<property name="databaseSchemaUpdate" value="true" />,当activiti libraryactiviti数据库schema版本不同步,自动更新,否则将抛出异常。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15938次
    • 积分:636
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:75篇
    • 译文:0篇
    • 评论:0条
    文章分类