04-10-2017 02:52 PM
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.
04-10-2017 04:34 PM
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.
04-10-2017 04:26 PM
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
04-10-2017 04:34 PM
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.
04-10-2017 04:38 PM
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".
04-11-2017 01:28 PM
Yes, it should be picking up the jobs based on the due date.
Regards,
Ciju
04-11-2017 01:55 PM
Thank you.
Explore our Alfresco products with the links below. Use labels to filter content by product module.