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

时间:2024.4.20

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

数据库相关的配置:
在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说明):

选择不同数据库,如果要运行非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版本不同步,自动更新,否则将抛出异常。


第二篇:数据库 学习总结


数据库学习总结

XX班 姓名 学号

摘要:在当今信息化的社会里,数据库可以说已经融入到我们生活的方方面面中,如交通运输、银行金融、工商企业等等。只要有大量的数据要管理或者需要有大量数据支持的工作,都要使用到数据库,它为我们的生活带来了便捷。 关键词:数据库,功能、SQL Server的特点

在学习《数据库原理及应用》这门课之前,就和课本上提到的一个观点一样,认为它只是存放数据的仓库而已,但是现在我深深体会到这个观点是多么的片面。数据库是长期存储在计算机内,有组织、可共享的大量的数据集合,前者只能表达它的一方面而已。

数据库技术发展到今天已经是一门非常成熟的技术,它的技术水平、应用水平多比初始时都有了很大的改变,但是它的最基本的特征却没有变,概括起来有以下几个方面:

第一点:数据库是相互关联的的数据集合;即在数据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的关系。

第二点:数据库用综合的方法组织数据,保证尽可能高的访问效率;即根据不同的需要按不同的方法组织数据,例如顺序组织方法、索引组织方法、倒排数据组织方法等。

第三点:数据库具有较小的数据冗余,可供多个用户共享;即通过共享共用的数据,降低数据的冗余度,这也能保证数据的一致性。

第四点:数据库具有较高的数据独立性;即令数据的组织和存储方法与应用程序互不依赖,降低应用程序的开发代价和维护代价。

第五点:数据库能够保证数据的安全、可靠;即拥有(1)、安全控制机制,这可以有效地防止数据库中数据被非法使用或非法修改;(2)、完整的备份和恢复机制,这能保证当数据遭到破坏时(软件或硬件故障引起的),能立刻将数据完全恢复,从而保证系统能持续、可靠地运行。

第六点:数据库允许并发地使用,能有效、及时地处理数据,并能保证数据的一致性和完整性;即当多个用户同时使用相同的数据时,数据库能够协调一致,保证不发生冲突和矛盾。

那么对于上面数据库的各种功能和特性是如何实现的呢?当然它不是数据库中的数据固有的,是靠管理或支持数据库的系统软件——数据库管理系统(DataBase Management System)提供的。下面我将结合我所学习的内容,谈谈关于数据库管理系统——Mircrosoft SQL Server。

Mircrosoft SQL Server是一个高性能的、多用户的关系型数据库管理系统,它专为客户/服务器计算环境设计,它提供的内置数据复制功能、强大的管理工具和开放式的系统体系结构为基于事物的企业级信息管理方案提供了一个卓越的平台。

首先作为一个数据库管理系统,Mircrosoft SQL Server应该具备如下功能:

1、数据库定义功能:可以定义数据库的结构和数据库的存储结构,可以定义数据库中数据之间的联系,可以定义数据的完整性约束条件和保证完整性的触发机制等;

2、数据库操作功能:可以完成对数据库中数据的操作,可以装入、删除、修改数据,可以重新组织数据库的存储结构,可以完成数据库的备份和恢复等操作;

3、数据库的查询功能:可以以各种方式提供灵活的查询功能,使用户可以方便地使用数据库中的数据;

4、数据库的控制功能:可以完成对数据库的安全性控制、完整性控制、多用户环境下的并发控制等各方面的控制;

5、数据库的通信功能:在分布式数据库或是提供网络操作功能的数据库中还必须提供数据库的通信功能。

其次是Mircrosoft SQL Server中系统数据库的作用,每个SQL Server实例包括四个系统数据库(master、model、tempdb和msdb)以及一个或多个用户数据库。下面是关于四个系统数据库的介绍:

1、master数据库:用于存储SQL Server系统的所有系统级信息,包括所有的其它数据库的信息、所有数据库注册用户的信息以及系统配置设置等。

2、tempdb数据库:用以保存所有的临时表和临时存储过程,还可以满足任何其它的临时存储要求,例如存储SQL Server生成的工作表。

3、model数据库:它是一个模板,当使用CREATE DATABASE命令建立新的数据库时,新的数据库的一部分总是通过复制model数据库中的内容创建,剩余部分由空页填充。

4、msdb数据库:用于SQL Server代理程序调度报警和作业等系统操作。 同时在安装SQL Server时,还建立了一个pubs数据库,这是一个用户数据库,是一个可以用于练习的示例数据库。在建立数据库时,每个数据库至少有两个文件:一个主文件(存储数据库的启动信息、用户数据和系统表,以.mdf为扩展名)和一个事物日志文件(用来保存恢复数据库的日志信息,以.ldf为扩展名)。

接下来是SQL Server的数据库结构:

在SQL Server数据库中,数据被组织为用户可以看得见的逻辑组件,主要包括基本表、视图、存储过程、触发器和用户等。SQL Server在发出CREATE DATABASE命令建立数据库时,会同时发出建立操作系统文件、申请物理存储空间的请求;当CREATE DATABASE命令成功执行后,在物理上和逻辑上都建立了一个新的数据库。这就可以在数据库库中建立各种用户所需的逻辑组件,如基本表、视图等。

然后是Mircrosoft SQL Server管理中的几个特点:

1、数据库镜像:通过数据库镜像,将自动失效转移建立到一个待用服务器上增强SQL服务器系统的可用性。

