You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2021/09/15 02:24:54 UTC

[shardingsphere] branch master updated: support gov it tests (#12411)

This is an automated email from the ASF dual-hosted git repository.

menghaoran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 0de9efd  support gov it tests (#12411)
0de9efd is described below

commit 0de9efda6a2c8429be89fcb08a90f7a8ad201bf0
Author: Jieker <ji...@163.com>
AuthorDate: Wed Sep 15 10:24:21 2021 +0800

    support gov it tests (#12411)
    
    * support gov it tests
    
    * ci fixed
    
    * ci fixed
    
    * little change
    
    * close gov test
    
    * ci fixed
    
    * close gov test
    
    * little modify
---
 .../env/dataset/DataSetEnvironmentManager.java     |  2 +-
 .../junit/compose/ContainerCompose.java            |  2 +-
 .../junit/compose/GovernanceContainerCompose.java  | 10 ++---
 .../adapter/ShardingSphereAdapterContainer.java    | 11 ++---
 .../adapter/impl/ShardingSphereJDBCContainer.java  | 48 ++++++++++++++++++----
 .../adapter/impl/ShardingSphereProxyContainer.java | 16 ++++++--
 .../container/governance/ZookeeperContainer.java   |  2 +-
 .../test/integration/engine/it/BaseITCase.java     | 39 +++++++++++++-----
 .../test/integration/engine/it/BatchITCase.java    |  6 ++-
 .../test/integration/engine/it/ddl/BaseDDLIT.java  | 11 +++--
 .../test/integration/engine/it/dml/BaseDMLIT.java  | 11 +++--
 .../src/test/resources/env/engine-env.properties   |  2 +-
 12 files changed, 112 insertions(+), 48 deletions(-)

diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/env/dataset/DataSetEnvironmentManager.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/env/dataset/DataSetEnvironmentManager.java
index 2b8b43c..ed21134 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/env/dataset/DataSetEnvironmentManager.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/env/dataset/DataSetEnvironmentManager.java
@@ -53,7 +53,7 @@ import java.util.concurrent.Callable;
  */
 public final class DataSetEnvironmentManager {
     
-    private static final ExecutorServiceManager EXECUTOR_SERVICE_MANAGER = new ExecutorServiceManager(20);
+    private static final ExecutorServiceManager EXECUTOR_SERVICE_MANAGER = new ExecutorServiceManager(Runtime.getRuntime().availableProcessors() * 2 - 1);
     
     private final DataSet dataSet;
     
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/ContainerCompose.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/ContainerCompose.java
index a8a99b4..18ca944 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/ContainerCompose.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/ContainerCompose.java
@@ -159,7 +159,7 @@ public abstract class ContainerCompose extends ExternalResource implements Close
      * @return datasource map
      */
     public Map<String, DataSource> getDataSourceMap() {
-        return Collections.singletonMap("adapterForWriter", getAdapterContainer().getDataSource());
+        return Collections.singletonMap("adapterForWriter", getAdapterContainer().getDataSource(null));
     }
     
     @Override
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/GovernanceContainerCompose.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/GovernanceContainerCompose.java
index 909ed89..8f2586e 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/GovernanceContainerCompose.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/GovernanceContainerCompose.java
@@ -44,8 +44,6 @@ public final class GovernanceContainerCompose extends ContainerCompose {
 
     private final ZookeeperContainer zookeeperContainer;
 
-    private final Map<String, DataSource> result = new HashMap<>(2, 1);
-    
     public GovernanceContainerCompose(final String clusterName, final ParameterizedArray parameterizedArray) {
         super(clusterName, parameterizedArray);
         this.storageContainer = createStorageContainer();
@@ -69,12 +67,10 @@ public final class GovernanceContainerCompose extends ContainerCompose {
     
     @Override
     public Map<String, DataSource> getDataSourceMap() {
-        if (!result.isEmpty()) {
-            return result;
-        }
+        Map<String, DataSource> result = new HashMap<>(2, 1);
         String serverLists = zookeeperContainer.getServerLists();
-        result.put("adapterForWriter", adapterContainer.getGovernanceDataSource(serverLists));
-        result.put("adapterForReader", adapterContainerForReader.getGovernanceDataSource(serverLists));
+        result.put("adapterForWriter", adapterContainer.getDataSource(serverLists));
+        result.put("adapterForReader", adapterContainerForReader.getDataSourceForReader(serverLists));
         return result;
     }
 }
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/ShardingSphereAdapterContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/ShardingSphereAdapterContainer.java
index bc42493..df25205 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/ShardingSphereAdapterContainer.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/ShardingSphereAdapterContainer.java
@@ -65,19 +65,20 @@ public abstract class ShardingSphereAdapterContainer extends ShardingSphereConta
     }
     
     /**
-     * Get DataSource.
+     * Get data source.
      *
-     * @return DataSource
+     * @param serverLists server list
+     * @return data source
      */
-    public abstract DataSource getDataSource();
+    public abstract DataSource getDataSource(String serverLists);
 
     /**
      * Get governance data source.
      *
      * @param serverLists server list
-     * @return governance data source
+     * @return data source.
      */
-    public abstract DataSource getGovernanceDataSource(String serverLists);
+    public abstract DataSource getDataSourceForReader(String serverLists);
     
     private Collection<String> getUsersFromConfiguration(final YamlProxyServerConfiguration serverConfig) {
         for (YamlRuleConfiguration config : serverConfig.getRules()) {
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java
index 83bb6f1..c0b8231 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java
@@ -20,8 +20,8 @@ package org.apache.shardingsphere.test.integration.junit.container.adapter.impl;
 import com.google.common.base.Strings;
 import org.apache.shardingsphere.driver.api.yaml.YamlShardingSphereDataSourceFactory;
 import org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
-import org.apache.shardingsphere.infra.database.DefaultSchema;
 import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
+import org.apache.shardingsphere.infra.database.DefaultSchema;
 import org.apache.shardingsphere.infra.yaml.config.pojo.YamlRootConfiguration;
 import org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlModeConfiguration;
 import org.apache.shardingsphere.infra.yaml.config.swapper.YamlRuleConfigurationSwapperEngine;
@@ -41,8 +41,10 @@ import java.io.IOException;
 import java.sql.SQLException;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Properties;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 /**
@@ -53,6 +55,10 @@ public final class ShardingSphereJDBCContainer extends ShardingSphereAdapterCont
     private final AtomicBoolean isHealthy = new AtomicBoolean();
     
     private Map<String, DataSource> dataSourceMap;
+
+    private final AtomicReference<DataSource> dataSourceProvider = new AtomicReference<>();
+
+    private final AtomicReference<DataSource> dataSourceForReaderProvider = new AtomicReference<>();
     
     public ShardingSphereJDBCContainer(final ParameterizedArray parameterizedArray) {
         super("ShardingSphere-JDBC", "ShardingSphere-JDBC", true, parameterizedArray);
@@ -67,27 +73,51 @@ public final class ShardingSphereJDBCContainer extends ShardingSphereAdapterCont
         dataSourceMap = ((ShardingSphereStorageContainer) startables.get(0)).getDataSourceMap();
         isHealthy.set(true);
     }
-    
+
     /**
      * Get data source.
      *
+     * @param serverLists server list
      * @return data source
      */
-    public DataSource getDataSource() {
-        try {
-            return YamlShardingSphereDataSourceFactory.createDataSource(dataSourceMap, new File(EnvironmentPath.getRulesConfigurationFile(getParameterizedArray().getScenario())));
-        } catch (SQLException | IOException ex) {
-            throw new RuntimeException(ex);
+    public DataSource getDataSource(final String serverLists) {
+        DataSource dataSource = dataSourceProvider.get();
+        if (Objects.isNull(dataSource)) {
+            if (null != serverLists && !"".equals(serverLists)) {
+                dataSourceProvider.lazySet(createGovernanceDataSource(serverLists));
+            } else {
+                try {
+                    dataSourceProvider.lazySet(YamlShardingSphereDataSourceFactory.createDataSource(dataSourceMap,
+                            new File(EnvironmentPath.getRulesConfigurationFile(getParameterizedArray().getScenario()))));
+                } catch (SQLException | IOException ex) {
+                    throw new RuntimeException(ex);
+                }
+            }
+        }
+        return dataSourceProvider.get();
+    }
+
+    /**
+     * Get governance data source for reader.
+     *
+     * @param serverLists server list
+     * @return data source
+     */
+    public DataSource getDataSourceForReader(final String serverLists) {
+        DataSource dataSource = dataSourceForReaderProvider.get();
+        if (Objects.isNull(dataSource)) {
+            dataSourceForReaderProvider.lazySet(createGovernanceDataSource(serverLists));
         }
+        return dataSourceForReaderProvider.get();
     }
 
     /**
-     * Get governance data source.
+     * Create governance data source.
      *
      * @param serverLists server list
      * @return data source
      */
-    public DataSource getGovernanceDataSource(final String serverLists) {
+    private DataSource createGovernanceDataSource(final String serverLists) {
         try {
             File yamlFile = new File(EnvironmentPath.getRulesConfigurationFile(getParameterizedArray().getScenario()));
             YamlRootConfiguration rootConfig = YamlEngine.unmarshal(yamlFile, YamlRootConfiguration.class);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereProxyContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereProxyContainer.java
index 747a283..ff6e5ce 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereProxyContainer.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereProxyContainer.java
@@ -103,7 +103,7 @@ public final class ShardingSphereProxyContainer extends ShardingSphereAdapterCon
      *
      * @return DataSource
      */
-    public DataSource getDataSource() {
+    private DataSource getDataSource() {
         DataSource dataSource = dataSourceProvider.get();
         if (Objects.isNull(dataSource)) {
             dataSourceProvider.lazySet(createDataSource());
@@ -112,12 +112,22 @@ public final class ShardingSphereProxyContainer extends ShardingSphereAdapterCon
     }
 
     /**
+     * Get data source.
+     *
+     * @param serverLists server list
+     * @return data source
+     */
+    public DataSource getDataSource(final String serverLists) {
+        return getDataSource();
+    }
+
+    /**
      * Get governance data source.
      *
      * @param serverLists server list
-     * @return governance data source
+     * @return data source.
      */
-    public DataSource getGovernanceDataSource(final String serverLists) {
+    public DataSource getDataSourceForReader(final String serverLists) {
         return getDataSource();
     }
 
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/governance/ZookeeperContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/governance/ZookeeperContainer.java
index 0757eb3..c0e6cc8 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/governance/ZookeeperContainer.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/governance/ZookeeperContainer.java
@@ -34,6 +34,6 @@ public final class ZookeeperContainer extends ShardingSphereContainer {
      * @return server list
      */
     public String getServerLists() {
-        return this.getHost() + getMappedPort(2181);
+        return this.getHost() + ":" + getMappedPort(2181);
     }
 }
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
index f96bb13..c0dd225 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
@@ -35,7 +35,6 @@ import org.junit.Rule;
 import org.junit.runner.RunWith;
 
 import javax.sql.DataSource;
-import java.io.IOException;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
@@ -82,27 +81,47 @@ public abstract class BaseITCase {
         this.adapterContainer = compose.getAdapterContainer();
         this.integrationTestCase = parameterizedArray.getTestCaseContext().getTestCase();
     }
-    
+
     @Before
-    public void init() throws IOException {
+    public void init() throws Exception {
         dataSourceMap = compose.getDataSourceMap();
         targetDataSource = dataSourceMap.get("adapterForWriter");
         if (compose instanceof GovernanceContainerCompose) {
             dataSourceForReader = dataSourceMap.get("adapterForReader");
+            int waitForGov = 10;
+            while (waitForGov-- > 0) {
+                try (Connection connection = targetDataSource.getConnection()) {
+                    return;
+                } catch (NullPointerException ignored) {
+                    Thread.sleep(2000);
+                }
+            }
         }
     }
     
     @After
     public void tearDown() throws Exception {
-        if (targetDataSource instanceof ShardingSphereDataSource) {
-            ((ShardingSphereDataSource) targetDataSource).getContextManager().close();
-        }
-        if (null != dataSourceForReader && dataSourceForReader instanceof ShardingSphereDataSource) {
-            ((ShardingSphereDataSource) dataSourceForReader).getContextManager().close();
-            dataSourceMap.clear();
+        // TODO Closing data sources gracefully.
+//        if (targetDataSource instanceof ShardingSphereDataSource) {
+//            closeDataSource(((ShardingSphereDataSource) targetDataSource));
+//        }
+//        if (null != dataSourceForReader && dataSourceForReader instanceof ShardingSphereDataSource) {
+//            closeDataSource(((ShardingSphereDataSource) dataSourceForReader));
+//        }
+    }
+
+    /**
+     * Ensure to close shardingsphere datasource.
+     * @param dataSource shardingsphere datasource
+     * @throws Exception sql execute exception.
+     */
+    private void closeDataSource(final ShardingSphereDataSource dataSource) throws Exception {
+        try (Connection connection = dataSource.getConnection()) {
+            connection.createStatement().execute("SELECT 1");
         }
+        dataSource.getContextManager().close();
     }
-    
+
     protected abstract String getSQL() throws ParseException;
 
     /**
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java
index 622f781..4deacb8 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java
@@ -33,6 +33,7 @@ import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironment
 import org.apache.shardingsphere.test.integration.junit.compose.GovernanceContainerCompose;
 import org.apache.shardingsphere.test.integration.junit.param.model.CaseParameterizedArray;
 
+import javax.sql.DataSource;
 import java.io.IOException;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -94,8 +95,9 @@ public abstract class BatchITCase extends BaseITCase {
         DataSetMetadata expectedDataSetMetadata = expected.getMetadataList().get(0);
         for (String each : new InlineExpressionParser(expectedDataSetMetadata.getDataNodes()).splitAndEvaluate()) {
             DataNode dataNode = new DataNode(each);
-            try (Connection connection = getCompose() instanceof GovernanceContainerCompose
-                    ? getDataSourceForReader().getConnection() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName()).getConnection();
+            DataSource dataSource = getCompose() instanceof GovernanceContainerCompose
+                    ? getDataSourceForReader() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName());
+            try (Connection connection = dataSource.getConnection();
                  PreparedStatement preparedStatement = connection.prepareStatement(String.format("SELECT * FROM %s ORDER BY 1", dataNode.getTableName()))) {
                 assertDataSet(preparedStatement, expected.findRows(dataNode), expectedDataSetMetadata);
             }
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
index b4dce9c..ae4313e 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
@@ -31,6 +31,7 @@ import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironment
 import org.apache.shardingsphere.test.integration.junit.compose.GovernanceContainerCompose;
 import org.apache.shardingsphere.test.integration.junit.param.model.AssertionParameterizedArray;
 
+import javax.sql.DataSource;
 import java.io.IOException;
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
@@ -124,8 +125,9 @@ public abstract class BaseDDLIT extends SingleITCase {
     private List<DataSetColumn> getActualColumns(final Collection<DataNode> dataNodes) throws SQLException {
         Set<DataSetColumn> result = new LinkedHashSet<>();
         for (DataNode each : dataNodes) {
-            try (Connection connection = getCompose() instanceof GovernanceContainerCompose
-                    ? getDataSourceForReader().getConnection() : getStorageContainer().getDataSourceMap().get(each.getDataSourceName()).getConnection()) {
+            DataSource dataSource = getCompose() instanceof GovernanceContainerCompose
+                    ? getDataSourceForReader() : getStorageContainer().getDataSourceMap().get(each.getDataSourceName());
+            try (Connection connection = dataSource.getConnection()) {
                 result.addAll(getActualColumns(connection, each.getTableName()));
             }
         }
@@ -149,8 +151,9 @@ public abstract class BaseDDLIT extends SingleITCase {
     private List<DataSetIndex> getActualIndexes(final Collection<DataNode> dataNodes) throws SQLException {
         Set<DataSetIndex> result = new LinkedHashSet<>();
         for (DataNode each : dataNodes) {
-            try (Connection connection = getCompose() instanceof GovernanceContainerCompose
-                    ? getDataSourceForReader().getConnection() : getStorageContainer().getDataSourceMap().get(each.getDataSourceName()).getConnection()) {
+            DataSource dataSource = getCompose() instanceof GovernanceContainerCompose
+                    ? getDataSourceForReader() : getStorageContainer().getDataSourceMap().get(each.getDataSourceName());
+            try (Connection connection = dataSource.getConnection()) {
                 result.addAll(getActualIndexes(connection, each.getTableName()));
             }
         }
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java
index 361fd5c..487392a 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java
@@ -30,6 +30,7 @@ import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironment
 import org.apache.shardingsphere.test.integration.junit.compose.GovernanceContainerCompose;
 import org.apache.shardingsphere.test.integration.junit.param.model.AssertionParameterizedArray;
 
+import javax.sql.DataSource;
 import java.io.IOException;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -76,9 +77,10 @@ public abstract class BaseDMLIT extends SingleITCase {
         DataSetMetadata expectedDataSetMetadata = getDataSet().getMetadataList().get(0);
         for (String each : new InlineExpressionParser(expectedDataSetMetadata.getDataNodes()).splitAndEvaluate()) {
             DataNode dataNode = new DataNode(each);
+            DataSource dataSource = getCompose() instanceof GovernanceContainerCompose
+                    ? getDataSourceForReader() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName());
             try (
-                    Connection connection = getCompose() instanceof GovernanceContainerCompose
-                            ? getDataSourceForReader().getConnection() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName()).getConnection();
+                    Connection connection = dataSource.getConnection();
                     PreparedStatement preparedStatement = connection.prepareStatement(generateFetchActualDataSQL(dataNode))) {
                 assertDataSet(preparedStatement, expectedDataSetMetadata, getDataSet().findRows(dataNode));
             }
@@ -103,9 +105,10 @@ public abstract class BaseDMLIT extends SingleITCase {
     private String getPrimaryKeyColumnNameForPostgreSQL(final DataNode dataNode) throws SQLException {
         String sql = String.format("SELECT a.attname, format_type(a.atttypid, a.atttypmod) AS data_type "
                 + "FROM pg_index i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey) WHERE i.indrelid = '%s'::regclass AND i.indisprimary", dataNode.getTableName());
+        DataSource dataSource = getCompose() instanceof GovernanceContainerCompose
+                ? getDataSourceForReader() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName());
         try (
-                Connection connection = getCompose() instanceof GovernanceContainerCompose
-                        ? getDataSourceForReader().getConnection() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName()).getConnection();
+                Connection connection = dataSource.getConnection();
                 Statement statement = connection.createStatement();
                 ResultSet resultSet = statement.executeQuery(sql)) {
             if (resultSet.next()) {
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/engine-env.properties b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/engine-env.properties
index e263ac5..4a46096 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/engine-env.properties
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/engine-env.properties
@@ -23,7 +23,7 @@ it.adapters=jdbc
 #it.scenarios=db,tbl,dbtbl_with_readwrite_splitting,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_governance,shadow
 it.scenarios=db,tbl,dbtbl_with_readwrite_splitting,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting_and_encrypt
 
-#it.databases=H2,MySQL,Oracle,SQLServer,PostgreSQL
+#it.databases=H2,MySQL,PostgreSQL
 it.databases=H2
 
 it.run.additional.cases=false