Camunda Cockpit and Rest API down but application up/JobExecutor config












4















We are facing a major incident in our Camunda Orchestrator. When we hit 100 running process instances, Camunda Cockpit takes an eternity and never responds.
We have the same issue when calling /app/engine/.
Few messages are being consumed from RabbitMQ, and then everything stops.



The application however is not down.
I suspect a process engine configuration issue, because of being unable to get the job executor log.



When I set JobExecutorActivate to false, all things go right for Cockpit and queue consumption, but processes stop at the end of the first subprocess.



We have this log loop non stop:



2018/11/17 14:47:33.258 DEBUG ENGINE-14012 Job acquisition thread woke up
2018/11/17 14:47:33.258 DEBUG ENGINE-14022 Acquired 0 jobs for process engine 'default':
2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8338]
2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8217]
2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8256]
2018/11/17 14:47:33.258 DEBUG ENGINE-14011 Job acquisition thread sleeping for 100 millis
2018/11/17 14:47:33.359 DEBUG ENGINE-14012 Job acquisition thread woke up


And this log too (for queue consumption):



2018/11/17 15:04:19.582 DEBUG Waiting for message from consumer. {"null":null}
2018/11/17 15:04:19.582 DEBUG Retrieving delivery for Consumer@5d05f453: tags=[{amq.ctag-0ivcbc2QL7g-Duyu2Rcbow=queue_response}], channel=Cached Rabbit Channel: AMQChannel(amqp://guest@127.0.0.1:5672/,4), conn: Proxy@77a5983d Shared Rabbit Connection: SimpleConnection@17a1dd78 [delegate=amqp://guest@127.0.0.1:5672/, localPort= 49812], acknowledgeMode=AUTO local queue size=0 {"null":null}


Environment :
Spring Boot 2.0.3.RELEASE, Camunda v7.9.0 with PostgreSQL, RabbitMQ



Camunda BPM listen and push to 165 RabbitMQ queue.



Configuration :



# Data source (PostgreSql)
com.campDo.fr.camunda.datasource.url=jdbc:postgresql://localhost:5432/campDo
com.campDo.fr.camunda.datasource.username=campDo
com.campDo.fr.camunda.datasource.password=password
com.campDo.fr.camunda.datasource.driver-class-name=org.postgresql.Driver
com.campDo.fr.camunda.bpm.database.jdbc-batch-processing=false
oms.camunda.retry.timer=1
oms.camunda.retry.nb-max=2


SpringProcessEngineConfiguration :



@Bean
public SpringProcessEngineConfiguration processEngineConfiguration() throws IOException {
final SpringProcessEngineConfiguration config = new SpringProcessEngineConfiguration();
config.setDataSource(camundaDataSource);
config.setDatabaseSchemaUpdate("true");
config.setTransactionManager(transactionManager());
config.setHistory("audit");
config.setJobExecutorActivate(true);
config.setMetricsEnabled(false);
final Resource resources = resourceLoader.getResources(CLASSPATH_ALL_URL_PREFIX + "/processes/*.bpmn");
config.setDeploymentResources(resources);

return config;
}


Pom dependencies :



 <dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
</dependency>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
</dependency>


I am quite sure that my job executor config is wrong.



Update :



I can start cockpit and make Camunda consume messages by setting JobExecutorActivate to false, but processes are still stopping at the first job executor required step:



config.setJobExecutorActivate(false);


Thanks for your help.










share|improve this question





























    4















    We are facing a major incident in our Camunda Orchestrator. When we hit 100 running process instances, Camunda Cockpit takes an eternity and never responds.
    We have the same issue when calling /app/engine/.
    Few messages are being consumed from RabbitMQ, and then everything stops.



    The application however is not down.
    I suspect a process engine configuration issue, because of being unable to get the job executor log.



    When I set JobExecutorActivate to false, all things go right for Cockpit and queue consumption, but processes stop at the end of the first subprocess.



    We have this log loop non stop:



    2018/11/17 14:47:33.258 DEBUG ENGINE-14012 Job acquisition thread woke up
    2018/11/17 14:47:33.258 DEBUG ENGINE-14022 Acquired 0 jobs for process engine 'default':
    2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8338]
    2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8217]
    2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8256]
    2018/11/17 14:47:33.258 DEBUG ENGINE-14011 Job acquisition thread sleeping for 100 millis
    2018/11/17 14:47:33.359 DEBUG ENGINE-14012 Job acquisition thread woke up


    And this log too (for queue consumption):



    2018/11/17 15:04:19.582 DEBUG Waiting for message from consumer. {"null":null}
    2018/11/17 15:04:19.582 DEBUG Retrieving delivery for Consumer@5d05f453: tags=[{amq.ctag-0ivcbc2QL7g-Duyu2Rcbow=queue_response}], channel=Cached Rabbit Channel: AMQChannel(amqp://guest@127.0.0.1:5672/,4), conn: Proxy@77a5983d Shared Rabbit Connection: SimpleConnection@17a1dd78 [delegate=amqp://guest@127.0.0.1:5672/, localPort= 49812], acknowledgeMode=AUTO local queue size=0 {"null":null}


    Environment :
    Spring Boot 2.0.3.RELEASE, Camunda v7.9.0 with PostgreSQL, RabbitMQ



    Camunda BPM listen and push to 165 RabbitMQ queue.



    Configuration :



    # Data source (PostgreSql)
    com.campDo.fr.camunda.datasource.url=jdbc:postgresql://localhost:5432/campDo
    com.campDo.fr.camunda.datasource.username=campDo
    com.campDo.fr.camunda.datasource.password=password
    com.campDo.fr.camunda.datasource.driver-class-name=org.postgresql.Driver
    com.campDo.fr.camunda.bpm.database.jdbc-batch-processing=false
    oms.camunda.retry.timer=1
    oms.camunda.retry.nb-max=2


    SpringProcessEngineConfiguration :



    @Bean
    public SpringProcessEngineConfiguration processEngineConfiguration() throws IOException {
    final SpringProcessEngineConfiguration config = new SpringProcessEngineConfiguration();
    config.setDataSource(camundaDataSource);
    config.setDatabaseSchemaUpdate("true");
    config.setTransactionManager(transactionManager());
    config.setHistory("audit");
    config.setJobExecutorActivate(true);
    config.setMetricsEnabled(false);
    final Resource resources = resourceLoader.getResources(CLASSPATH_ALL_URL_PREFIX + "/processes/*.bpmn");
    config.setDeploymentResources(resources);

    return config;
    }


    Pom dependencies :



     <dependency>
    <groupId>org.camunda.bpm.springboot</groupId>
    <artifactId>camunda-bpm-spring-boot-starter</artifactId>
    </dependency>
    <dependency>
    <groupId>org.camunda.bpm.springboot</groupId>
    <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
    </dependency>
    <dependency>
    <groupId>org.camunda.bpm.springboot</groupId>
    <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
    </dependency>


    I am quite sure that my job executor config is wrong.



    Update :



    I can start cockpit and make Camunda consume messages by setting JobExecutorActivate to false, but processes are still stopping at the first job executor required step:



    config.setJobExecutorActivate(false);


    Thanks for your help.










    share|improve this question



























      4












      4








      4








      We are facing a major incident in our Camunda Orchestrator. When we hit 100 running process instances, Camunda Cockpit takes an eternity and never responds.
      We have the same issue when calling /app/engine/.
      Few messages are being consumed from RabbitMQ, and then everything stops.



      The application however is not down.
      I suspect a process engine configuration issue, because of being unable to get the job executor log.



      When I set JobExecutorActivate to false, all things go right for Cockpit and queue consumption, but processes stop at the end of the first subprocess.



      We have this log loop non stop:



      2018/11/17 14:47:33.258 DEBUG ENGINE-14012 Job acquisition thread woke up
      2018/11/17 14:47:33.258 DEBUG ENGINE-14022 Acquired 0 jobs for process engine 'default':
      2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8338]
      2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8217]
      2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8256]
      2018/11/17 14:47:33.258 DEBUG ENGINE-14011 Job acquisition thread sleeping for 100 millis
      2018/11/17 14:47:33.359 DEBUG ENGINE-14012 Job acquisition thread woke up


      And this log too (for queue consumption):



      2018/11/17 15:04:19.582 DEBUG Waiting for message from consumer. {"null":null}
      2018/11/17 15:04:19.582 DEBUG Retrieving delivery for Consumer@5d05f453: tags=[{amq.ctag-0ivcbc2QL7g-Duyu2Rcbow=queue_response}], channel=Cached Rabbit Channel: AMQChannel(amqp://guest@127.0.0.1:5672/,4), conn: Proxy@77a5983d Shared Rabbit Connection: SimpleConnection@17a1dd78 [delegate=amqp://guest@127.0.0.1:5672/, localPort= 49812], acknowledgeMode=AUTO local queue size=0 {"null":null}


      Environment :
      Spring Boot 2.0.3.RELEASE, Camunda v7.9.0 with PostgreSQL, RabbitMQ



      Camunda BPM listen and push to 165 RabbitMQ queue.



      Configuration :



      # Data source (PostgreSql)
      com.campDo.fr.camunda.datasource.url=jdbc:postgresql://localhost:5432/campDo
      com.campDo.fr.camunda.datasource.username=campDo
      com.campDo.fr.camunda.datasource.password=password
      com.campDo.fr.camunda.datasource.driver-class-name=org.postgresql.Driver
      com.campDo.fr.camunda.bpm.database.jdbc-batch-processing=false
      oms.camunda.retry.timer=1
      oms.camunda.retry.nb-max=2


      SpringProcessEngineConfiguration :



      @Bean
      public SpringProcessEngineConfiguration processEngineConfiguration() throws IOException {
      final SpringProcessEngineConfiguration config = new SpringProcessEngineConfiguration();
      config.setDataSource(camundaDataSource);
      config.setDatabaseSchemaUpdate("true");
      config.setTransactionManager(transactionManager());
      config.setHistory("audit");
      config.setJobExecutorActivate(true);
      config.setMetricsEnabled(false);
      final Resource resources = resourceLoader.getResources(CLASSPATH_ALL_URL_PREFIX + "/processes/*.bpmn");
      config.setDeploymentResources(resources);

      return config;
      }


      Pom dependencies :



       <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter</artifactId>
      </dependency>
      <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
      </dependency>
      <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
      </dependency>


      I am quite sure that my job executor config is wrong.



      Update :



      I can start cockpit and make Camunda consume messages by setting JobExecutorActivate to false, but processes are still stopping at the first job executor required step:



      config.setJobExecutorActivate(false);


      Thanks for your help.










      share|improve this question
















      We are facing a major incident in our Camunda Orchestrator. When we hit 100 running process instances, Camunda Cockpit takes an eternity and never responds.
      We have the same issue when calling /app/engine/.
      Few messages are being consumed from RabbitMQ, and then everything stops.



      The application however is not down.
      I suspect a process engine configuration issue, because of being unable to get the job executor log.



      When I set JobExecutorActivate to false, all things go right for Cockpit and queue consumption, but processes stop at the end of the first subprocess.



      We have this log loop non stop:



      2018/11/17 14:47:33.258 DEBUG ENGINE-14012 Job acquisition thread woke up
      2018/11/17 14:47:33.258 DEBUG ENGINE-14022 Acquired 0 jobs for process engine 'default':
      2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8338]
      2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8217]
      2018/11/17 14:47:33.258 DEBUG ENGINE-14023 Execute jobs for process engine 'default': [8256]
      2018/11/17 14:47:33.258 DEBUG ENGINE-14011 Job acquisition thread sleeping for 100 millis
      2018/11/17 14:47:33.359 DEBUG ENGINE-14012 Job acquisition thread woke up


      And this log too (for queue consumption):



      2018/11/17 15:04:19.582 DEBUG Waiting for message from consumer. {"null":null}
      2018/11/17 15:04:19.582 DEBUG Retrieving delivery for Consumer@5d05f453: tags=[{amq.ctag-0ivcbc2QL7g-Duyu2Rcbow=queue_response}], channel=Cached Rabbit Channel: AMQChannel(amqp://guest@127.0.0.1:5672/,4), conn: Proxy@77a5983d Shared Rabbit Connection: SimpleConnection@17a1dd78 [delegate=amqp://guest@127.0.0.1:5672/, localPort= 49812], acknowledgeMode=AUTO local queue size=0 {"null":null}


      Environment :
      Spring Boot 2.0.3.RELEASE, Camunda v7.9.0 with PostgreSQL, RabbitMQ



      Camunda BPM listen and push to 165 RabbitMQ queue.



      Configuration :



      # Data source (PostgreSql)
      com.campDo.fr.camunda.datasource.url=jdbc:postgresql://localhost:5432/campDo
      com.campDo.fr.camunda.datasource.username=campDo
      com.campDo.fr.camunda.datasource.password=password
      com.campDo.fr.camunda.datasource.driver-class-name=org.postgresql.Driver
      com.campDo.fr.camunda.bpm.database.jdbc-batch-processing=false
      oms.camunda.retry.timer=1
      oms.camunda.retry.nb-max=2


      SpringProcessEngineConfiguration :



      @Bean
      public SpringProcessEngineConfiguration processEngineConfiguration() throws IOException {
      final SpringProcessEngineConfiguration config = new SpringProcessEngineConfiguration();
      config.setDataSource(camundaDataSource);
      config.setDatabaseSchemaUpdate("true");
      config.setTransactionManager(transactionManager());
      config.setHistory("audit");
      config.setJobExecutorActivate(true);
      config.setMetricsEnabled(false);
      final Resource resources = resourceLoader.getResources(CLASSPATH_ALL_URL_PREFIX + "/processes/*.bpmn");
      config.setDeploymentResources(resources);

      return config;
      }


      Pom dependencies :



       <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter</artifactId>
      </dependency>
      <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
      </dependency>
      <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
      </dependency>


      I am quite sure that my job executor config is wrong.



      Update :



      I can start cockpit and make Camunda consume messages by setting JobExecutorActivate to false, but processes are still stopping at the first job executor required step:



      config.setJobExecutorActivate(false);


      Thanks for your help.







      postgresql spring-boot rabbitmq activiti camunda






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 6 at 21:21







      Lho Ben

















      asked Nov 17 '18 at 14:10









      Lho BenLho Ben

      977617




      977617
























          1 Answer
          1






          active

          oldest

          votes


















          2














          First: if your process contains async steps (Jobs) then it will pause. Activating the jobExecutor will just say that camunda should manage how these jobs are worked on. If you disable the executor, your processes will still stop and since no-one will execute them, they remain stopped.
          Disabling job-execution is only sensible during testing or when you have multiple nodes and only some of them should do processing.



          To your main issue: the job executor works with a threadPool. From what you describe, it is very likely, that all threads in the pool block forever, so they never finish and never return, meaning your system is stuck.



          This happened to us a while ago when working with a smtp server, there was an infinite timeout on the connection so the threads kept waiting although the machine was not available.



          Since job execution in camunda is highly reliable and well tested per se, I yywould suggest that you double check everything you do in your delegates, if you are lucky (and I am right) you will find the spot where you just wait forever ...






          share|improve this answer

























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53352010%2fcamunda-cockpit-and-rest-api-down-but-application-up-jobexecutor-config%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2














            First: if your process contains async steps (Jobs) then it will pause. Activating the jobExecutor will just say that camunda should manage how these jobs are worked on. If you disable the executor, your processes will still stop and since no-one will execute them, they remain stopped.
            Disabling job-execution is only sensible during testing or when you have multiple nodes and only some of them should do processing.



            To your main issue: the job executor works with a threadPool. From what you describe, it is very likely, that all threads in the pool block forever, so they never finish and never return, meaning your system is stuck.



            This happened to us a while ago when working with a smtp server, there was an infinite timeout on the connection so the threads kept waiting although the machine was not available.



            Since job execution in camunda is highly reliable and well tested per se, I yywould suggest that you double check everything you do in your delegates, if you are lucky (and I am right) you will find the spot where you just wait forever ...






            share|improve this answer






























              2














              First: if your process contains async steps (Jobs) then it will pause. Activating the jobExecutor will just say that camunda should manage how these jobs are worked on. If you disable the executor, your processes will still stop and since no-one will execute them, they remain stopped.
              Disabling job-execution is only sensible during testing or when you have multiple nodes and only some of them should do processing.



              To your main issue: the job executor works with a threadPool. From what you describe, it is very likely, that all threads in the pool block forever, so they never finish and never return, meaning your system is stuck.



              This happened to us a while ago when working with a smtp server, there was an infinite timeout on the connection so the threads kept waiting although the machine was not available.



              Since job execution in camunda is highly reliable and well tested per se, I yywould suggest that you double check everything you do in your delegates, if you are lucky (and I am right) you will find the spot where you just wait forever ...






              share|improve this answer




























                2












                2








                2







                First: if your process contains async steps (Jobs) then it will pause. Activating the jobExecutor will just say that camunda should manage how these jobs are worked on. If you disable the executor, your processes will still stop and since no-one will execute them, they remain stopped.
                Disabling job-execution is only sensible during testing or when you have multiple nodes and only some of them should do processing.



                To your main issue: the job executor works with a threadPool. From what you describe, it is very likely, that all threads in the pool block forever, so they never finish and never return, meaning your system is stuck.



                This happened to us a while ago when working with a smtp server, there was an infinite timeout on the connection so the threads kept waiting although the machine was not available.



                Since job execution in camunda is highly reliable and well tested per se, I yywould suggest that you double check everything you do in your delegates, if you are lucky (and I am right) you will find the spot where you just wait forever ...






                share|improve this answer















                First: if your process contains async steps (Jobs) then it will pause. Activating the jobExecutor will just say that camunda should manage how these jobs are worked on. If you disable the executor, your processes will still stop and since no-one will execute them, they remain stopped.
                Disabling job-execution is only sensible during testing or when you have multiple nodes and only some of them should do processing.



                To your main issue: the job executor works with a threadPool. From what you describe, it is very likely, that all threads in the pool block forever, so they never finish and never return, meaning your system is stuck.



                This happened to us a while ago when working with a smtp server, there was an infinite timeout on the connection so the threads kept waiting although the machine was not available.



                Since job execution in camunda is highly reliable and well tested per se, I yywould suggest that you double check everything you do in your delegates, if you are lucky (and I am right) you will find the spot where you just wait forever ...







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 30 '18 at 11:18

























                answered Nov 28 '18 at 9:01









                Jan GalinskiJan Galinski

                7,38853457




                7,38853457






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53352010%2fcamunda-cockpit-and-rest-api-down-but-application-up-jobexecutor-config%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Guess what letter conforming each word

                    Port of Spain

                    Run scheduled task as local user group (not BUILTIN)