diff --git a/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DBUtil.java b/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DBUtil.java index 12a3aa747..ddeb220b5 100755 --- a/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DBUtil.java +++ b/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DBUtil.java @@ -391,6 +391,21 @@ private static synchronized Connection connect(DataBaseType dataBaseType, String url, Properties prop) { try { Class.forName(dataBaseType.getDriverClassName()); + try { + Enumeration drivers = DriverManager.getDrivers(); + while (drivers.hasMoreElements()) { + Driver driver = drivers.nextElement(); + if (StringUtils.equals(driver.getClass().getName(), dataBaseType.getDriverClassName())) { + try { + return driver.connect(url, prop); + } catch (Exception e) { + LOG.info("try connector failed", e); + } + } + } + } catch (Exception e) { + LOG.info("find driver error, back to DriverManager.getConnection", e); + } DriverManager.setLoginTimeout(Constant.TIMEOUT_SECONDS); return DriverManager.getConnection(url, prop); } catch (Exception e) {