[ISSUE #554] Update druid version and set ConnectionErrorRetryAttempts
diff --git a/rocketmq-connect-jdbc/pom.xml b/rocketmq-connect-jdbc/pom.xml
index 61680f1..2feaa22 100644
--- a/rocketmq-connect-jdbc/pom.xml
+++ b/rocketmq-connect-jdbc/pom.xml
@@ -263,7 +263,7 @@
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
- <version>1.0.31</version>
+ <version>1.1.22</version>
</dependency>
</dependencies>
diff --git a/rocketmq-connect-jdbc/src/main/java/org/apache/rocketmq/connect/jdbc/common/DBUtils.java b/rocketmq-connect-jdbc/src/main/java/org/apache/rocketmq/connect/jdbc/common/DBUtils.java
index 31a86d1..963fbf6 100644
--- a/rocketmq-connect-jdbc/src/main/java/org/apache/rocketmq/connect/jdbc/common/DBUtils.java
+++ b/rocketmq-connect-jdbc/src/main/java/org/apache/rocketmq/connect/jdbc/common/DBUtils.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.connect.jdbc.common;
+import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.apache.rocketmq.connect.jdbc.config.Config;
import org.apache.rocketmq.connect.jdbc.connector.JdbcSourceTask;
@@ -189,21 +190,21 @@
}
public static DataSource initDataSource(Config config) throws Exception {
- Map<String, String> map = new HashMap<>();
- map.put("driverClassName", "com.mysql.cj.jdbc.Driver");
- map.put("url",
- "jdbc:mysql://" + config.getDbUrl() + ":" + config.getDbPort() + "?useSSL=true&verifyServerCertificate=false&serverTimezone=GMT%2B8&characterEncoding=utf8");
- map.put("username", config.getDbUsername());
- map.put("password", config.getDbPassword());
- map.put("initialSize", "1");
- map.put("maxActive", "2");
- map.put("maxWait", "60000");
- map.put("timeBetweenEvictionRunsMillis", "60000");
- map.put("minEvictableIdleTimeMillis", "300000");
- map.put("validationQuery", "SELECT 1 FROM DUAL");
- map.put("testWhileIdle", "true");
- log.info("{} config read successful", map);
- DataSource dataSource = DruidDataSourceFactory.createDataSource(map);
+ DruidDataSource dataSource = new DruidDataSource();
+ dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
+ dataSource.setUrl("jdbc:mysql://" + config.getDbUrl() + ":" + config.getDbPort() + "?useSSL=true&verifyServerCertificate=false&serverTimezone=GMT%2B8&characterEncoding=utf8");
+ dataSource.setUsername(config.getDbUsername());
+ dataSource.setPassword(config.getDbPassword());
+ dataSource.setInitialSize(1);
+ dataSource.setMaxActive(2);
+ dataSource.setMaxWait(60000);
+ dataSource.setTimeBetweenEvictionRunsMillis(60000);
+ dataSource.setConnectionErrorRetryAttempts(2);
+ dataSource.setBreakAfterAcquireFailure(true);
+ dataSource.setMinEvictableIdleTimeMillis(300000);
+ dataSource.setValidationQuery("SELECT 1 FROM DUAL");
+ dataSource.setTestWhileIdle(true);
+
log.info("init data source success");
return dataSource;
}