模块/ job / filejdbc的spring xd连接池

时间:2015-03-21 20:13:30

标签: spring-xd

我的用例是使用spring xd filejdbc作业模块处理50个csv文件并将其加载到MySQL DB。

为此,我在spring-xd-1.0.0.RELEASE \ xd \ config \ servers.yml中配置了数据源连接池,如:

弹簧:   数据源:     url:jdbc:mysql:// localhost:3306 / spring_xd     用户名:springxd     密码:springxd     driverClassName:com.mysql.jdbc.Driver     maxActive:75     maxIdle:10     minIdle:10     initialSize:10     maxWait:30000     validationQuery:选择1     validationInterval:30000     testOnBorrow:是的     testOnReturn:false     testWhileIdle:false     timeBetweenEvictionRunsMillis:10000     minEvictableIdleTimeMillis:60000     removeAbandoned:true     removeAbandonedTimeout:300     logAbandoned:true

当singlenode启动时,xd正在初始化此池。

但问题是,当filejdbc作业再次启动时,会使用上述配置初始化连接池。从\ spring-xd-1.0.0.RELEASE \ xd \ config \ modules \ job \ filejdbc \ filejdbc.properties使用来自servers.yml的相同连接池配置

仅使用filejdbc连接池而不是spring xd将csv文件数据加载到数据库。

因此我的数据库连接已用尽。

现在,当我将servers.yml中的连接减少到max active 20时,并且当作业启动时,spring xd会抛出连接池排气异常,因为我要加载50个csv文件。

对于我的自定义数据库,我根本无法将servers.xml max active配置为10,将filejdbc maxactive配置为60,以便在filejdbc作业启动时可以加载50个文件。这总是引发连接排气异常。

请告知。

详情如下: spring xd version - spring-xd-1.0.0.RELEASE in singlenode java版本 - jdk 7 环境 - 窗口

1 个答案:

答案 0 :(得分:0)

本地消息总线中存在一个错误,其中所有分区同时执行。在您的情况下导致连接池耗尽。我们已经为此开了一个错误 - https://jira.spring.io/browse/XD-2868

在修复此问题之前,您可以使用Redis或RabbitMQ等其他消息总线运行,您应该看到您的工作已完成。您可以尝试启动Redis服务器,然后使用以下命令启动单节点:

xd-singlenode --transport redis