Jobs are not getting executed

Hi All,

I am using Flowable 6.7.2 with Mongo DB, In my usecase i am using boundary timers at each lanes in workflow. The respective timer-job is creating in db, but after sometime when we look the jobs, nothing gets executed and the duedate for all the jobs are before the createdTime

Can i pls know the root cause of why these jobs are not getting executed or is there a way to execute these jobs ?

Attaching screenshots for reference,

Kindly do the needful !

Thank you,
Sriram B.

Hi Sriram,

is job executor running? Check engine configuration.

Regards
Martin

i got same issue…how can i solve this…?

Hi @paanjii2

For which jobs do you have this issue? Async jobs? Timer Jobs? Which Flowable version do you use?

Regards,
Simon

Hi @martin.grofcik ,

Yes the async executor is running. Refer below,

I have one more query, when we set variable using execution.setVariable() , will it support only upto 4k chars ? If the value exceeds 4k chars, then i am getting error. I could see some max limit is configured as in below image. Can you pls provide some clarity on this part.

No, Strings > 4000 chars are stored as BLOBS. There are queries limitations.

Regards
Martin

jobexecutor → try to debug.

Thanks for info @martin.grofcik . But, if the value exceeds 4k chars I am getting below error when setting the variable. Do you have any idea why I am getting this error ?

Error Message

Error while closing command context
java.lang.NullPointerException: Cannot invoke “org.flowable.common.engine.impl.persistence.entity.data.DataManager.create()” because the return value of “org.flowable.common.engine.impl.persistence.entity.AbstractEntityManager.getDataManager()” is null
at org.flowable.common.engine.impl.persistence.entity.AbstractEntityManager.create(AbstractEntityManager.java:47)
at org.flowable.common.engine.impl.persistence.entity.ByteArrayRef.setBytes(ByteArrayRef.java:102)
at org.flowable.common.engine.impl.persistence.entity.ByteArrayRef.setValue(ByteArrayRef.java:80)
at org.flowable.variable.service.impl.persistence.entity.VariableInstanceEntityImpl.setBytes(VariableInstanceEntityImpl.java:115)
at org.flowable.variable.service.impl.types.JsonType.setValue(JsonType.java:124)
at org.flowable.variable.service.impl.persistence.entity.VariableInstanceEntityImpl.setValue(VariableInstanceEntityImpl.java:141)
at org.flowable.variable.service.impl.persistence.entity.VariableScopeImpl.createVariableInstance(VariableScopeImpl.java:906)
at org.flowable.engine.impl.persistence.entity.ExecutionEntityImpl.createVariableInstance(ExecutionEntityImpl.java:839)
at org.flowable.engine.impl.persistence.entity.ExecutionEntityImpl.createVariableLocal(ExecutionEntityImpl.java:865)
at org.flowable.engine.impl.persistence.entity.ExecutionEntityImpl.setVariable(ExecutionEntityImpl.java:739)
at org.flowable.engine.impl.persistence.entity.ExecutionEntityImpl.setVariable(ExecutionEntityImpl.java:702)
at org.flowable.variable.service.impl.persistence.entity.VariableScopeImpl.setVariable(VariableScopeImpl.java:659)
at org.flowable.engine.impl.util.ProcessInstanceHelper.createAndStartProcessInstanceWithInitialFlowElement(ProcessInstanceHelper.java:227)
at org.flowable.engine.impl.util.ProcessInstanceHelper.createProcessInstance(ProcessInstanceHelper.java:109)
at org.flowable.engine.impl.cmd.StartProcessInstanceCmd.startProcessInstance(StartProcessInstanceCmd.java:239)
at org.flowable.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:128)
at org.flowable.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:53)
at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:67)
at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:140)
at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:114)
at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:72)
at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:26)
at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53)
at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:105)
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.RuntimeServiceImpl.startProcessInstanceById(RuntimeServiceImpl.java:162)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
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:681)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

Kindly Help !

ok will debug and check. Thanks @martin.grofcik

I thought about Strings. In case of Json, you can create a jUnit test and I can have a look.

Hi @martin.grofcik , I added this configuration and now it seems to be supporting more than 4k chars.
image

Thanks for your responses !

15t length is too long. It can cause performance issues. Try to find out why it is not possible to store Json as bytearray.

Hey @sriramb,

Looking at your last image it seems like you are using MongoDB. The Flowable MongoDB integration is in alpha state and it is not recommended for production usage. We do cannot guarantee that everything works as expected using it.

Cheers,
Filip

Hi @martin.grofcik @filiphr ,

Actually the use case where I need 10k string length is, I am using voting subprocess. For that we need to pass the voters list rt. I couldn’t set the voters list as array node if the length exceeds 4k.

Can i know if there is any other way to send or set the voters list in voting sub process ?

Cheers,
Sriram B.

Attach the list as document (content).

Hi @martin.grofcik , can you pls elaborate your suggestion ?

Hi @martin.grofcik ,

Thanks for your suggestion. I will look into it.

I would like to get clarified in one more area, As i mentioned earlier, i am using a subprocess for voting, say there are 300 voters and the voting threshold is “Anyone”. And if anyone voter acts on the task, it is nearly taking 40 to 55 secs to complete sub process. Is this expected behaviour ?

In the above workflow diagram, to reach the script “Count voting result”, it is nearly taking 40 to 55 secs. Please let me know if there is a way to improve performance in this area.

Best Regards,
Sriram B.