gpt4 book ai didi

java - Camunda 数据库连接关闭但被 camunda 引擎选中

转载 作者:行者123 更新时间:2023-11-28 22:25:01 27 4
gpt4 key购买 nike

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

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

  2. 有一个关闭的场景。

  3. 我们看到如下错误:

Request received Context path: /engine-rest Request received Path

Info: /user PathInfo: /user ExceptionHandler:

org.camunda.bpm.engine.ProcessEngineException: Process engine

persistence exception at

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)

...... Caused by: org.apache.ibatis.exceptions.PersistenceException:

Error querying database. Cause:

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

No operations allowed after connection closed. The error may exist in

org/camunda/bpm/engine/impl/mapping/entity/User.xml The error may involve

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

The error occurred while executing a query SQL: select distinct RES.*

from ACT_ID_USER RES

order by RES.ID_ asc LIMIT ? OFFSET ? Cause:

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

No operations allowed after connection closed.

我们的 tomcat Prop 指定:minIdle = 5;

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

根据 tomcat 文档 ( https://tomcat.apache.org/tomcat-8.0-doc/jdbc-pool.html ):

testOnBorrow = true;validationQuery = "选择 1";

这两个 Prop 应该在验证连接时修复它。

我想弄清楚的问题:

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

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

最佳答案

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

为了确定,我运行了两个 camunda 实例,一个有此修复,另一个没有。可以看到修复有效。

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

关于java - Camunda 数据库连接关闭但被 camunda 引擎选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49716621/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com