fixteam/fixflow

管控中心流程实例管理中手动归档时,后台抛出Mysql语法错误异常,同时存在事务不同步问题

Closed this issue · 1 comments

2014-02-14|11:48:13.446|http-8080-1|DEBUG|FixFlow引擎数据持久化语句: delete from FIXFLOW_RUN_TOKEN E where E.processInstance_id in(select processinstance_id from FIXFLOW_RUN_PROCESSINSTANCE where 1=1 and processinstance_id in(? ) and end_time is not null)|(SqlCommand.java:323)
2014-02-14|11:48:13.446|http-8080-1|DEBUG|参数: [d4e50fc4-ea3f-4d52-8f7d-0fdddab89c39]|(SqlCommand.java:324)
com.founder.fix.fixflow.core.exception.FixFlowException: 查询错误:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'E where E.processInstance_id in(select processinstance_id from FIXFLOW_RUN_PROC' at line 1
at com.founder.fix.fixflow.core.impl.db.SqlCommand.execute(SqlCommand.java:340)
at com.founder.fix.fixflow.core.impl.persistence.instance.HistoryPersistence.archive(HistoryPersistence.java:91)
at com.founder.fix.fixflow.core.impl.db.PersistentSession.execute(PersistentSession.java:249)
at com.founder.fix.fixflow.core.impl.db.DbSqlSession.execute(DbSqlSession.java:47)
at com.founder.fix.fixflow.core.impl.persistence.HistoryManager.archiveByProcessInstanceId(HistoryManager.java:30)
at com.founder.fix.fixflow.core.impl.cmd.ArchiveCmd.execute(ArchiveCmd.java:52)
at com.founder.fix.fixflow.core.impl.cmd.ArchiveCmd.execute(ArchiveCmd.java:1)
at com.founder.fix.fixflow.core.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:31)
at com.founder.fix.fixflow.core.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:52)
at com.founder.fix.fixflow.core.impl.HistoryServiceImpl.archiveByProcessInstanceIds(HistoryServiceImpl.java:36)
at com.founder.fix.fixflow.service.impl.ProcessInstanceServiceImpl.setHistory(ProcessInstanceServiceImpl.java:284)
at com.founder.fix.fixflow.FlowManager.doPost(FlowManager.java:375)
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.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:128)
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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)

fixflow_his系列表添加数据已经成功,fixflow_run系列表因为错误删除数据失败,导致数据不同步。
这里的事务没有回滚。

@Gey0k bug指派给 @yangchenhui 解决
应该是 HistoryPersistence.java 类中的 归档操作语句在mysql下不兼容的问题。