`
nychen2000
  • 浏览: 87563 次
  • 性别: Icon_minigender_1
  • 来自: ...
社区版块
存档分类
最新评论

JBPM工作流的性能问题

阅读更多
前言:我计划把我的blog从51cto移到javaeye,陆陆续续地把我对工作流的理解贴上来,和大家交流。

我在项目中应用过jbpm工作流,总体而言,jbpm是诸多开源workflow中比较好的一个。他的面向图的设计比起那些一味宣称遵守所谓的WfMC规范的工作流好多了。

在应用的过程中,我发现jbpm还是有不少问题,其中性能问题比较突出。主要表现为:
1、任务分配的表设计不合理,如果我想搜索出当前用户有哪些待办工作需要好几个表乘积。数据量一大,性能马上降下去了。

2、每次业务流程操作,数据库的IO操作过多。

3、历史数据和当前活动的数据没有分开存储,例如已经完成的taskinstance和活动的taskinstance在同一个表中。这样随着系统不断运行,jbpm_taskinstance等表会变得非常巨大。严重影响性能。实际上这些已经完成的历史数据很少用到,应该转移到其他的表。

这些问题在我的Fire workflow设计中都考虑进去了。^_^
分享到:
评论
8 楼 dinw 2008-10-27  
nychen2000 写道

ry.china 写道19:55:10,750 [http-8080-1] ERROR SessionFactoryImpl : Error in named query: GraphSession.findTokensForProcessInNodeorg.hibernate.hql.ast.QuerySyntaxException: Invalid path: 'node.name' [          select token      from org.jbpm.graph.exe.Token token      where token.processInstance.processDefinition.name = :processDefinitionName        and node.name = :nodeName}这个问题是什么问题呀你用的是jbpm命名查询吗,还是你自己写的hql?这个hql错了吧!node.name中的node根本找不到对应的对象。

这是jbpm3.2.3已知的bug
改一下hql就可以了
7 楼 nychen2000 2008-10-27  
ry.china 写道

19:55:10,750 [http-8080-1] ERROR SessionFactoryImpl : Error in named query: GraphSession.findTokensForProcessInNodeorg.hibernate.hql.ast.QuerySyntaxException: Invalid path: 'node.name' [          select token      from org.jbpm.graph.exe.Token token      where token.processInstance.processDefinition.name = :processDefinitionName        and node.name = :nodeName}这个问题是什么问题呀

你用的是jbpm命名查询吗,还是你自己写的hql?

这个hql错了吧!node.name中的node根本找不到对应的对象。
6 楼 ry.china 2008-10-26  
19:55:10,750 [http-8080-1] ERROR SessionFactoryImpl : Error in named query: GraphSession.findTokensForProcessInNode
org.hibernate.hql.ast.QuerySyntaxException: Invalid path: 'node.name' [
   
      select token
      from org.jbpm.graph.exe.Token token
      where token.processInstance.processDefinition.name = :processDefinitionName
        and node.name = :nodeName
}
这个问题是什么问题呀
5 楼 turingbooks 2008-10-26  
期待大家共同努力来解决这些问题,(*^__^*) 嘻嘻……
4 楼 nychen2000 2008-10-24  
adparking 写道

希望楼主说出自己的解决方法。大家研究研究

接下来的blog会讲到,现在一下子写不了那么多.
3 楼 adparking 2008-10-24  
希望楼主说出自己的解决方法。大家研究研究
2 楼 nychen2000 2008-10-24  
fanfree 写道

只提出了问题,解决办法呢


从jbpm本身很难解决上面的问题的,
1、关于工作分派,我的临时方法是将所有的ActorID,组织成一个长长的字符串(逗号分割),搜寻工作时用like,目的是尽量减少表的乘积。

2、关于数据库IO操作,我想不出好办法。

3、关于历史数据:理应可以加上一些eventlistener,在适当的时机将这些数据移走,但是jbpm数据库表之间的关联复杂的不得了,删除一条数据会有一连串的数据库约束,我真的没有耐心去研究,所以暂时只能放在那里。
1 楼 fanfree 2008-10-24  
只提出了问题,解决办法呢

相关推荐

    工作流程JBPM工作流管理

    【工作流程JBPM工作流管理】是企业信息化建设中至关重要的一环,它涉及到组织内部的任务自动化、业务流程优化以及跨部门协作效率的提升。JBPM(JBoss Business Process Management)是Red Hat公司推出的一款开源的...

    李腾飞JBPM工作流引擎代码test01到test04

    【李腾飞JBPM工作流引擎代码test01到test04】是一系列关于使用JBPM工作流引擎进行程序开发的示例代码。JBPM(Java Business Process Management)是一款开源的工作流管理系统,它允许开发者设计、执行和管理业务流程...

    jbpm工作流引擎介绍

    在`jbpm工作流引擎介绍.ppt`文件中,可能包含了对这些步骤的详细图解,展示了每个步骤如何在jbpm中建模,以及流程实例在不同阶段的变化。此外,还可能涵盖了如何配置工作流规则、如何定义和分配任务,以及如何使用...

    jBPM4工作流应用开发指南.pdf

    jBPM4作为该系列的一个版本,提供了一套完整的流程管理和执行框架,允许开发者构建灵活的工作流应用,以实现业务流程自动化。本指南由胡奇编写,旨在为开发者提供一个全面的参考,帮助他们快速学习和掌握使用jBPM4...

    企业OA 完整的jbpm工作流实例

    在这个名为"企业OA 完整的jbpm工作流实例"的项目中,开发者使用了Java SSH框架来构建了一个集成jbpm的工作流系统,特别适合初学者了解和学习工作流的实现。 SSH框架是Struts、Spring、Hibernate三个开源项目的首...

    JBPM工作流实战_流程定义文件的上传处理视频 03

    "JBPM工作流实战_流程定义文件的上传处理视频 03"这一主题主要关注如何在实际操作中处理JBPM流程定义文件的上传,这在构建业务流程自动化系统时是非常关键的步骤。 首先,流程定义文件是JBPM工作流的核心组成部分,...

    JBPM工作流引擎

    JBPM工作流引擎是一种基于Java的开源工作流管理系统,它允许开发者和企业构建、部署和管理业务流程。JBPM提供了全面的工作流解决方案,包括流程设计、执行、监控和优化,旨在提高工作效率,简化复杂的业务操作。 ...

    jbpm Java工作流 教程

    ### jbpm Java工作流 教程 #### 一、jbpm简介 JBPM(Java Business Process Model)是Red Hat提供的一款开源的工作流引擎,用于在Java应用程序中实现业务流程管理(BPM)。它基于规范化的BPMN 2.0标准,支持图形化...

    JBPM工作流介绍ppt

    JBPM(JBoss Business Process Management)是一个开源的工作流管理系统,由Java语言开发,设计用于实现灵活、可扩展的业务流程自动化。JBPM的核心特点是它的直观流程语言,它使用任务、异步等待状态、定时器、自动...

    jbpm工作流框架

    jbpm工作流框架是Java平台上的一个开源流程管理系统,它为业务流程自动化提供了一套全面的解决方案。jbpm不仅支持工作流的建模、执行,还提供了监控和管理功能,使得开发者可以方便地构建和部署复杂的业务流程。该...

    JBPM工作流实战_了解和认识工作流系统视频01

    本教程将通过“JBPM工作流实战_了解和认识工作流系统视频01”为你揭示工作流系统的基本概念以及JBPM的核心特性。 首先,我们需要理解工作流系统的概念。工作流是指在组织内部或跨组织的活动中,按照预定的规则和...

    JBPM工作流开发指南

    【JBPM工作流开发指南】 JBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了全面的业务流程管理和执行服务。JBPM旨在帮助开发者、系统管理员和业务分析师设计、执行、监控和优化复杂的...

    jbpm 工作流引擎

    ### jBPM 工作流引擎关键知识点解析 #### 一、概述 - **jBPM**:全称为 JBoss Business Process Management,是由 JBoss 开发的一款开源工作流管理系统。该系统提供了高度灵活且易于扩展的功能,适用于各种复杂的...

    jbpm工作流学习资料大全

    jbpm工作流学习资料大全是一份综合性的资源集合,涵盖了jbpm工作流的各个方面,适合初学者和进阶者深入理解这一技术。jbpm(Java Business Process Management)是一款开源的工作流管理系统,它允许开发者设计、执行...

    Jbpm工作流示例

    【Jbpm工作流示例】是一个以Jbpm 4.4版本为基础的工作流程管理系统实例,主要用于展示和学习工作流的基本操作和功能。Jbpm(Java Business Process Management)是一个开源的工作流引擎,它提供了全面的业务流程管理...

    eclipse工作流插件 含jBPM_4.4_开发指南

    本指南将深入探讨如何利用Eclipse与jBPM 4.4版本相结合,实现高效的工作流应用开发。 首先,我们要理解jBPM是什么。jBPM是一个开源的工作流管理系统,它提供了对业务流程建模、执行和监控的全面支持。jBPM 4.4是其...

    工作流引擎开发包jbpm

    jbpm工作流引擎是一款强大的开源工作流管理系统,用于构建企业级的应用程序,它允许开发者定义、执行和管理工作流程。jbpm的核心功能包括流程定义、流程实例管理、任务管理和监控。这款开发包是针对版本3.2.GA的,这...

    Jbpm工作流与ssh框架集成文档

    Jbpm工作流是一款强大的业务流程管理(BPM)系统,它可以用来设计、执行和管理企业的工作流程。SSH框架,即Struts、Spring和Hibernate的组合,是Java开发中的一个流行选择,用于构建MVC模式的Web应用。将Jbpm工作流...

    JBPM工作流引擎课件

    **JBPM工作流引擎**是Java业务流程管理(Business Process Management)领域的一个开源框架,它提供了全面的工作流和业务流程自动化解决方案。这个课件集合旨在为初学者提供一个透彻易懂的学习路径,帮助他们快速...

Global site tag (gtag.js) - Google Analytics