mirror of https://github.com/apache/cloudstack.git
update mysql dependency version (#394)
* update mysql dependency version * Enable scrollTolerantForwardOnly property in the DB connection, to preserve the legacy behavior of Connector - tolerating backward and absolute cursor movements on result sets of type ResultSet.TYPE_FORWARD_ONLY References: https://dev.mysql.com/doc/relnotes/connector-j/en/news-8-0-24.html https://dev.mysql.com/doc/connector-j/en/connector-j-connp-props-result-sets.html#cj-conn-prop_scrollTolerantForwardOnly --------- Co-authored-by: Marcus Sorensen <mls@apple.com> Co-authored-by: Suresh Kumar Anaparti <suresh.anaparti@shapeblue.com>
This commit is contained in:
parent
a1122d175e
commit
6a28cb33ff
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -82,6 +82,8 @@ public class TransactionLegacy implements Closeable {
|
|||
|
||||
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();
|
||||
static {
|
||||
|
|
@ -1079,7 +1081,7 @@ public class TransactionLegacy implements Closeable {
|
|||
}
|
||||
|
||||
final String cloudConnectionUri = cloudDriver + "://" + cloudHost + (s_dbHAEnabled ? "," + cloudReplicas : "") + ":" + cloudPort + "/" + cloudDbName +
|
||||
"?autoReconnect=" + cloudAutoReconnect + (url != null ? "&" + url : "") + (useSSL ? "&useSSL=true" : "") +
|
||||
"?" + CONNECTION_PARAMS + "&autoReconnect=" + cloudAutoReconnect + (url != null ? "&" + url : "") + (useSSL ? "&useSSL=true" : "") +
|
||||
(s_dbHAEnabled ? "&" + cloudDbHAParams : "") + (s_dbHAEnabled ? "&loadBalanceStrategy=" + loadBalanceStrategy : "");
|
||||
DriverLoader.loadDriver(cloudDriver);
|
||||
|
||||
|
|
@ -1102,7 +1104,7 @@ public class TransactionLegacy implements Closeable {
|
|||
final String usageUrl = dbProps.getProperty("db.usage.url.params");
|
||||
|
||||
final String usageConnectionUri = usageDriver + "://" + usageHost + (s_dbHAEnabled ? "," + dbProps.getProperty("db.cloud.replicas") : "") + ":" + usagePort +
|
||||
"/" + usageDbName + "?autoReconnect=" + usageAutoReconnect + (usageUrl != null ? "&" + usageUrl : "") +
|
||||
"/" + usageDbName + "?" + CONNECTION_PARAMS + "&autoReconnect=" + usageAutoReconnect + (usageUrl != null ? "&" + usageUrl : "") +
|
||||
(s_dbHAEnabled ? "&" + getDBHAParams("usage", dbProps) : "") + (s_dbHAEnabled ? "&loadBalanceStrategy=" + loadBalanceStrategy : "");
|
||||
DriverLoader.loadDriver(usageDriver);
|
||||
|
||||
|
|
@ -1124,7 +1126,7 @@ public class TransactionLegacy implements Closeable {
|
|||
final String simulatorDbName = dbProps.getProperty("db.simulator.name");
|
||||
final boolean simulatorAutoReconnect = Boolean.parseBoolean(dbProps.getProperty("db.simulator.autoReconnect"));
|
||||
|
||||
final String simulatorConnectionUri = simulatorDriver + "://" + simulatorHost + ":" + simulatorPort + "/" + simulatorDbName + "?autoReconnect=" +
|
||||
final String simulatorConnectionUri = simulatorDriver + "://" + simulatorHost + ":" + simulatorPort + "/" + simulatorDbName + "?" + CONNECTION_PARAMS + "&autoReconnect=" +
|
||||
simulatorAutoReconnect;
|
||||
DriverLoader.loadDriver(simulatorDriver);
|
||||
|
||||
|
|
@ -1204,7 +1206,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);
|
||||
|
|
|
|||
2
pom.xml
2
pom.xml
|
|
@ -164,7 +164,7 @@
|
|||
<cs.kafka-clients.version>2.7.0</cs.kafka-clients.version>
|
||||
<cs.libvirt-java.version>0.5.3</cs.libvirt-java.version>
|
||||
<cs.mail.version>1.5.0-b01</cs.mail.version>
|
||||
<cs.mysql.version>8.0.19</cs.mysql.version>
|
||||
<cs.mysql.version>8.0.33</cs.mysql.version>
|
||||
<cs.neethi.version>2.0.4</cs.neethi.version>
|
||||
<cs.nitro.version>10.1</cs.nitro.version>
|
||||
<cs.opensaml.version>2.6.6</cs.opensaml.version>
|
||||
|
|
|
|||
|
|
@ -85,7 +85,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)) {
|
||||
s_logger.error("Connection to DB failed to establish");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue