在目前的企業(yè)級系統(tǒng)中,業(yè)務(wù)流程的管理往往是至關(guān)重要的。而Activiti就是針對業(yè)務(wù)流程管理的開源框架。它提供了強大的流程引擎和工作流引擎,能夠方便地與其他系統(tǒng)集成,實現(xiàn)全面的業(yè)務(wù)流程管理。但是,如果我們需要使用Oracle版本的Activiti,會存在一些問題和需要注意的點。
首先,需要注意的是,在使用Oracle版本的Activiti時,我們需要采用符合Oracle規(guī)范的JDBC驅(qū)動程序。一般來說,Oracle官方提供的JDBC驅(qū)動程序是最穩(wěn)定和最可靠的。在使用過程中,我們應(yīng)該注意官方的JDBC驅(qū)動程序版本是否與我們所選用的Activiti版本相匹配。例如,在Oracle 11g中,我們可以使用ojdbc6.jar或ojdbc7.jar的JDBC驅(qū)動程序,而在Oracle 12c中,我們應(yīng)該使用ojdbc7.jar或ojdbc8.jar。
另外,在使用Activiti時,我們需要設(shè)置數(shù)據(jù)庫方言(dialect)。對于Oracle數(shù)據(jù)庫而言,我們需要指定的數(shù)據(jù)庫方言是“org.activiti.engine.impl.db.oracle.OracleDialect”。我們可以在Activiti的配置文件中設(shè)置該參數(shù),例如:
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> <property name="dataSource" ref="dataSource" /> <property name="databaseSchemaUpdate" value="true" /> <property name="databaseType" value="oracle" /> <property name="databaseSchema" value="ACTIVITI" /> <property name="jdbcDriver" value="oracle.jdbc.driver.OracleDriver" /> <property name="jdbcUrl" value="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" /> <property name="jdbcUsername" value="activiti" /> <property name="jdbcPassword" value="activiti" /> <property name="databaseTablePrefix" value="ACT_" /> <property name="jobExecutorActivate" value="true" /> <property name="historyLevel" value="full" /> <property name="customMybatisMappers"> <list> <value>classpath*:org/activiti/custom/mappers/oracle/*.xml</value> </list> </property> <property name="customMybatisXMLMappers"> <list> <value>classpath:mybatis/mappers/oracle/*.xml</value> </list> </property> <property name="databaseDialect" value="org.activiti.engine.impl.db.oracle.OracleDialect" /> <!-- other properties --> </bean>另外,Oracle自身的特性也需要我們在使用Activiti時注意。例如,Oracle的觸發(fā)器(trigger)在Activiti中會引起沖突。我們需要在Activiti的創(chuàng)建表時將觸發(fā)器禁用。例如,在Oracle 11g中,我們可以使用以下SQL語句禁用觸發(fā)器:
alter trigger {trigger_name} disable;值得注意的是,如果我們使用了Oracle的高級功能(如存儲過程或函數(shù)),我們需要在Activiti中進(jìn)行相應(yīng)的設(shè)置以確保功能正常運行。 總體來說,Activiti在Oracle數(shù)據(jù)庫中的表現(xiàn)還是比較良好的。只要我們注意一些配置細(xì)節(jié)和遵循Oracle的規(guī)范,就能夠順利地使用Activiti來管理我們的業(yè)務(wù)流程。