Oracle项目开启Seata分布式事务后,工作流部署失败的问题

Blade 未结 2 1420
tjbaike
tjbaike 2020-11-26 16:07

一、该问题的重现步骤是什么?

1. 项目用Oracle的库,flowable是Oracle的库,seata(v1.3.0)是mysql的库,项目库里有undo_log表

2. 开启seata分布式事务,flow模块和desk模块引入seata,common中开始分布式事务

3. 启动工作流flow模块以及其他基础模块

4. 流程管理--流程部署--上传xml文件(使用的是项目中自带的请假流程的xml)

5. 报错,服务器异常,部署失败


二、你期待的结果是什么?实际看到的又是什么?

期待:流程部署成功,且后续流程操作也不会出现异常

实际:流程部署失败,服务器异常(缺失关键字)

截图_20201126155625.png


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex商业版,2.5.0RELEASE ,Windows系统


四、请提供详细的错误堆栈信息,这很重要。

================  Request Start  ================

===> POST: /manager/check-upload Parameters: {"file":"LeaveProcess.bpmn20.xml"}

===Headers===  sec-fetch-mode: cors

===Headers===  referer: http://localhost:1888/

===Headers===  content-length: 9184

===Headers===  X-Forwarded-Prefix: /blade-flow

===Headers===  sec-fetch-site: same-origin

===Headers===  blade-auth: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJ1c2VyX25hbWUiOiJhZG1pbiIsInJlYWxfbmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vZ3cuYWxpcGF5b2JqZWN0cy5jb20vem9zL3Jtc3BvcnRhbC9CaWF6ZmFueG1hbU5Sb3h4VnhrYS5wbmciLCJhdXRob3JpdGllcyI6WyJhZG1pbmlzdHJhdG9yIl0sImNsaWVudF9pZCI6InNhYmVyIiwicm9sZV9uYW1lIjoiYWRtaW5pc3RyYXRvciIsImxpY2Vuc2UiOiJwb3dlcmVkIGJ5IGJsYWRleCIsInBvc3RfaWQiOiIxMTIzNTk4ODE3NzM4Njc1MjAxIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSIsInNjb3BlIjpbImFsbCJdLCJuaWNrX25hbWUiOiLnrqHnkIblkZgiLCJleHAiOjE2MDYzODA5NDAsImRlcHRfaWQiOiIxMTIzNTk4ODEzNzM4Njc1MjAxIiwianRpIjoiZGZhMWU4MWEtMGMzMS00ZDdjLTgyNDItZDZjOGJkNjQzOTc5IiwiYWNjb3VudCI6ImFkbWluIn0.mM3Vl_M7qsuuwrKxBe8-oBt0FWf25EQAEYRVVo09FR8

===Headers===  cookie: saber-access-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJ1c2VyX25hbWUiOiJhZG1pbiIsInJlYWxfbmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vZ3cuYWxpcGF5b2JqZWN0cy5jb20vem9zL3Jtc3BvcnRhbC9CaWF6ZmFueG1hbU5Sb3h4VnhrYS5wbmciLCJhdXRob3JpdGllcyI6WyJhZG1pbmlzdHJhdG9yIl0sImNsaWVudF9pZCI6InNhYmVyIiwicm9sZV9uYW1lIjoiYWRtaW5pc3RyYXRvciIsImxpY2Vuc2UiOiJwb3dlcmVkIGJ5IGJsYWRleCIsInBvc3RfaWQiOiIxMTIzNTk4ODE3NzM4Njc1MjAxIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSIsInNjb3BlIjpbImFsbCJdLCJuaWNrX25hbWUiOiLnrqHnkIblkZgiLCJleHAiOjE2MDYzODA5NDAsImRlcHRfaWQiOiIxMTIzNTk4ODEzNzM4Njc1MjAxIiwianRpIjoiZGZhMWU4MWEtMGMzMS00ZDdjLTgyNDItZDZjOGJkNjQzOTc5IiwiYWNjb3VudCI6ImFkbWluIn0.mM3Vl_M7qsuuwrKxBe8-oBt0FWf25EQAEYRVVo09FR8; saber-refresh-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJ1c2VyX25hbWUiOiJhZG1pbiIsInJlYWxfbmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vZ3cuYWxpcGF5b2JqZWN0cy5jb20vem9zL3Jtc3BvcnRhbC9CaWF6ZmFueG1hbU5Sb3h4VnhrYS5wbmciLCJhdXRob3JpdGllcyI6WyJhZG1pbmlzdHJhdG9yIl0sImNsaWVudF9pZCI6InNhYmVyIiwicm9sZV9uYW1lIjoiYWRtaW5pc3RyYXRvciIsImxpY2Vuc2UiOiJwb3dlcmVkIGJ5IGJsYWRleCIsInBvc3RfaWQiOiIxMTIzNTk4ODE3NzM4Njc1MjAxIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSIsInNjb3BlIjpbImFsbCJdLCJuaWNrX25hbWUiOiLnrqHnkIblkZgiLCJhdGkiOiJkZmExZTgxYS0wYzMxLTRkN2MtODI0Mi1kNmM4YmQ2NDM5NzkiLCJleHAiOjE2MDY5ODIxNDAsImRlcHRfaWQiOiIxMTIzNTk4ODEzNzM4Njc1MjAxIiwianRpIjoiNDFiZjQ1ZTYtYTQ0MS00ZTRhLTgzZDItYTlmNzE2NThiY2FiIiwiYWNjb3VudCI6ImFkbWluIn0.LV7P9r8n8Duwg6ydC0oZyQXkDCqMp5ASbGlRnDI6_IE

