lockTimeInMillis takes no effect

Hi!

We have set the lockTimeInMillis to 1200000 in the bpm-platform.xml.
But it takes no effect. In a Servicetask we upload a file to a ftp-server, that takes longer than five minutes. But after five minutes, a second thread starts the same process and so the file is overwritten again and again.

  <job-executor>
    <job-acquisition name="default">
      <properties>
	    <property name="lockTimeInMillis">1200000</property>
        <property name="maxJobsPerAcquisition">50</property>
        <property name="waitTimeInMillis">5000</property>
      </properties>
    </job-acquisition>
    <properties>
      <!-- Note: the following properties only take effect in a Tomcat environment -->
      <property name="queueSize">50</property>
      <property name="corePoolSize">30</property>
      <property name="maxPoolSize">50</property>
      <property name="keepAliveTime">0</property>
    </properties>
  </job-executor>

Has anyone an idea why? The Tomcat Server is definitely using this config-file. We use Camunda 7.7 and the standalone configuration.

Thanks!
Tim

Hi @kauffmat,

  • Please provide the process model that you use to verify this behavior.
  • What is the configured transaction timeout?
  • Do the log files show anything unusual?

Cheers,
Thorben

Hi @thorben,

the below shown workflow is called as Call Activity in another process model.

The last Call Activity of this model calls the Service Task:
image
subworkflow_ftp_versenden.bpmn (2.9 KB)

There is a listener on the “Start” node, the listener isn’t called multiple times. Only the Service Task.

In the log files is nothing unusual to see. After a time (much more than 5 minutes) there is an optimistic locking exception.

I cannot find a configured transaction timeout, where can I find it?

Is it possible to get/set the lockTimeInMillis in the Java Code? If yes, how to do that? I have some init-methods on startup where I could set it.

Here the complete bpm-platform.xml (4.0 KB), maybe you can see there something wrong.

Thanks for your help,
Tim

Hi!

I solved the problem by adding a bean of the RuntimeContainerJobExecutor to the application context and set this bean as property in the processEngineConfiguration.

<bean id="runtimeContainerJobExecutor"
	class="org.camunda.bpm.engine.impl.jobexecutor.RuntimeContainerJobExecutor">
	<property name="lockTimeInMillis" value="1200000" />
</bean>

<bean id="processEngineConfiguration"
	class="org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration">
	<property name="processEngineName" value="default" />
	.......
	<property name="jobExecutor" ref="runtimeContainerJobExecutor" />
</bean>

Best regards,
Tim

Hello there,
I have the exact same issue. But I struggle a little bit to understand your solution.
Can you please explain me what do you mean with application context and how did you set that bean as a property in the processEngine Config?

Thanks in advance, you would help me a lot!