數據庫配置


數據庫配置

 


 

  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 URL Notes

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM