第19章 日志
日志的目标是保持追踪流程执行的历史。在运行时流程执行数据的改变、所有数据(delta's)被存储在日志中。
本章所涉及的流程日志,不要同软件日志混淆。软件日志跟踪软件程序的执行(通常是为了除错)。流程日志跟踪流程实例的执行。
流程日志信息有各种用例。最明示的是通过流程执行的参与人查询流程历史。
另一个用例是业务活动监控(Business Activity Monitoring (BAM))。BAM将查询或分析流程执行的日志来找出关于业务过程的有用的统计信息。例如:流程的每一步平均花费多少时间?流程中哪里有瓶颈?……这样的信息是一个组织实现真正的流程管理的关键。真正的业务流程管理是关于组织如何管理他们的流程、如何通过通过信息技术来支持以及如何在一个迭代流程改善其他的方面。
再一个用途是撤消(undo)功能。 流程日志能够用于实现撤消。既然日志包含运行时信息的数据(delta's),那样日志就能够反向将流程带回到前一个状态。[
Since the logs contain the delta's of the runtime information, the logs can be played in reverse order to bring the process back into a previous state.]
当流程执行运行时日志被jBPM产生。但是用户也能插入流程日志。一个日志项是一个继承自org.jbpm.logging.log.ProcessLog 的java对象。流程日志项被增加到一个LoggingInstance上。LoggingInstance是ProcessInstance的可选的扩展。
不同日志种类被jBPM生成:图执行日志(graph execution logs)、上下文(context logs)和任务管理日志(and task management logs)。更多的关于那些日志所包含的特定的数据,参考javadocs 文档。一个好的开始点是类org.jbpm.logging.log.ProcessLog ,因为从那个类中你可以向下导航这个继承树。
LoggingInstance将收集日志项。当ProcessInstance被存储时,所有LoggingInstance中的日志将被刷新到数据库中。为了避免每一个事务都要从数据库中进行检索ProcessInstance日志域(logs-field)并没有同hibernate进行映射。 每一个ProcessLog在执行(Token)路径的上下文中产生,随后ProcessLog引用那个token。这个Token也当作Token中ProcessLog索引的顺序索引(idnex-sequence)生成器。这个对于日志检索是很重要的。那样,随后的事务生成的日志将有一个连续的顺序号。(喔,那里有许多的序号噢 :-s)。
下列是增加流程日志的API方法。
public class LoggingInstance extends ModuleInstance {
...
public void addLog(ProcessLog processLog) {...}
...
}
|
日志信息的UML图看起来像这样:
图 19.1 jBPM日志信息类图
CompositeLog是一个特殊种类的日志项。它作为若干子日志的父日志,因此这是创建日志中层次结构的手段。下面是插入日志的API。
public class LoggingInstance extends ModuleInstance {
...
public void startCompositeLog(CompositeLog compositeLog) {...}
public void endCompositeLog() {...}
...
}
|
CompositeLogs应该总是放在try-finally块中进行调用以保证日志层次结构是一致的。例如:
startCompositeLog(new MyCompositeLog());
try {
...
} finally {
endCompositeLog();
}
|
日志部署在哪并不重要,在jbpm.cfg.xml 配置文件中的jbpm-context部分移除日志行就足够了。
<service name='logging' factory='org.jbpm.logging.db.DbLoggingServiceFactory' />
|
万一你想过滤日志,你需要写一个自定义的DbLoggingService子类LoggingService的实现。你还需要创建一个定制的日志ServiceFactory并在factory属性中指定它。
正像前面讲的,日志不能通过定位LoggingInstance到它的日志从数据库中被检索。取而代之的是,流程实例的日志总可以从数据库中被查询。LoggingSession有两个方法来实现这个目标:
第一个方法为流程实例检索所有的日志。日志将通过token分组MAP。这个map将同流程实例中的每个Token的ProcessLogs列表相关联。列表将以相同的顺序包含ProcessLogs当他们创建时。
public class LoggingSession {
...
public Map findLogsByProcessInstance(long processInstanceId) {...}
...
}
|
第二方法为特定的Token检索日志。返回的列表将以相同的顺序包含ProcessLogs当他们创建时。
public class LoggingSession {
public List findLogsByToken(long tokenId) {...}
...
}
|
有时你可能想应用数据仓库技术到jbpm流程日志上。数据仓库意味着你将创建一个独立的数据库来包含为各种目标而使用的流程日志。
有多种为流程日志信息创建数据仓库的原因。有时它可能是一个在线的产品数据库中非重载荷的查询。其他情况下它可能做一些扩展性的分析。数据库仓库甚至可能修改数据库模式以优化它。
本节,我们只想计划下jBPM上下文中的数据库仓库技术。这个目标太分散,限制了可以包含在jBPM中能覆盖所有需求的一个通用的解决方法。
:-S
- 大小: 5.1 KB
分享到:
相关推荐
jbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3....
- 修改jbpm-jpdl-3.2.3\db目录下的jbpm.jpdl.mysql.sql文件,为每个SQL语句末尾添加分号,以便正确执行脚本。 4. **jbpm-jpdl-suite-3.2.3部署**: - 在MySQL中执行修改后的jbpm.jpdl.mysql.sql脚本,初始化jbpm...
- **docs**目录:包含文档和手册,用于指导用户安装、配置和使用jBPM-jPDL。 - **samples**目录:提供了一些示例项目,帮助用户了解如何使用jBPM-jPDL实现具体业务流程。 安装配置jBPM-jPDL-suite-3.2.3通常涉及...
《JBoss_jBPM_jPDL用户开发手册_3.2.3.pdf》作为开发者的重要参考资料,详细介绍了如何使用jBPM和jPDL进行流程开发。手册内容可能涵盖: - **安装与配置**:指导读者设置开发环境,包括JBoss服务器的部署和jBPM的...
jbpm-jpdl-3.2.3.zip 是一个包含开源工作流引擎jbpm的版本3.2.3的压缩包。jbpm(Java Business Process Management)是一个强大的业务流程管理系统,它提供了完整的业务流程建模、执行和管理能力,特别适合于需要...
这个是jbpm-jpdl-3.2.3.zip的server部分,有60多兆, 只要将"jbpm-jpdl-3.2.3(没有server部分).rar"和这个合在一起就是整个的jbpm-jpdl-3.2.3.zip "jbpm-jpdl-3.2.3(没有server部分).rar"在我的另外一个上传资源里面
jbpm-jpdl-suite-3.2.GA.zip
《JBoss+jBPM+jPDL用户开发手册_3.2.3》是针对企业级应用开发的一个详尽指南,特别关注于工作流管理和流程自动化。这个手册详细介绍了如何使用JBoss中间件平台,结合jBPM(Java Business Process Management)和jPDL...
**jbPM jPDL 用户指南 (Version 3.2.3) - 第2章** jbPM(Java Business Process Management)是一种开源的工作流管理系统,专为Java开发者设计,它提供了业务流程建模、执行和监控的功能。jPDL(jBPM Process ...
6. JBoss+jBPM+jPDL用户开发手册_3.2.3.pdf:这可能是jBPM 3.2.3版本的官方用户手册,提供了该版本的详细技术指南和最佳实践。内容可能包括API使用、工作流生命周期管理、持久化机制、错误处理、自定义扩展等关键...
5. **文档和示例**:为了帮助开发者更好地理解和使用JBPM,通常会提供详细的用户手册和示例代码,指导如何配置、部署以及编程接口的使用。 6. **测试和调试工具**:可能包含了一些辅助工具,如命令行工具或调试器,...
这个是jbpm-jpdl-3.2.3的zip,本来这个是85M的zip, 我删除了server 文件夹(这个文件夹有60多M) 这个server部分在我的另外一个资源里面,一般开发用不到这个server文件夹 如果需要的话,就下载不需要积分, 这个没有...
jbpm-jpdl-3.2.3
工作流插件 activiti-5.15.1 jbpm-4.3 jbpm-4.4 jbpm-jpdl-suite-3.2.3
### jBPM开发:配置EclipseIDE开发环境详解 #### 一、配置开发工具 **1. 安装 Eclipse Designer到 Myeclipse6** - **步骤**: - 将`jbpm-jpdl-suite-3.2.3/designer/eclipse/plugins`目录下的所有文件及文件夹...
首先从网站上下载jBPM开发包(jbpm-jpdl-suite-3.2.3.zip),据说现在jBPM3已经升到3.2.6了,而且据说已经推出了jBPM4了。将jbpm-jpdl-suite-3.2.3.zip解压缩后,里面有个\designer文件夹,这个是eclipseIDE的jBPM...