首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

Jbpm3历史库数据与当前工作库数据分离思路

2012-07-19 
Jbpm3历史库数据与当前工作库数据分开思路???? Jbpm3是个非常不错的工作流引擎,由于其灵活、直白,易于扩展

Jbpm3历史库数据与当前工作库数据分开思路

?

??? Jbpm3是个非常不错的工作流引擎,由于其灵活、直白,易于扩展等特点,可构建出独立的Bpms。由于jbpm_log,jbpm_taskinstance,jbpm_variableinstance等表的数据膨胀得非常快,其性能常遭诟病。因此,为其创建怎样的历史库,以解决性能问题呢?以下是一个简单思路,不当之处,请指正:

1)历史数据是指流程已结束的所有表的相关数据;主流程未结束的流程虽已结束仍留在当前库工作表中;

2)创建另一schema(如history),表结构完全相同,作为历史库,用于从当前工作库接收满足1)的数据;

3)历史库数据表使用独立的hibernate_history.cfg.xml配置文件,从现有的*.hbm.xml文件创建新的对应配置文件,新建的配置文件,表名带schema(history),并删除所有外键关系,主键生成机制均为assigned;

4)?历史库数据表包含现有所有流程定义表;

5)将数据从当前工作库数据表插入到历史库数据表中,包括流程定义表;

6)删除工作库数据表符合1)的所有数据;删除历史库数据表中所有不符合1)的数据;即前者和后者互为补集;对于流程定义表先清空历史库,再执行步骤5);

7)?定期(每天?每周?,根据自己系统情况而定)执行步骤5)和6);用触发器来达到5)和6)的移库也是一种思路,但肯定会影响工作性能;

8)外部业务系统对工作流查询的逻辑处理,先查询当前工作库,查不到再查询历史库;这里需要2个configuration:一个使用hibernate.cfg.xml,另一个使用hibernate_history.cfg.xml,分别对应工作库和历史库。

热点排行