===Headers===  accept-language: zh-CN,zh;q=0.9

===Headers===  origin: http://localhost:1888

===Headers===  X-Forwarded-Host: localhost:1888,localhost

===Headers===  X-Forwarded-Proto: http,http

===Headers===  x-forwarded-for: 127.0.0.1

===Headers===  X-Forwarded-Port: 1888,80

===Headers===  accept: application/json, text/plain, */*

===Headers===  authorization: Basic c2FiZXI6c2FiZXJfc2VjcmV0

===Headers===  host: 192.168.0.120:8008

===Headers===  Forwarded: proto=http;host=localhost;for="127.0.0.1:52340"

===Headers===  content-type: multipart/form-data; boundary=----WebKitFormBoundary8Vs0Kjx6ROosLTnI

===Headers===  accept-encoding: gzip, deflate, br

===Headers===  user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36

===Headers===  sec-fetch-dest: empty

================   Request End   ================


2020-11-26 15:56:20.424  INFO 24452 --- [  XNIO-1 task-1] o.s.core.log.aspect.RequestLogAspect     : 


================  Response Start  ================

===Result===  {"code":200,"success":true,"data":{"name":"LeaveProcess.bpmn20.xml","success":true},"msg":"操作成功"}

<=== POST: /manager/check-upload (208 ms)

================   Response End   ================


2020-11-26 15:56:20.607 DEBUG 24452 --- [  XNIO-1 task-3] .c.c.v.BladeRequestMappingHandlerMapping : Mapped to public org.springblade.core.tool.api.R org.springblade.flow.engine.controller.FlowManagerController.deployUpload(java.util.List,java.lang.String,java.lang.String)

2020-11-26 15:56:20.610  INFO 24452 --- [  XNIO-1 task-3] o.s.core.log.aspect.RequestLogAspect     : 


================  Request Start  ================

===> POST: /manager/deploy-upload Parameters: {"files":"此参数不能序列化为json","category":"flow_1","tenantIds":""}

===Headers===  sec-fetch-mode: cors

===Headers===  referer: http://localhost:1888/

===Headers===  content-length: 9382

===Headers===  X-Forwarded-Prefix: /blade-flow

===Headers===  sec-fetch-site: same-origin

===Headers===  blade-auth: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJ1c2VyX25hbWUiOiJhZG1pbiIsInJlYWxfbmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vZ3cuYWxpcGF5b2JqZWN0cy5jb20vem9zL3Jtc3BvcnRhbC9CaWF6ZmFueG1hbU5Sb3h4VnhrYS5wbmciLCJhdXRob3JpdGllcyI6WyJhZG1pbmlzdHJhdG9yIl0sImNsaWVudF9pZCI6InNhYmVyIiwicm9sZV9uYW1lIjoiYWRtaW5pc3RyYXRvciIsImxpY2Vuc2UiOiJwb3dlcmVkIGJ5IGJsYWRleCIsInBvc3RfaWQiOiIxMTIzNTk4ODE3NzM4Njc1MjAxIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSIsInNjb3BlIjpbImFsbCJdLCJuaWNrX25hbWUiOiLnrqHnkIblkZgiLCJleHAiOjE2MDYzODA5NDAsImRlcHRfaWQiOiIxMTIzNTk4ODEzNzM4Njc1MjAxIiwianRpIjoiZGZhMWU4MWEtMGMzMS00ZDdjLTgyNDItZDZjOGJkNjQzOTc5IiwiYWNjb3VudCI6ImFkbWluIn0.mM3Vl_M7qsuuwrKxBe8-oBt0FWf25EQAEYRVVo09FR8

===Headers===  cookie: saber-access-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJ1c2VyX25hbWUiOiJhZG1pbiIsInJlYWxfbmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vZ3cuYWxpcGF5b2JqZWN0cy5jb20vem9zL3Jtc3BvcnRhbC9CaWF6ZmFueG1hbU5Sb3h4VnhrYS5wbmciLCJhdXRob3JpdGllcyI6WyJhZG1pbmlzdHJhdG9yIl0sImNsaWVudF9pZCI6InNhYmVyIiwicm9sZV9uYW1lIjoiYWRtaW5pc3RyYXRvciIsImxpY2Vuc2UiOiJwb3dlcmVkIGJ5IGJsYWRleCIsInBvc3RfaWQiOiIxMTIzNTk4ODE3NzM4Njc1MjAxIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSIsInNjb3BlIjpbImFsbCJdLCJuaWNrX25hbWUiOiLnrqHnkIblkZgiLCJleHAiOjE2MDYzODA5NDAsImRlcHRfaWQiOiIxMTIzNTk4ODEzNzM4Njc1MjAxIiwianRpIjoiZGZhMWU4MWEtMGMzMS00ZDdjLTgyNDItZDZjOGJkNjQzOTc5IiwiYWNjb3VudCI6ImFkbWluIn0.mM3Vl_M7qsuuwrKxBe8-oBt0FWf25EQAEYRVVo09FR8; saber-refresh-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJ1c2VyX25hbWUiOiJhZG1pbiIsInJlYWxfbmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vZ3cuYWxpcGF5b2JqZWN0cy5jb20vem9zL3Jtc3BvcnRhbC9CaWF6ZmFueG1hbU5Sb3h4VnhrYS5wbmciLCJhdXRob3JpdGllcyI6WyJhZG1pbmlzdHJhdG9yIl0sImNsaWVudF9pZCI6InNhYmVyIiwicm9sZV9uYW1lIjoiYWRtaW5pc3RyYXRvciIsImxpY2Vuc2UiOiJwb3dlcmVkIGJ5IGJsYWRleCIsInBvc3RfaWQiOiIxMTIzNTk4ODE3NzM4Njc1MjAxIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSIsInNjb3BlIjpbImFsbCJdLCJuaWNrX25hbWUiOiLnrqHnkIblkZgiLCJhdGkiOiJkZmExZTgxYS0wYzMxLTRkN2MtODI0Mi1kNmM4YmQ2NDM5NzkiLCJleHAiOjE2MDY5ODIxNDAsImRlcHRfaWQiOiIxMTIzNTk4ODEzNzM4Njc1MjAxIiwianRpIjoiNDFiZjQ1ZTYtYTQ0MS00ZTRhLTgzZDItYTlmNzE2NThiY2FiIiwiYWNjb3VudCI6ImFkbWluIn0.LV7P9r8n8Duwg6ydC0oZyQXkDCqMp5ASbGlRnDI6_IE

===Headers===  accept-language: zh-CN,zh;q=0.9

===Headers===  origin: http://localhost:1888

===Headers===  X-Forwarded-Host: localhost:1888,localhost

===Headers===  X-Forwarded-Proto: http,http

===Headers===  x-forwarded-for: 127.0.0.1

===Headers===  X-Forwarded-Port: 1888,80

===Headers===  accept: application/json, text/plain, */*

