为什么我的JBPM4.3 流程结束后,会自动执行删除流程,而且抛外键约束异常,急啊

jimmyrubya 2010-09-21
良好: executing activity(结束)
2010-9-21 14:32:11 org.jbpm.internal.log.Jdk14Log debug
良好: execution[leave.10001] ends with state ended
Hibernate: insert into JBPM4_HIST_ACTINST (DBVERSION_, HPROCI_, TYPE_, EXECUTION_, ACTI
Hibernate: update JBPM4_TASK set DBVERSION_=?, NAME_=?, DESCR_=?, STATE_=?, SUSPHISTSTA
Hibernate: update JBPM4_EXECUTION set DBVERSION_=?, ACTIVITYNAME_=?, PROCDEFID_=?, HASV
Hibernate: update JBPM4_HIST_ACTINST set DBVERSION_=?, HPROCI_=?, TYPE_=?, EXECUTION_=?
Hibernate: update JBPM4_HIST_TASK set DBVERSION_=?, EXECUTION_=?, OUTCOME_=?, ASSIGNEE_
Hibernate: update JBPM4_HIST_PROCINST set DBVERSION_=?, ID_=?, PROCDEFID_=?, KEY_=?, ST
Hibernate: select executioni0_.DBID_ as DBID1_41_, executioni0_.DBVERSION_ as DBVERSION
Hibernate: select taskimpl0_.DBID_ as DBID1_50_, taskimpl0_.DBVERSION_ as DBVERSION3_50
Hibernate: select participat0_.TASK_ as TASK6_1_, participat0_.DBID_ as DBID1_1_, parti
Hibernate: select variables0_.TASK_ as TASK8_1_, variables0_.DBID_ as DBID1_1_, variabl
Hibernate: select subtasks0_.SUPERTASK_ as SUPERTASK18_1_, subtasks0_.DBID_ as DBID1_1_
Hibernate: select jobimpl0_.DBID_ as DBID1_44_, jobimpl0_.DBVERSION_ as DBVERSION3_44_,
2010-9-21 14:32:12 org.jbpm.internal.log.Jdk14Log debug
良好: deleting process instance leave.10001
Hibernate: select * from JBPM4_VARIABLE systemvari0_ where systemvari0_.EXESYS_=?
Hibernate: select * from JBPM4_SWIMLANE swimlanes0_ where swimlanes0_.EXECUTION_=?
Hibernate: update JBPM4_VARIABLE set EXECUTION_=null, KEY_=null where EXECUTION_=?
Hibernate: delete from JBPM4_TASK where DBID_=? and DBVERSION_=?
Hibernate: delete from JBPM4_VARIABLE where DBID_=? and DBVERSION_=?
Hibernate: delete from JBPM4_VARIABLE where DBID_=? and DBVERSION_=?
Hibernate: delete from JBPM4_VARIABLE where DBID_=? and DBVERSION_=?
Hibernate: delete from JBPM4_VARIABLE where DBID_=? and DBVERSION_=?
Hibernate: delete from JBPM4_EXECUTION where DBID_=? and DBVERSION_=?
2010-09-21 14:32:13,201 WARN [org.hibernate.util.JDBCExceptionReporter] - <SQL Error: 1451, SQLState: 23000>
2010-09-21 14:32:13,451 ERROR [org.hibernate.util.JDBCExceptionReporter] - <Cannot delete or update a parent row: a foreign key constraint fails (`tipsbuilder/jbpm4_execution`, CONSTRAINT `FK_EXEC_INSTANCE` FOREIGN KEY (`INSTANCE_`) REFERENCES `jbpm4_execution` (`DBID_`))>
2010-09-21 14:32:13,465 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] - <Could not synchronize database state with session>
org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#10001]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2569)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2725)
at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
at org.jbpm.pvm.internal.tx.HibernateSessionResource.prepare(HibernateSessionResource.java:56)
at org.jbpm.pvm.internal.tx.StandardTransaction.commit(StandardTransaction.java:107)
at org.jbpm.pvm.internal.tx.StandardTransaction.complete(StandardTransaction.java:64)
at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:61)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
at org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:105)
at com.tips.system.service.impl.JbpmServiceImpl.completeTask(JbpmServiceImpl.java:262)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy10.completeTask(Unknown Source)
at com.tips.system.action.DemoJbpm4LeaveAction.audit(DemoJbpm4LeaveAction.java:238)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
Caused by: com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`tipsbuilder/jbpm4_execution`, CONSTRAINT `FK_EXEC_INSTANCE` FOREIGN KEY (`INSTANCE_`) REFERENCES `jbpm4_execution` (`DBID_`))
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1313)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1585)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1500)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1485)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2551)
... 70 more
2010-9-21 14:32:13 org.jbpm.internal.log.Jdk14Log debug
良好: ----- rolling back hibernate tx 31285019 -----------------------------------------------------
2010-09-21 14:34:49,277 WARN [org.apache.struts.chain.commands.AbstractExceptionHandler] - <Unhandled exception>
org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#10001]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2569)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2725)
at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
jimmyrubya 2010-09-21
问题解决了,在官方论坛中找到了解决方案,将mqsql的方言换成MySQLInnoDBDialect,后来在jbpm包中翻了一下,也是用这个方言的。分享一下。


顺便把官网链接分享一下

http://community.jboss.org/message/398359

https://jira.jboss.org/browse/JBPM-2333
jimmyrubya 2010-09-21
流程结束 execution表里就要删除了
xyz20003 2010-09-21
顺便把jbpm4的常见问题列表贴一下:
http://www.family168.com/jbpm4/faq.html
jimmyrubya 2010-09-21
好的,临远大哥,问个问题啊,JBPM4中,获取任务列表用page分页获取,但好像jbpm没有获得总记录数的接口吧?是这样的吗?我学的还不够深入,都是看这你的资料学习入门的。或者说jbpm很实际业务系统分页展示有很更好的建议吗?
jimmyrubya 2010-09-21
我遇到的这个问题
在family168的jbpm4常见问题钟有提到了,http://www.family168.com/jbpm4/faq.html

标题:
+ MySQL下出现Could not synchronize database state with session
xyz20003 2010-09-21
待办任务列表里确实没有分页。可以考虑使用taskQuery分页,使用里边的count()获得总数。
zfjdiamond 2015-12-26
为什么我换了方言 还是不行
Global site tag (gtag.js) - Google Analytics