AnsweredAssumed Answered

jbpm workflow - exceeded maxLockTime (600000)

Question asked by leftright on Nov 14, 2012
I have a jbpm workflow that does content transformation from pdf with no text, to pdf containing text.
The workflow worked fine do far, but I found out recently that it keeps crashing on one very large document.
I get this in my alfresco.log

16:16:14,761 WARN  [org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread] setRollbackOnly: exceeded maxLockTime (600000) Timer(zacetek OCR obdelave,2012-10-19 16:03:33,000,TaskInstance(ocr:ocrInProcess),Token(/))
16:16:14,822 ERROR [org.jbpm.svc.Services] problem closing service 'persistence'
org.jbpm.JbpmException: setRollbackOnly was invoked while transaction is being managed externally
   at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:214)
   at org.jbpm.svc.Services.close(Services.java:294)
   at org.jbpm.JbpmContext.close(JbpmContext.java:136)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread$4.execute(AlfrescoJobExecutorThread.java:277)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:388)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:259)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread.executeJobImpl(AlfrescoJobExecutorThread.java:231)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread.access$700(AlfrescoJobExecutorThread.java:52)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread$3.doWork(AlfrescoJobExecutorThread.java:192)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread$3.doWork(AlfrescoJobExecutorThread.java:189)
   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:519)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread.executeJob(AlfrescoJobExecutorThread.java:188)
   at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:60)
16:16:15,032 ERROR [org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread] failed to execute Timer(zacetek OCR obdelave,2012-10-19 16:03:33,000,TaskInstance(ocr:ocrInProcess),Token(/))
org.jbpm.JbpmException: setRollbackOnly was invoked while transaction is being managed externally
   at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:214)
   at org.jbpm.svc.Services.close(Services.java:294)
   at org.jbpm.JbpmContext.close(JbpmContext.java:136)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread$4.execute(AlfrescoJobExecutorThread.java:277)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:388)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:259)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread.executeJobImpl(AlfrescoJobExecutorThread.java:231)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread.access$700(AlfrescoJobExecutorThread.java:52)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread$3.doWork(AlfrescoJobExecutorThread.java:192)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread$3.doWork(AlfrescoJobExecutorThread.java:189)
   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:519)
   at org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread.executeJob(AlfrescoJobExecutorThread.java:188)
   at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:60)
16:16:15,036 INFO  [org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutorThread] updated job exception and set to 0 retries: Timer(zacetek OCR obdelave,2012-10-19 16:03:33,000,TaskInstance(ocr:ocrInProcess),Token(/))

If I understand this error correctly the problem is exceeded maxLockTime(over 10 minutes), since the file is large
and the transformation of it takes more that 10 minutes. So how do I fix this?
I have found file  jbpm.cfg.xml  in folder tomcat/webapps/alfresco/WEB-INF/classes/test/alfresco/.
In this file I can set this property, but setting us has no effect, workflow still crashes.
      <field name="maxLockTime">
         <int value="600000" />
      </field> <!– 10 minutes –>
Since this is the only file with name jbpm.cfg.xml in alfresco, does that mean that I have maxLockTime in some other file with different name?
Or is there another jbpm.cfg.xml  in some .jar file, in these case what is the easiest way to modify it?
Or is there some other problem why my workflow fails only on that one file?
Thank you for your answers

Outcomes