===Headers===  authorization: Basic c2FiZXI6c2FiZXJfc2VjcmV0

===Headers===  host: 192.168.0.120:8008

===Headers===  Forwarded: proto=http;host=localhost;for="127.0.0.1:52347"

===Headers===  content-type: multipart/form-data; boundary=----WebKitFormBoundaryB372X4tMsls98uc5

===Headers===  accept-encoding: gzip, deflate, br

===Headers===  user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36

===Headers===  sec-fetch-dest: empty

================   Request End   ================


2020-11-26 15:56:21.125 ERROR 24452 --- [  XNIO-1 task-3] o.f.c.e.impl.interceptor.CommandContext  : Error while closing command context


org.apache.ibatis.exceptions.PersistenceException: 

### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: ORA-00905: 缺失关键字


### The error may exist in org/flowable/job/service/db/mapping/entity/TimerJob.xml

### The error may involve org.flowable.job.service.impl.persistence.entity.TimerJobEntityImpl.selectTimerJobByTypeAndProcessDefinitionKeyNoTenantId

### The error occurred while executing a query

### SQL: select J.*         from ACT_RU_TIMER_JOB J         inner join ACT_RE_PROCDEF P on J.PROC_DEF_ID_ = P.ID_         where J.HANDLER_TYPE_ = ?         and P.KEY_ = ?         and (P.TENANT_ID_ = '' or P.TENANT_ID_ is null)

