`
spv53spv
  • 浏览: 15978 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

jbpm3通过processDefinition.createProcessInstance()为什么能保存ProcessInstance之迷

 
阅读更多

jbpm3通过processDefinition.createProcessInstance()为什么能保存ProcessInstance之迷
2011年08月01日
  数据库提交操作是在jbpmcontext.close()方法执行后,事务才提交的. close方法如下: 其中的autoSave()方法如下: 一般人都认为是这里将processInstance保存到数据库.其实这里分2种情况,只有当以
  jbpmContext.newProcessInstanceForUpdate(processNam e);方式启动流程时,才会执行这里的操作。
  原因是autoSaveProcessInstances通过processDefinition.createProcessInstance()启动时没有值.
  autoSave()方法里的循环操作,可以保存流程日志到数据库中.从另一个方面来讲只有以jbpmContext.newProcessInstanceForUpdate(processNam e);方式启动流程时,流程日志表才有数据.
  那么我们的流程是通过processDefinition.createProcessInstance()方式启动的,为什么也能将processInstance保存到数据库呢.原因见
  下面的堆栈信息.
  EntityInsertAction.(Serializable, Object[], Object, Object, EntityPersister, SessionImplementor) line: 34 
  DefaultSaveOrUpdateEventListener(AbstractSaveEvent Listener).performSaveOrReplicate(Object, EntityKey, EntityPersister, boolean, Object, EventSource, boolean) line: 329 
  DefaultSaveOrUpdateEventListener(AbstractSaveEvent Listener).performSave(Object, Serializable, EntityPersister, boolean, Object, EventSource, boolean) line: 181 
  DefaultSaveOrUpdateEventListener(AbstractSaveEvent Listener).saveWithGeneratedId(Object, String, Object, EventSource, boolean) line: 121 
  DefaultSaveOrUpdateEventListener.saveWithGenerated OrRequestedId(SaveOrUpdateEvent) line: 187 
  DefaultSaveOrUpdateEventListener.entityIsTransient (SaveOrUpdateEvent) line: 172 
  DefaultSaveOrUpdateEventListener.performSaveOrUpda te(SaveOrUpdateEvent) line: 94 
  DefaultSaveOrUpdateEventListener.onSaveOrUpdate(Sa veOrUpdateEvent) line: 70 
  SessionImpl.fireSaveOrUpdate(SaveOrUpdateEvent) line: 507 
  SessionImpl.saveOrUpdate(String, Object) line: 499 
  CascadingAction$1.cascade(EventSource, Object, String, Object, boolean) line: 218 
  Cascade.cascadeToOne(Object, Type, CascadeStyle, Object, boolean) line: 268 
  Cascade.cascadeAssociation(Object, Type, CascadeStyle, Object, boolean) line: 216 
  Cascade.cascadeProperty(Object, Type, CascadeStyle, Object, boolean) line: 169 
  Cascade.cascade(EntityPersister, Object, Object) line: 130 
  DefaultSaveEventListener(AbstractSaveEventListener ).cascadeBeforeSave(EventSource, EntityPersister, Object, Object) line: 431 
  DefaultSaveEventListener(AbstractSaveEventListener ).performSaveOrReplicate(Object, EntityKey, EntityPersister, boolean, Object, EventSource, boolean) line: 265 
  DefaultSaveEventListener(AbstractSaveEventListener ).performSave(Object, Serializable, EntityPersister, boolean, Object, EventSource, boolean) line: 181 
  DefaultSaveEventListener(AbstractSaveEventListener ).saveWithGeneratedId(Object, String, Object, EventSource, boolean) line: 121 
  DefaultSaveEventListener(DefaultSaveOrUpdateEventL istener).saveWithGeneratedOrRequestedId(SaveOrUpdat eEvent) line: 187 
  DefaultSaveEventListener.saveWithGeneratedOrReques tedId(SaveOrUpdateEvent) line: 33 
  DefaultSaveEventListener(DefaultSaveOrUpdateEventL istener).entityIsTransient(SaveOrUpdateEvent) line: 172 
  DefaultSaveEventListener.performSaveOrUpdate(SaveO rUpdateEvent) line: 27 
  DefaultSaveEventListener(DefaultSaveOrUpdateEventL istener).onSaveOrUpdate(SaveOrUpdateEvent) line: 70 
  SessionImpl.fireSave(SaveOrUpdateEvent) line: 535 
  SessionImpl.save(String, Object) line: 523 
  SessionImpl.save(Object) line: 519 
  DbPersistenceService.assignId(Object) line: 330
  Services.assignId(Object) line: 257 
  ProcessInstance.(ProcessDefinition, Map, String) line: 137 
  ProcessInstance.(ProcessDefinition) line: 92 
  ProcessDefinition.createProcessInstance() line: 125 
  JpdlServiceImpl.createProcess(String) line: 50 
  JpdlServiceImpl$$FastClassByCGLIB$$f5b03888.invoke (int, Object, Object[]) line: not available 
  MethodProxy.invoke(Object, Object[]) line: 149 
  Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoi nt() line: 700 
  Cglib2AopProxy$CglibMethodInvocation(ReflectiveMet hodInvocation).proceed() line: 149 
  TransactionInterceptor.invoke(MethodInvocation) line: 106 
  Cglib2AopProxy$CglibMethodInvocation(ReflectiveMet hodInvocation).proceed() line: 171 
  ExposeInvocationInterceptor.invoke(MethodInvocatio n) line: 89 
  Cglib2AopProxy$CglibMethodInvocation(ReflectiveMet hodInvocation).proceed() line: 171 
  Cglib2AopProxy$DynamicAdvisedInterceptor.intercept (Object, Method, Object[], MethodProxy) line: 635 
  JpdlServiceImpl$$EnhancerByCGLIB$$ead8b30c.createP rocess(String) line: not available 
  JpdlProcessTest.testWorkflow() line: 11 
  
  
分享到:
评论

相关推荐

    JBPM4中ProcessDefinition、ProcessInstance、Execution、Task关系和区别

    BPM4中ProcessDefinition、ProcessInstance、Execution、Task关系和区别

    jbpm4里的processDefinition、processInstance和Task的使用方法

    介绍jbpm4里的processDefinition、processInstance和Task的使用方法。 代码里的注释的编码方式为utf-8

    jbpm流程控制初学者容易接触的domo

    ProcessInstance pi=pd.createProcessInstance(); jc.close(); } public void testrun(){ //得到流程定义(在数据库) JbpmConfiguration jbpmConfiguration=JbpmConfiguration.getInstance(); ...

    JBPM数据库表说明.doc

    1.1 JBPM_PROCESSDEFINITION:流程模版表 2 1.2 JBPM_NODE:流程节点表 2 1.3 JBPM_TRANSITION:流程迁移表 3 1.4 JBPM_ACTION:流程动作表 4 1.5 JBPM_EVENT:流程事件表 5 1.6 JBPM_DELEGATION:流程代理类表...

    jbpm3.2表说明

    JBPM_PROCESSINSTANCE JBPM_PROCESSINSTANCE FK_PROCIN_PROCDEF PROCESSDEFINITION_ 一个流程模板可能有很多的流程实例 JBPM_ACTION JBPM_ACTION FK_ACTION_PROCDEF PROCESSDEFINITION_ 一个流程可能有很多的action...

    javaee三大框架整合宅急送项目lib包

    ProcessDefinition processDefinition = processEngine.getRepositoryService().createProcessDefinitionQuery().processDefinitionId(processInstance.getProcessDefinitionId()).uniqueResult(); return ...

    jbpm开发指南--jbpm全面介绍

    通过查看JBPM的表,我们知道要实现流程监控功能就是把JBPM当中的JBPM_PROCESSDEFINITION(已发布的流程表),JBPM_PROCESSINSTANCE(流程实例表),JBPM_TASKINSTANCE(流程产生的任务实例表)这三张表串联起来就可以...

    jbpm安装及使用方法

    所有的Task instance都被保存在数据库中的表jbpm_taskinstance里。当你想得到特定用户的任务清单时,你就可以通过一个与用户关联的actorId来查询这张表。 一个流程定义有一个TaskMgmtDefinition;一个...

    JBPM数据库表说明 jbpm 工作流 详细到每一个字段,不要下载分

    1.1 JBPM_PROCESSDEFINITION:流程模版表 2 1.2 JBPM_NODE:流程节点表 2 1.3 JBPM_TRANSITION:流程迁移表 3 1.4 JBPM_ACTION:流程动作表 4 1.5 JBPM_EVENT:流程事件表 5 1.6 JBPM_DELEGATION:流程代理类表...

    jbpm4.4学习笔记

    5.5ProcessDefinition 16 5.6ProcessInstance 16 5.7Execution 17 6 管理流程定义 18 6.1设计流程定义文档 18 6.1.1图片 18 6.1.2jpdl.xml文件 18 6.2部署流程定义 19 6.3删除流程定义 20 6.4查询流程定义 21 6.5...

Global site tag (gtag.js) - Google Analytics