相关文章推荐
魁梧的黑框眼镜  ·  33. WebSockets Support·  3 月前    · 
微醺的匕首  ·  Are there known file ...·  1 周前    · 
腼腆的桔子  ·  李昌镐和他的妻子_头条·  2 年前    · 
傲视众生的拐杖  ·  python csv read csv ...·  2 年前    · 
豪爽的金针菇  ·  Oracle ...·  2 年前    · 

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!

  • 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.

    image956×151 4.84 KB

    The last Call Activity of this model calls the Service Task:
    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,

    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,

    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!