### Cause: java.sql.SQLSyntaxErrorException: ORA-00905: 缺失关键字


at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)

at org.flowable.common.engine.impl.db.DbSqlSession.selectListWithRawParameter(DbSqlSession.java:202)

at org.flowable.common.engine.impl.db.DbSqlSession.selectListWithRawParameter(DbSqlSession.java:196)

at org.flowable.common.engine.impl.db.DbSqlSession.selectList(DbSqlSession.java:157)

at org.flowable.common.engine.impl.db.DbSqlSession.selectList(DbSqlSession.java:162)

at org.flowable.common.engine.impl.db.DbSqlSession.selectList(DbSqlSession.java:142)

at org.flowable.job.service.impl.persistence.entity.data.impl.MybatisTimerJobDataManager.findJobsByTypeAndProcessDefinitionKeyNoTenantId(MybatisTimerJobDataManager.java:127)

at org.flowable.job.service.impl.persistence.entity.TimerJobEntityManagerImpl.findJobsByTypeAndProcessDefinitionKeyNoTenantId(TimerJobEntityManagerImpl.java:76)

at org.flowable.job.service.impl.TimerJobServiceImpl.findJobsByTypeAndProcessDefinitionKeyNoTenantId(TimerJobServiceImpl.java:58)

at org.flowable.engine.impl.bpmn.deployer.TimerManager.removeObsoleteTimers(TimerManager.java:48)

at org.flowable.engine.impl.bpmn.deployer.BpmnDeploymentHelper.updateTimersAndEvents(BpmnDeploymentHelper.java:174)

at org.flowable.engine.impl.bpmn.deployer.BpmnDeployer.updateTimersAndEvents(BpmnDeployer.java:291)

at org.flowable.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:94)

at org.flowable.engine.impl.persistence.deploy.DeploymentManager.deploy(DeploymentManager.java:62)

at org.flowable.engine.impl.cmd.DeployCmd.executeDeploy(DeployCmd.java:126)

at org.flowable.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:69)

at org.flowable.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:44)

at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:51)

at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:93)

at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:72)

at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:56)

at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:25)

at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53)

at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:72)

at org.flowable.common.spring.SpringTransactionInterceptor.lambda$execute$0(SpringTransactionInterceptor.java:56)

at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)

at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:56)

at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)

at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)

at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)

at org.flowable.engine.impl.RepositoryServiceImpl.deploy(RepositoryServiceImpl.java:97)

at org.flowable.engine.impl.repository.DeploymentBuilderImpl.deploy(DeploymentBuilderImpl.java:206)

at org.springblade.flow.engine.service.impl.FlowEngineServiceImpl.lambda$deployUpload$4(FlowEngineServiceImpl.java:271)

at java.lang.Iterable.forEach(Iterable.java:75)

at org.springblade.flow.engine.service.impl.FlowEngineServiceImpl.deployUpload(FlowEngineServiceImpl.java:260)

at org.springblade.flow.engine.service.impl.FlowEngineServiceImpl$$FastClassBySpringCGLIB$$bf26d689.invoke()

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)

at org.springblade.flow.engine.service.impl.FlowEngineServiceImpl$$EnhancerBySpringCGLIB$$11e7588f.deployUpload()

at org.springblade.flow.engine.controller.FlowManagerController.deployUpload(FlowManagerController.java:118)

at org.springblade.flow.engine.controller.FlowManagerController$$FastClassBySpringCGLIB$$6d0452c2.invoke()

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:750)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)

at org.springblade.core.secure.aspect.AuthAspect.preAuth(AuthAspect.java:67)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)

at org.springblade.core.log.aspect.RequestLogAspect.aroundApi(RequestLogAspect.java:111)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)

at org.springblade.flow.engine.controller.FlowManagerController$$EnhancerBySpringCGLIB$$d680e6d8.deployUpload()

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:893)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:798)

