I have been looking for references and some explanation about "maxLockTime" however the only post I have found is this one although I didn't find the answer to my questions there.
Is this parameter ever used ?
I haven't been able to find where the LockMonitorThread is started, therefore I believe it's never used, and the jobs in some situations are never unlocked.
The scenario that we have is:
* two different machines running one JobExecutor each (with several threads).
* the workflow definition is made up of async nodes and actions (parallel processing).
In case one instance (machine) stops working, the other one should pick up the work load of the other. After doing some tests I have seen that the job appears in the database lock by the JobExecutor and threads from one of the machines, and that job won't be unlocked (and therefore executed) by any JobExecutor thread running in the other machine. I thought that I could modify the code for starting the thread LockMonitorThread instead of just creating it, but if I try to start the thread I get a hibernate exception saying that the JobSession.findJobsWithOverdueLockTime query is missing, and the Jira ticket JBPM-1158 shows it as a pending issue.
I don't know if I am missing something or if it's just I don't understand the way maxLockTime, LockMonitorThread, etc... work.
I would appreciate any help.
has anyone ever used the maxLockTime, lockMonitorInterval, or lockBufferTime parameters having any effect ?
Does anyone know if the LockMonitorThread should be started or if it is a legacy class ?
Is there anyway of unlocking jobs, by a different thread that one starting the job without using LockMonitorThread ?