Camunda DB连接已关闭,但由camunda引擎挑选

时间:2018-04-08 09:54:25

标签: java mysql spring tomcat camunda

我们使用带有RDS / MySql的camunda作为DB。它工作正常,但有时它说DB已关闭,因此抛出ProcessEngine异常。 以下是我从配置和日志中理解的内容:

  1. 我们的池中随时有5个活动连接(在数据源配置中指定)

  2. 有一个场景是关闭的。

  3. 我们看到了如下错误:

  4.   

    请求收到上下文路径:/ engine-rest请求收到路径

         

    信息:/ user PathInfo:/ user ExceptionHandler:

         

    org.camunda.bpm.engine.ProcessEngineException:流程引擎

         

    持久性异常      

    org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.rethrow(CommandInvocationContext.java:148)

        at org.camunda.bpm.engine.impl.interceptor.CommandContext.close(CommandContext.java:173)
    
        at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:113)
    
        at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:66)
    
        at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)
    
         

    ......引起:org.apache.ibatis.exceptions.PersistenceException:

         

    查询数据库时出错。原因:

         

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:

         

    连接关闭后不允许任何操作。

    中可能存在错误      

    org / camunda / bpm / engine / impl / mapping / entity / User.xml错误可能   涉及

         

    org.camunda.bpm.engine.impl.persistence.entity.UserEntity.selectUserByQueryCriteria

         

    执行查询SQL时发生错误:选择distinct RES。*

         

    来自ACT_ID_USER RES

         

    按RES.ID_ asc LIMIT排序? OFFSET?原因:

         

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:

         

    连接关闭后不允许任何操作。

    我们的tomcat道具指定:minIdle = 5;

    我最好的猜测:它在服务器上关闭,但由于上述属性,我们在本地维护。

    每个tomcat doc(https://tomcat.apache.org/tomcat-8.0-doc/jdbc-pool.html):

    testOnBorrow = true; validationQuery =“select 1”;

    两个道具应该修复它,因为它验证了连接。

    问题我想弄明白:

    1. 如何重现此问题?除了保持连接空闲几个小时之外,发生这种情况的情况。

    2. AWS RDS服务器是否关闭连接?如果是这样,我们能控制它吗?

1 个答案:

答案 0 :(得分:0)

正如@Zelldon所提到的,可以减少连接超时,然后我们就可以尝试了。它按预期工作。

为了确定,我运行了两个camunda实例,一个使用此修复,另一个没有。可以看到修复工作正常。

关于RDS,它确实关闭了连接,但我找不到任何文档。