执行模式-jbpm4.0中文开发指南(2)
该过程在客户端的线程中执行。仅当达到评估活动时,startProcessInstance方法才返回。换句话说,client process definition . startprocess instance和ClientExecution.signal方法将被阻止,直到下一个等待状态到来。
13.2。持久实现模型
进程虚拟机还包含Hibernate映射,用于保存进程定义并在任何数据库中执行它们。在这样一个持久的环境中,为进程执行提供了一个称为ExecutionService的特定会话外观。
两个配置文件应该放在类路径下:一个环境配置文件和一个hibernate.properties文件。在标准的Java环境中,持久执行模式的基本配置如下:
环境:
& ltjbpm-配置>
& lt流程-引擎-上下文>中。
& lt部署者-经理>
& lt分配-文件类型>
& lt文件扩展名=".jpdl.xml" type="jpdl" />。
& lt/assign-文件类型>。
& ltparse-jpdl />。
& lt检查-流程/>。
& lt检查-问题/>。
& lt保存/>。
& lt/deployer-manager>。
& lt流程服务/>。
& lt执行-服务/>。
& lt管理-服务/>。
& lt命令服务>
& ltretry-interceptor />。
& lt环境拦截器/>
& ltstandard-transaction-interceptor/
& lt/command-service>。
& lt休眠-配置>
& ltproperties resource = " hibernate . properties "/& gt。
& lt映射资源= " jbpm . PVM . typedef . hbm . XML "/& gt。
& lt映射资源="jbpm.pvm.wire.hbm.xml" />。
& lt映射资源= " jbpm . PVM . definition . hbm . XML "/& gt。
& lt映射资源= " jbpm . PVM . execution . hbm . XML "/& gt。
& lt映射资源= " jbpm . PVM . variable . hbm . XML "/& gt。
& lt映射资源="jbpm.pvm.job.hbm.xml" />。
& lt映射资源="jbpm.jpdl.hbm.xml" />。
& lt缓存配置资源="jbpm.pvm.cache.xml "
usage = " non-rict-read-write "/& gt。
& lt/hibernate-configuration>。
& lthibernate-session-factory />。
& ltid-generator />。
& lttype resource = " jbpm . PVM . types . XML "/& gt。
& lt作业执行器自动启动="false" />。
& lt/process-engine-context>。
& lt事务上下文>。
& lt休眠-会话/>。
& lt交易/>
& ltpvm-db-session />。
& lt作业-db-session />。
& lt消息-会话/>
& lt/transaction-context>。
& lt/jbpm-配置>中。
接下来,Hibernate.properties如下所示:
hibernate.properties:
hibernate .方言org.hibernate .方言. HSQlLanguage
hibernate . connection . driver _ class org . hsqldb . JDBCdriver
hibernate . connection . URL JDBC:hsqldb:mem:。
hibernate.connection .用户名sa
hibernate.connection.password
hibernate . hbm2ddl . auto create-drop
hibernate . cache . use _ second _ level _ cache true
hibernate . cache . provider _ class org . hibernate . cache . hashtablecacheprovider
# hibernate.show_sql true
hibernate.format_sql true
hibernate.use_sql_comments true
然后,您可以从环境工厂获得如下服务:
环境工厂环境工厂=新的环境工厂。
进程服务进程服务=环境工厂.获取(进程服务.类);
执行服务执行服务=环境工厂.获取(ExecutionService . class);
管理服务管理服务=环境工厂.获取(管理服务.类);
过程服务的职责是管理过程定义资源。在开始流程执行之前,流程定义需要发布到流程存储库中。过程定义可以以不同的格式和不同的过程语言提供。发布包含来自不同源文件的过程定义信息,如ZIP文件、XML文件或过程定义对象。ProcessService.deploy方法通过配置文件中配置的所有发布服务器获取发布。