diff --git a/client/pom.xml b/client/pom.xml index 9ff3f2ada39..666c0a4722d 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -68,8 +68,8 @@ jetty-util - mysql - mysql-connector-java + com.mysql + mysql-connector-j org.apache.cloudstack @@ -714,8 +714,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j ${cs.mysql.version} @@ -903,8 +903,8 @@ ${project.build.directory}/pythonlibs - mysql - mysql-connector-java + com.mysql + mysql-connector-j false ${project.build.directory}/lib @@ -978,7 +978,7 @@ org.bouncycastle:bcprov-jdk15on org.bouncycastle:bcpkix-jdk15on org.bouncycastle:bctls-jdk15on - mysql:mysql-connector-java + com.mysql:mysql-connector-j org.apache.cloudstack:cloud-plugin-storage-volume-storpool org.apache.cloudstack:cloud-plugin-storage-volume-linstor org.apache.cloudstack:cloud-usage diff --git a/developer/pom.xml b/developer/pom.xml index dfdde44b7f0..a70e9153bb4 100644 --- a/developer/pom.xml +++ b/developer/pom.xml @@ -112,8 +112,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j ${cs.mysql.version} @@ -180,8 +180,8 @@ 1.2.1 - mysql - mysql-connector-java + com.mysql + mysql-connector-j ${cs.mysql.version} @@ -238,8 +238,8 @@ 1.2.1 - mysql - mysql-connector-java + com.mysql + mysql-connector-j ${cs.mysql.version} diff --git a/engine/schema/pom.xml b/engine/schema/pom.xml index 666c25fdf36..b1868f27837 100644 --- a/engine/schema/pom.xml +++ b/engine/schema/pom.xml @@ -49,8 +49,8 @@ ${project.version} - mysql - mysql-connector-java + com.mysql + mysql-connector-j org.ini4j diff --git a/engine/schema/src/main/java/com/cloud/upgrade/DatabaseCreator.java b/engine/schema/src/main/java/com/cloud/upgrade/DatabaseCreator.java index 7bf5cf62790..154a8d11887 100644 --- a/engine/schema/src/main/java/com/cloud/upgrade/DatabaseCreator.java +++ b/engine/schema/src/main/java/com/cloud/upgrade/DatabaseCreator.java @@ -74,7 +74,7 @@ public class DatabaseCreator { private static void runQuery(String host, String port, String rootPassword, String query, boolean dryRun) { System.out.println("============> Running query: " + query); - try (Connection conn = DriverManager.getConnection(String.format("jdbc:mysql://%s:%s/", host, port), "root", rootPassword); + try (Connection conn = DriverManager.getConnection(String.format("jdbc:mysql://%s:%s/?" + TransactionLegacy.CONNECTION_PARAMS, host, port), "root", rootPassword); Statement stmt = conn.createStatement();){ if (!dryRun) stmt.executeUpdate(query); diff --git a/engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41900to41910.java b/engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41900to41910.java index 6085faba634..f55580a7e19 100644 --- a/engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41900to41910.java +++ b/engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41900to41910.java @@ -16,16 +16,18 @@ // under the License. package com.cloud.upgrade.dao; +import com.cloud.upgrade.SystemVmTemplateRegistration; import com.cloud.utils.exception.CloudRuntimeException; import java.io.InputStream; import java.sql.Connection; -public class Upgrade41900to41910 implements DbUpgrade { +public class Upgrade41900to41910 extends DbUpgradeAbstractImpl implements DbUpgrade, DbUpgradeSystemVmTemplate { + private SystemVmTemplateRegistration systemVmTemplateRegistration; @Override public String[] getUpgradableVersionRange() { - return new String[] {"4.19.0.0", "4.19.1.0"}; + return new String[]{"4.19.0.0", "4.19.1.0"}; } @Override @@ -46,11 +48,12 @@ public class Upgrade41900to41910 implements DbUpgrade { throw new CloudRuntimeException("Unable to find " + scriptFile); } - return new InputStream[] {script}; + return new InputStream[]{script}; } @Override public void performDataMigration(Connection conn) { + addIndexes(conn); } @Override @@ -61,6 +64,25 @@ public class Upgrade41900to41910 implements DbUpgrade { throw new CloudRuntimeException("Unable to find " + scriptFile); } - return new InputStream[] {script}; + return new InputStream[]{script}; + } + + private void addIndexes(Connection conn) { + DbUpgradeUtils.addIndexIfNeeded(conn, "vm_stats", "vm_id"); + } + + @Override + public void updateSystemVmTemplates(Connection conn) { + logger.debug("Updating System Vm template IDs"); + initSystemVmTemplateRegistration(); + try { + systemVmTemplateRegistration.updateSystemVmTemplates(conn); + } catch (Exception e) { + throw new CloudRuntimeException("Failed to find / register SystemVM template(s)"); + } + } + + private void initSystemVmTemplateRegistration() { + systemVmTemplateRegistration = new SystemVmTemplateRegistration(""); } } diff --git a/framework/db/src/main/java/com/cloud/utils/db/TransactionLegacy.java b/framework/db/src/main/java/com/cloud/utils/db/TransactionLegacy.java index be3ec1f5a67..00fa8e4c0d5 100644 --- a/framework/db/src/main/java/com/cloud/utils/db/TransactionLegacy.java +++ b/framework/db/src/main/java/com/cloud/utils/db/TransactionLegacy.java @@ -83,6 +83,7 @@ public class TransactionLegacy implements Closeable { public static final short SIMULATOR_DB = 3; public static final short CONNECTED_DB = -1; + public static final String CONNECTION_PARAMS = "scrollTolerantForwardOnly=true"; private static AtomicLong s_id = new AtomicLong(); private static final TransactionMBeanImpl s_mbean = new TransactionMBeanImpl(); @@ -1212,6 +1213,9 @@ public class TransactionLegacy implements Closeable { connectionUri.append(loadBalanceStrategy); } + connectionUri.append("&"); + connectionUri.append(CONNECTION_PARAMS); + return connectionUri.toString(); } @@ -1276,7 +1280,7 @@ public class TransactionLegacy implements Closeable { @SuppressWarnings({"unchecked", "rawtypes"}) private static DataSource getDefaultDataSource(final String database) { - final ConnectionFactory connectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://localhost:3306/" + database, "cloud", "cloud"); + final ConnectionFactory connectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://localhost:3306/" + database + "?" + CONNECTION_PARAMS, "cloud", "cloud"); final PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, null); final GenericObjectPool connectionPool = new GenericObjectPool(poolableConnectionFactory); return new PoolingDataSource(connectionPool); diff --git a/plugins/database/mysql-ha/pom.xml b/plugins/database/mysql-ha/pom.xml index 32c47ef4c9a..37a07784341 100644 --- a/plugins/database/mysql-ha/pom.xml +++ b/plugins/database/mysql-ha/pom.xml @@ -29,8 +29,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j provided diff --git a/plugins/database/quota/pom.xml b/plugins/database/quota/pom.xml index b881ac3ac83..9dada4128a5 100644 --- a/plugins/database/quota/pom.xml +++ b/plugins/database/quota/pom.xml @@ -49,8 +49,8 @@ ${project.version} - mysql - mysql-connector-java + com.mysql + mysql-connector-j provided diff --git a/plugins/network-elements/juniper-contrail/pom.xml b/plugins/network-elements/juniper-contrail/pom.xml index a23b6d71058..a6a0df9f9d5 100644 --- a/plugins/network-elements/juniper-contrail/pom.xml +++ b/plugins/network-elements/juniper-contrail/pom.xml @@ -124,8 +124,8 @@ reload4j - mysql - mysql-connector-java + com.mysql + mysql-connector-j provided diff --git a/plugins/storage/volume/cloudbyte/pom.xml b/plugins/storage/volume/cloudbyte/pom.xml index fcd50b2149f..a7bd35074dc 100644 --- a/plugins/storage/volume/cloudbyte/pom.xml +++ b/plugins/storage/volume/cloudbyte/pom.xml @@ -39,8 +39,8 @@ ${project.version} - mysql - mysql-connector-java + com.mysql + mysql-connector-j provided diff --git a/pom.xml b/pom.xml index a8062ae8fe6..b52a37a0fa8 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ 2.7.0 0.5.3 1.5.0-b01 - 8.0.19 + 8.0.33 2.0.4 10.1 2.6.6 @@ -465,8 +465,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j ${cs.mysql.version} test diff --git a/server/pom.xml b/server/pom.xml index 6f2e6a6b67e..e18dcb5fe28 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -35,8 +35,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j commons-io diff --git a/test/src-not-used/main/java/com/cloud/test/regression/TestCase.java b/test/src-not-used/main/java/com/cloud/test/regression/TestCase.java index a07dbe4ed85..26b534e976c 100644 --- a/test/src-not-used/main/java/com/cloud/test/regression/TestCase.java +++ b/test/src-not-used/main/java/com/cloud/test/regression/TestCase.java @@ -86,7 +86,7 @@ public abstract class TestCase { this.conn = null; try { Class.forName("com.mysql.jdbc.Driver"); - this.conn = DriverManager.getConnection("jdbc:mysql://" + param.get("db") + "/cloud", "root", dbPassword); + this.conn = DriverManager.getConnection("jdbc:mysql://" + param.get("db") + "/cloud?" + TransactionLegacy.CONNECTION_PARAMS, "root", dbPassword); if (!this.conn.isValid(0)) { LOGGER.error("Connection to DB failed to establish"); } diff --git a/tools/devcloud-kvm/pom.xml b/tools/devcloud-kvm/pom.xml index 011576a02f5..2cc0fde262b 100644 --- a/tools/devcloud-kvm/pom.xml +++ b/tools/devcloud-kvm/pom.xml @@ -30,8 +30,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j provided @@ -80,8 +80,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j ${cs.mysql.version} diff --git a/tools/devcloud4/pom.xml b/tools/devcloud4/pom.xml index 16c4f966b76..d4f2251ba81 100644 --- a/tools/devcloud4/pom.xml +++ b/tools/devcloud4/pom.xml @@ -30,8 +30,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j provided @@ -80,8 +80,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j ${cs.mysql.version} diff --git a/usage/pom.xml b/usage/pom.xml index 037e8bf5c66..7446e25f097 100644 --- a/usage/pom.xml +++ b/usage/pom.xml @@ -59,8 +59,8 @@ commons-daemon - mysql - mysql-connector-java + com.mysql + mysql-connector-j provided diff --git a/usage/src/test/java/com/cloud/usage/UsageSanityCheckerIT.java b/usage/src/test/java/com/cloud/usage/UsageSanityCheckerIT.java index d8a65800018..3e57c070074 100644 --- a/usage/src/test/java/com/cloud/usage/UsageSanityCheckerIT.java +++ b/usage/src/test/java/com/cloud/usage/UsageSanityCheckerIT.java @@ -41,6 +41,7 @@ import org.junit.runners.Parameterized.Parameters; import org.mockito.Mockito; import com.cloud.utils.PropertiesUtil; +import com.cloud.utils.db.TransactionLegacy; @RunWith(Parameterized.class) public class UsageSanityCheckerIT{ @@ -106,7 +107,7 @@ public class UsageSanityCheckerIT{ protected Connection createConnection(String dbSchema) throws SQLException { String cloudDbUrl = "jdbc:mysql://"+properties.getProperty("db."+dbSchema+".host") + ":" + properties.getProperty("db."+dbSchema+".port") + "/" + - properties.getProperty("db."+dbSchema+".name"); + properties.getProperty("db."+dbSchema+".name") + "?" + TransactionLegacy.CONNECTION_PARAMS; return DriverManager.getConnection(cloudDbUrl, properties.getProperty("db."+dbSchema+".username"), properties.getProperty("db."+dbSchema+".password")); } diff --git a/utils/pom.xml b/utils/pom.xml index 963f1b63a0e..f5c7b4db98a 100755 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -124,8 +124,9 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j + ${cs.mysql.version} test