I am using the Activiti engine embeded with Alfresco 5.0.d.
In my workflow I have some boundary events, all of them attached with some service tasks used to send emails about expired tasks.
There are moments where, because of connectivity issues, Alfresco is unable to reach the mail server, and as the execution fails, users receive no emails.
I was looking at the database tables, and I found out this one ACT_RU_JOB.
In that table, I see the failed task is there.
Is it possible to force Activiti to retry it by updating any of the table's columns?
This is the register I am talking about:
| ID_ | REV_ | TYPE_ | LOCK_EXP_TIME_ | LOCK_OWNER_ | EXCLUSIVE_ | EXECUTION_ID_ | PROCESS_INSTANCE_ID_ | PROC_DEF_ID_ | RETRIES_ | EXCEPTION_STACK_ID_ | EXCEPTION_MSG_ | DUEDATE_ | REPEAT_ | HANDLER_TYPE_ | HANDLER_CFG_ | TENANT_ID_ |
+-------+------+-------+----------------+-------------+------------+---------------+----------------------+------------------------+----------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------+------------------+----------------+------------+
| 43144 | 7 | timer | NULL | NULL | 1 | 43143 | 43061 | termo_quitacao:3:41904 | 0 | 44747 | 03070039 Failed to execute supplied script: Error creating bean with name 'mail' defined in URL [jar:file:/opt/alfresco/tomcat/webapps/alfresco/WEB-INF/lib/alfresco-repository-5.0.d.jar!/alfresco/subsystems/email/OutboundSMTP/outboundSMTP-context.xml]:... | 2017-04-07 10:27:40 | NULL | timer-transition | boundarytimer1 | |
Thank you.
Solved! Go to Solution.
Nice. I was playing around with that even before seeing that thread (I know that playing with the database can be dangerous, but I decided to take the risk in this case).
My update statement looks like this: update ACT_RU_JOB set RETRIES_ = 3 where ID_ = 43144;
That seems to be exactly what was suggested in this answer https://community.alfresco.com/thread/222291-restart-process-after-exception#comment-790361
After that change, the task got executed again.
Thank you.
Douglas,
This question has come up before on the forums, in this post. As stated, you could either reset the number of retries for the job and the executor should pick it up again - OR you can manually trigger the job to try again using managementService.createJobQuery to get the job, and the managementService.executeJob().
Does this fit your criteria for a fix?
Hopefully you'll be set on the right track
Nice. I was playing around with that even before seeing that thread (I know that playing with the database can be dangerous, but I decided to take the risk in this case).
My update statement looks like this: update ACT_RU_JOB set RETRIES_ = 3 where ID_ = 43144;
That seems to be exactly what was suggested in this answer https://community.alfresco.com/thread/222291-restart-process-after-exception#comment-790361
After that change, the task got executed again.
Thank you.
I got one more question about this.
Will the duedate update force the execution to wait to try again after the set date?
I was updating it for like, 5 minutes after "now".
Yes, it should be picking up the jobs based on the due date.
Regards,
Ciju
Thank you.
Ask for and offer help to other Alfresco Process Services and Activiti Users and members of the Alfresco team.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.