数据库配置

数据库配置


  1. 第一种方式:是定义数据库的JDBC属性:
  2. 第二种方式:使用DataSource
  3. 支持的数据库

有两种方式来配置Activiti引擎将使用的数据库。

第一种方式:是定义数据库的JDBC属性:

  • jdbcUrl:数据库的JDBC URL

  • jdbcDriver:数据库的驱动类

  • jdbcUsername:用户名

  • jdbcPassword:密码

基于提供的JDBC属性构建的数据源将具有默认的MyBatis连接池设置。可以选择设置以下属性来调整连接池(取自MyBatis文档):

  • jdbcMaxActiveConnections:连接池在任何时间最多可以包含的活动连接数。缺省值是10。

  • jdbcMaxIdleConnections:连接池在任何时间最多可以包含的空闲连接数。

  • jdbcMaxCheckoutTime:连接被取出使用的最长时间,超过时间会被强制回收默认值是20000(20秒)。

  • jdbcMaxWaitTime::这是一个底层配置,让连接池可以在长时间无法获得连接时,打印一条日志,并重新尝试获取一个连接。Default是20000(20秒)。

示例:

<property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" />
<property name="jdbcDriver" value="org.h2.Driver" />
<property name="jdbcUsername" value="sa" />
<property name="jdbcPassword" value="" />

第二种方式:使用DataSource

我们的基准测试表明,在处理大量并发请求时,MyBatis连接池不是最有效或最有弹性的。因此,建议向我们提供一个javax.sql.DataSource实现并将其注入到流程引擎配置中(例如DBCP,C3P0,Hikari,Tomcat连接池等):

<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" />
    ...

无论您使用的是JDBC还是数据源方法,都可以设置以下属性:

  • databaseType:通常不需要指定该属性,因为它是从数据库连接元数据中自动分析的。只应在自动检测失败的情况下指定。可能的值:{h2,mysql,oracle,postgres,mssql,db2}。此设置将决定使用哪些创建/删除脚本和查询。请参阅支持的数据库部分用于哪些类型支持的概述。

  • databaseSchemaUpdate:允许设置策略来处理流程引擎启动和关闭时的数据库模式。

    • false (默认值):在创建流程引擎时DB schema的版本,并在版本不匹配时引发异常。

    • true:在构建流程引擎时,将执行检查,并在必要时执行DB schema的更新。如果DB schema不存在,则会创建。

    • create-drop:在创建流程引擎时DB schema,并在流程引擎关闭时DB schema。

支持的数据库:

数据库类型JDBC URLNotes

h2

jdbc:h2:tcp://localhost/activiti

Default configured database

mysql

jdbc:mysql://localhost:3306/activiti?autoReconnect=true

Tested using mysql-connector-java database driver

oracle

jdbc:oracle:thin:@localhost:1521:xe

 

postgres

jdbc:postgresql://localhost:5432/activiti

 

db2

jdbc:db2://localhost:50000/activiti

 

mssql

jdbc:sqlserver://localhost:1433;databaseName=activiti (jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver) OR jdbc:jtds:sqlserver://localhost:1433/activiti (jdbc.driver=net.sourceforge.jtds.jdbc.Driver)

Tested using Microsoft JDBC Driver 4.0 (sqljdbc4.jar) and JTDS Driver

原文地址:https://www.cnblogs.com/jimboi/p/8469026.html