diff --git a/src/main/java/org/opengauss/assessment/dao/AssessmentEntry.java b/src/main/java/org/opengauss/assessment/dao/AssessmentEntry.java index db2f38477b99b577246705ed87a29d889890175e..7ebf6c32d51adee955e0c4731c4069bd05606832 100644 --- a/src/main/java/org/opengauss/assessment/dao/AssessmentEntry.java +++ b/src/main/java/org/opengauss/assessment/dao/AssessmentEntry.java @@ -45,9 +45,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Stream; -import static org.opengauss.assessment.dao.AssessmentType.DDL; -import static org.opengauss.assessment.dao.AssessmentType.DML; -import static org.opengauss.assessment.dao.AssessmentType.EXPLAIN; import static org.opengauss.assessment.dao.AssessmentType.UNSUPPORTED; import static org.opengauss.assessment.dao.AssessmentType.COMMENT; import static org.opengauss.assessment.dao.CompatibilityType.COMPATIBLE; @@ -56,7 +53,6 @@ import static org.opengauss.assessment.dao.CompatibilityType.AST_COMPATIBLE; import static org.opengauss.assessment.dao.CompatibilityType.UNSUPPORTED_COMPATIBLE; import static org.opengauss.assessment.dao.CompatibilityType.INCOMPATIBLE; import static org.opengauss.assessment.utils.ConnectionUtils.getConnection; -import static org.opengauss.assessment.utils.ConnectionUtils.closeConnection; import static org.opengauss.assessment.utils.JSchConnectionUtils.getJSchConnect; /** @@ -105,20 +101,21 @@ public class AssessmentEntry { try (PreparedStatement statement = connection.prepareStatement("set client_min_messages=error")) { statement.execute(); } - } catch (SQLException e) { - e.printStackTrace(); - } - CompatibilityTable compatibilityTable = new CompatibilityTable(); - if (!compatibilityTable.generateReportHeader(assessmentSettings.getOutputFile(), - dbCompatArray[globalDatabaseType].getName())) { - LOGGER.error(pset.getProname() + ": can not write to file \"" + assessmentSettings.getOutputFile() + "\""); - } + CompatibilityTable compatibilityTable = new CompatibilityTable(); + if (!compatibilityTable.generateReportHeader(assessmentSettings.getOutputFile(), + dbCompatArray[globalDatabaseType].getName())) { + LOGGER.error(pset.getProname() + ": can not write to file \"" + assessmentSettings.getOutputFile() + "\""); + } - sqlAssessment(compatibilityTable); + setAutoCommit(connection); + sqlAssessment(compatibilityTable, connection); - if (!compatibilityTable.generateReportEnd()) { - LOGGER.error(assessmentSettings.getOutputFile() + ": can not write to file \"" + pset.getProname() + "\""); + if (!compatibilityTable.generateReportEnd()) { + LOGGER.error(assessmentSettings.getOutputFile() + ": can not write to file \"" + pset.getProname() + "\""); + } + } catch (SQLException e) { + LOGGER.error("sql assessment occur SQLException! exception = " + e.getMessage()); } if (assessmentSettings.getDatabase() >= 0 && LOGGER.isInfoEnabled()) { @@ -132,13 +129,13 @@ public class AssessmentEntry { * * @param compatibilityTable : record assessment information. */ - private void sqlAssessment(CompatibilityTable compatibilityTable) { + private void sqlAssessment(CompatibilityTable compatibilityTable, Connection connection) { Path path = Paths.get(assessmentSettings.getInputDir()); AtomicInteger fileCount = new AtomicInteger(0); while (fileCount.intValue() < OUTPUT_SQL_FILE_COUNT) { if (Files.exists(path) && Files.isDirectory(path)) { try (Stream files = Files.list(path)) { - sqlAssessmentHelper(compatibilityTable, fileCount, files); + sqlAssessmentHelper(compatibilityTable, fileCount, files, connection); } catch (IOException e) { e.printStackTrace(); } @@ -154,7 +151,7 @@ public class AssessmentEntry { * @param files : file stream. */ private void sqlAssessmentHelper(CompatibilityTable compatibilityTable, AtomicInteger fileCount, - Stream files) { + Stream files, Connection connection) { files.parallel().forEachOrdered(inputPath -> { String fileName = inputPath.getFileName().toString(); Map lockers = FileLocks.getLockers(); @@ -169,7 +166,7 @@ public class AssessmentEntry { try { Queue allSql = splitSQLFile(inputPath); int sqlSize = allSql.size(); - gramTest(sqlSize, allSql, compatibilityTable); + gramTest(sqlSize, allSql, compatibilityTable, connection); if (!compatibilityTable.generateSQLCompatibilityStatistic(fileName)) { LOGGER.error(assessmentSettings.getOutputFile() + "%s: can not write to file \"" + pset.getProname() + "\""); @@ -304,9 +301,8 @@ public class AssessmentEntry { * @param allSql : store sql. * @param compatibilityTable : record assessment information. */ - private void gramTest(int sqlSize, Queue allSql, CompatibilityTable compatibilityTable) { - Connection connection = getConnection(assessmentSettings.getDbname()); - setAutoCommit(connection); + private void gramTest(int sqlSize, Queue allSql, CompatibilityTable compatibilityTable, + Connection connection) { long index = 0L; while (!allSql.isEmpty()) { gramTestHelper(allSql, compatibilityTable, connection); @@ -314,7 +310,6 @@ public class AssessmentEntry { } printProcess(sqlSize, index); - closeConnection(connection); } /** @@ -516,7 +511,7 @@ public class AssessmentEntry { statement.execute(); assessmentSettings.setDbname(dbname); if (LOGGER.isInfoEnabled()) { - LOGGER.info(pset.getProname() + ": create database \" + dbname +\" automatically."); + LOGGER.info(pset.getProname() + ": create database " + dbname + " automatically."); } } } catch (SQLException e) { @@ -690,6 +685,6 @@ public class AssessmentEntry { */ private void initPSqlSettings() { pset.setDbname(null); - pset.setProname("assessment_database"); + pset.setProname("gs_assessment"); } } diff --git a/src/main/java/org/opengauss/assessment/utils/ConnectionUtils.java b/src/main/java/org/opengauss/assessment/utils/ConnectionUtils.java index 602c4a9059d71ea2083dfafc6a3a6bf42e2eedf5..1a627492bd100bacfbd455a1bcdd2c53a31db9a3 100644 --- a/src/main/java/org/opengauss/assessment/utils/ConnectionUtils.java +++ b/src/main/java/org/opengauss/assessment/utils/ConnectionUtils.java @@ -17,6 +17,8 @@ package org.opengauss.assessment.utils; import org.opengauss.parser.configure.AssessmentInfoChecker; import org.opengauss.parser.configure.AssessmentInfoManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.sql.Connection; import java.sql.DriverManager; @@ -29,6 +31,8 @@ import java.sql.SQLException; * @since : 2023/7/7 */ public class ConnectionUtils { + private static final Logger LOGGER = LoggerFactory.getLogger(ConnectionUtils.class); + /** * Get jdbc connection. * @@ -50,23 +54,8 @@ public class ConnectionUtils { try { connection = DriverManager.getConnection(url, user, password); } catch (SQLException e) { - e.printStackTrace(); + LOGGER.error("jdbc connect failed!"); } return connection; } - - /** - * Close jdbc connection. - * - * @param connection : jdbc connection - */ - public static void closeConnection(Connection connection) { - try { - if (connection != null) { - connection.close(); - } - } catch (SQLException e) { - e.printStackTrace(); - } - } }