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