We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
<dependency> <groupId>com.yomahub</groupId> <artifactId>liteflow-rule-sql</artifactId> <version>2.12.2</version> </dependency>
规则配置源使用SQL数据库配置源,并开启自动轮询刷新
规则配置源
SQL数据库配置源
liteflow: rule-source-ext-data-map: ... pollingEnabled: true pollingIntervalSeconds: 60 pollingStartSeconds: 60 ...
数据库连接泄漏,占满连接池,均指向CHECK_SQL_PATTERN = "SELECT {},{} FROM {}"轮询检查sql
CHECK_SQL_PATTERN = "SELECT {},{} FROM {}"
[arthas@1]$ vmtool --action getInstances --className com.alibaba.druid.pool.DruidDataSource --express 'instances[2].getActiveCount()' @Integer[100] [arthas@1]$ vmtool --action getInstances --className com.alibaba.druid.pool.DruidDataSource --express 'instances[2].getDataSourceStat().getConnectionList()'
项目中配置了多数据源,指向同一个数据库,如sharding 在com.yomahub.liteflow.parser.sql.util包的LiteFlowJdbcUtil类的getConn方法中 遍历多数据源从for循环中取出connection = dataSource.getConnection();后,多数据源均满足条件,被重复赋值的connection对象没有执行close方法手动关闭,引发连接泄漏
com.yomahub.liteflow.parser.sql.util
LiteFlowJdbcUtil
getConn
connection = dataSource.getConnection();
connection
建议在for循环中,获取到连接后,直接break跳出并在方法中返回该连接对象
问题版本
使用场景
规则配置源使用SQL数据库配置源,并开启自动轮询刷新问题现象
数据库连接泄漏,占满连接池,均指向
CHECK_SQL_PATTERN = "SELECT {},{} FROM {}"轮询检查sql问题代码
项目中配置了多数据源,指向同一个数据库,如sharding
在
com.yomahub.liteflow.parser.sql.util包的LiteFlowJdbcUtil类的getConn方法中遍历多数据源从for循环中取出
connection = dataSource.getConnection();后,多数据源均满足条件,被重复赋值的connection对象没有执行close方法手动关闭,引发连接泄漏建议
建议在for循环中,获取到连接后,直接break跳出并在方法中返回该连接对象