Przeglądaj źródła

[Improvement][Dao] Database add connection check (#5408) (#5409)

ruanwenjun 4 lat temu
rodzic
commit
71f39fa875

+ 6 - 4
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/datasource/ConnectionFactory.java

@@ -26,12 +26,14 @@ import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.apache.ibatis.transaction.TransactionFactory;
 import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
-import org.mybatis.spring.SqlSessionTemplate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
+import java.sql.SQLException;
 
 import javax.sql.DataSource;
 
+import org.mybatis.spring.SqlSessionTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * not spring manager connection, only use for init db, and alert module for non-spring application
@@ -81,7 +83,7 @@ public class ConnectionFactory extends SpringConnectionFactory {
      *
      * @return druid dataSource
      */
-    private DataSource buildDataSource() {
+    private DataSource buildDataSource() throws SQLException {
 
         DruidDataSource druidDataSource = dataSource();
         return druidDataSource;

+ 4 - 2
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/datasource/SpringConnectionFactory.java

@@ -28,6 +28,7 @@ import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.apache.ibatis.type.JdbcType;
 
+import java.sql.SQLException;
 import java.util.Properties;
 
 import org.mybatis.spring.SqlSessionTemplate;
@@ -77,7 +78,7 @@ public class SpringConnectionFactory {
      * @return druid dataSource
      */
     @Bean(destroyMethod = "")
-    public DruidDataSource dataSource() {
+    public DruidDataSource dataSource() throws SQLException {
 
         DruidDataSource druidDataSource = new DruidDataSource();
 
@@ -104,6 +105,7 @@ public class SpringConnectionFactory {
         druidDataSource.setValidationQueryTimeout(PropertyUtils.getInt(Constants.SPRING_DATASOURCE_VALIDATION_QUERY_TIMEOUT, 3));
         //auto commit
         druidDataSource.setDefaultAutoCommit(PropertyUtils.getBoolean(Constants.SPRING_DATASOURCE_DEFAULT_AUTO_COMMIT, true));
+        druidDataSource.init();
         return druidDataSource;
     }
 
@@ -113,7 +115,7 @@ public class SpringConnectionFactory {
      * @return DataSourceTransactionManager
      */
     @Bean
-    public DataSourceTransactionManager transactionManager() {
+    public DataSourceTransactionManager transactionManager() throws SQLException {
         return new DataSourceTransactionManager(dataSource());
     }