2、在线检索操作:即在指数数据定义语句(DDL)执行期间,允许对基地表格或集簇索引数据和任何相关的检索,进行同步修改。例如,当一个集簇索引正在重建时,可以对基低数据继续进行更新、查询。

3、快速回复:新的、速度更快的恢复选项可以改进SQL服务器数据库的可用性,管理人员将能够在事物日志向前滚动之后,重新连接到正在恢复的数据库。

4、快照隔离:通过快照隔离,使用者能够使用与传统一致的视野观看数据库,存取最后执行的一行数据,这也为服务器提供了更大的可升级性。

5、专门的管理员连接:即即使在一个服务器被锁住,或者因为其他原因不能使用时,管理员可以通过这个连接,接通这个正在运行的服务器。这一功能能让管理员,通过操作诊断或Transact-SQL指令,找到并解决发现的问题。

最后是关于学习过程中的体会,数据库能给我们生活带来便捷,但它的学习肯定不会那么一帆风顺,总会遇到问题。我想解决问题最好的方法是理解它,从多方面理解、掌握它。

首先是对概念的理解,例如关于游标的使用,最基本的操作语句如定义游标:DECLARE CURSOR、打开游标:OPEN、从游标中读记录:FETCH、关闭游标:CLOSE、释放游标:DEALLOCATE、执行:EXEC等,如果都不明白这些语句含义,如何掌握它?其次是对数据结构的理解,数据库就象房子,也有地基、承重墙(框架)、门、窗、内部家俱饰品等,对应到数据库里,一样可以找到相应的东东。地基就象数据库的系统表,不论以后要盖多少房子,多高多大的房子,都要在地基上开始;框架(承重墙)可以是每张表,也可以是每张表中的字段,是不可逾越而又相互交叉的;门窗就是数据库中的通道,就是索引、访问权限、视图等;内饰、家具就是最终的用户数据,是放在数据库这所房子里的东西。然后是在思维上的理解,东西方的思维方式上存在差异,比如在多表查询、数据库结构优化时需要多考虑这种理解和实施层面的“差异性”。

更多相关推荐:
工作流Activiti的学习总结(十二) activiti官方十分钟快速学习

根据activiti官方提供的编写1财务部门填写月财务报告2股东审核月财务审计报告流程图流程配置ltxmlversionquot10quotencodingquotUTF8quotgtltdefinitions...

工作流Activiti的学习总结(五) activiti的API和虚拟工作流测试

工作流Activiti的学习总结五activiti的API和虚拟工作流测试activiti的API在activiti引擎中你可以通过多种方式获取ProcessEngine对象从ProcessEngine中获取各...

工作流Activiti的学习总结(八)Activiti自动执行的应用

工作流activiti自动执行任务的开发应用工作流模拟某公司请假流程情景如下1开发人员请假流程如果开发人员请假如果请假天数小于3天组长批准人事批准即可请假2如果请假大约三天需要项目经理或者产品经理批准并且项目总...

工作流Activiti的学习总结(六)Antiviti的安装详细过程

工作流Activiti的学习总结六Antiviti的安装详细过程activiti56的安装项目中采用最新的Activiti版本为56GA的activitiREST方式访问相关的RESTWebService服务a...

工作流Activiti的学习总结(十一)Activiti5.6和Spring3.03整合

工作流模拟程序员面试过程情景如下1开发知识面试或者笔试2人事面试流程图流程配置Xml代码1ltxmlversionquot10quotencodingquotUTF8quotgt2ltdefinitionsxm...

工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解

工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解Spring和Activiti的整合:在Spring和Activiti的整合中ProcessEngineFactoryBean成…

工作流Activiti的学习总结(二)activiti中ProcessEngine的创建和数据库表命名规则

工作流Activiti的学习总结(二)activiti中ProcessEngine的创建和数据库表命名规则数据库表命名规则:Activiti工作流引擎的数据库表中的表名称都是以ACT_.第二部分两个字母表示表的…

开源工作流activiti使用手册

开源工作流ACTIVITI使用手册阿凡提集团信息部第1页共8页目录开源工作流ACTIVITI1使用手册1第一章ACTIVITI5安装步骤211ACTIVITI安装先决条件312ACTIVITI安装步骤3121解...

activiti学习笔记:Activiti工作流教程 Activiti5 流程实例

activiti学习笔记Activiti工作流教程Activiti5流程实例觉得activiti设计得简单而强大尝试翻译一下他的10分钟入门指南10分钟入门指南通过一个非常简单的业务流程介绍一些基本的Activ...

activiti入门教程-基于Activiti5工作流实战企业协同OA办公系统

基于Activiti5工作流实战企业协同OA办公系统springdatajpauur前台组件一本课程是怎么样的一门课程全面介绍11课程的背景该课程的需求和设计来源于协同公司的OA办公系统从OA系统的需求分析数据...

用activiti 工作流 实现简单的请假 附带源码

用activiti工作流实现简单的请假附带源码用activiti工作流实现简单的请假附带源码新建一个Maven项目项目结构pomxmlhtmlviewplaincopy1ltspangtprojectxmlns...

工作流Activiti的学习总结(九)Activiti手工执行的应用(ReceiveTask实现方式)

工作流模拟的业务情景如下1用户到银行转账业务2银行工作人员查询用户余额3银行工作人员帮助用户转账手工触发执行是指执行到流程中某个个结点后流程暂时停止运行直到收到外部发送的信号以后才会继续向前推进这样情况可以更加...

工作流activiti的学习总结(15篇)