at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:665)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)

at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)

at com.github.xiaoymin.knife4j.spring.filter.ProductionSecurityFilter.doFilter(ProductionSecurityFilter.java:53)

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

at com.github.xiaoymin.knife4j.spring.filter.SecurityBasicAuthFilter.doFilter(SecurityBasicAuthFilter.java:90)

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

at org.springblade.core.tool.request.BladeRequestFilter.doFilter(BladeRequestFilter.java:49)

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:88)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:94)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:114)

at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:104)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

at com.alibaba.csp.sentinel.adapter.servlet.CommonFilter.doFilter(CommonFilter.java:110)

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)

at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)

at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)

at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)

at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)

at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)

at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)

at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)

at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)

at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)

at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)

at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)

at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)

at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)

at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)

at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)

at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)

at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)

at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)

at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)

at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)

at io.undertow.server.Connectors.executeRootHandler(Connectors.java:376)

at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

Caused by: java.sql.SQLSyntaxErrorException: ORA-00905: 缺失关键字


at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:392)

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:385)

at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:938)

at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:655)

at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)

at oracle.jdbc.driver.T4C8Odscrarr.doODNY(T4C8Odscrarr.java:96)

at oracle.jdbc.driver.T4CPreparedStatement.doDescribe(T4CPreparedStatement.java:719)

at oracle.jdbc.driver.OracleStatement.describe(OracleStatement.java:4223)

at oracle.jdbc.driver.OracleResultSetMetaData.(OracleResultSetMetaData.java:52)

at oracle.jdbc.driver.OracleStatement.getResultSetMetaData(OracleStatement.java:4206)

at oracle.jdbc.driver.OraclePreparedStatement.getMetaData(OraclePreparedStatement.java:4603)

at oracle.jdbc.driver.OraclePreparedStatementWrapper.getMetaData(OraclePreparedStatementWrapper.java:1510)

at oracle.jdbc.driver.OracleParameterMetaData.getParameterMetaData(OracleParameterMetaData.java:70)

at oracle.jdbc.driver.OraclePreparedStatement.getParameterMetaData(OraclePreparedStatement.java:11621)

at oracle.jdbc.driver.OraclePreparedStatementWrapper.getParameterMetaData(OraclePreparedStatementWrapper.java:1552)

at com.alibaba.druid.pool.DruidPooledPreparedStatement.getParameterMetaData(DruidPooledPreparedStatement.java:709)

at io.seata.rm.datasource.AbstractPreparedStatementProxy.initParameterHolder(AbstractPreparedStatementProxy.java:55)

at io.seata.rm.datasource.AbstractPreparedStatementProxy.(AbstractPreparedStatementProxy.java:73)

at io.seata.rm.datasource.PreparedStatementProxy.(PreparedStatementProxy.java:49)

at io.seata.rm.datasource.AbstractConnectionProxy.prepareStatement(AbstractConnectionProxy.java:122)

at sun.reflect.GeneratedMethodAccessor292.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:241)

at com.sun.proxy.$Proxy180.prepareStatement(Unknown Source)

at org.apache.ibatis.executor.statement.PreparedStatementHandler.instantiateStatement(PreparedStatementHandler.java:86)

at org.apache.ibatis.executor.statement.BaseStatementHandler.prepare(BaseStatementHandler.java:88)

at org.apache.ibatis.executor.statement.RoutingStatementHandler.prepare(RoutingStatementHandler.java:59)

at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:87)

at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)

at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)

at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)

at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)

at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)

... 153 common frames omitted


五、若有更多详细信息,请在下面提供。

目前还没有测试其他分布式事务是否有问题

MySQL没有出现此问题,只有业务数据库为oracle时才有

2条回答
  •  admin
    admin (楼主)
    2020-11-26 17:49

    看样子应该和seata关系不大,也许是flowable的oracle版本的数据库兼容问题,要解决这个问题需要去查一下他底层相关的sql语法,我留意一下

    作者追问:2020-11-26 17:49

    但是如果不加seata 的话可以正常部署成功,开始我们也怀疑是flowable和oracle的兼容问题,但是这个测试结果就开始怀疑seata了

    作者追问:2020-11-26 17:49

    但是如果不加seata 的话可以正常部署成功,开始我们也怀疑是flowable和oracle的兼容问题,但是这个测试结果就开始怀疑seata了

    回答: 2020-11-26 17:49

    好的,这个问题我后续会跟进一下

提交回复