Мне нужно использовать пользовательскую библиотеку пулов соединений jdbc для подключения к базе данных mysql.
Проблема в том, что вставки не сохраняются в БД ... Чтобы сузить проблему, я извлек частькод библиотеки вставляется в БД и имеет некоторые странные выводы:
MysqlConnectionPoolDataSource ds1 = new MysqlConnectionPoolDataSource();
ds1.setUser("usr");
ds1.setPassword("pwd");
ds1.setServerName("server");
ds1.setPort(port);
ds1.setDatabaseName("dbname");
ds1.setUseSSL(false);
ds1.setAllowPublicKeyRetrieval(true);
Connection conn = ds1.getPooledConnection("usr", "pwd").getConnection();
logger.info("connection " + conn.toString());
PreparedStatement ps = null;
ResultSet rs = null;
try {
String query = "INSERT INTO ...";
ps = conn.prepareStatement(query);
int timeout = 10;
ps.setQueryTimeout(timeout);
logger.info("timeout: " + timeout);
logger.info("Starting query execution for query: " + query);
long qeStart = System.currentTimeMillis();
ps.setString(1, "...");
ps.executeUpdate();
long qeEnd = System.currentTimeMillis();
logger.info("Query execution completed in " + (qeEnd - qeStart) + "msec.");
} catch (Exception e) {
logger.error("ERROR OCCURED", e);
System.err.println("ERROR OCCURED");
e.printStackTrace();
} finally {
closeResultSet(rs);
closeStatement(ps);
closeConnection(conn);
}
Приведенный выше код НЕ работает, когда я подключаюсь к удаленной базе данных mysql с версией: 8.0.11-commercial.Не работая, я имею в виду, что ошибки нет, вставка просто теряется ...
Когда я выполняю тот же код для моей локальной базы данных mysql с версией: 8.0.11, размещенной на машине с Windows, она работает...
Если я изменяю код получения соединения с
Connection conn = ds1.getPooledConnection("usr", "pwd").getConnection();
на:
Connection conn = ds1.getConnection();
, он также начинает работать с удаленной базой данных mysql с версией: 8.0.11-commercial ...
Режим автоматической фиксации базового соединения уже действителен ...
Я пытался реализовать собственный log4j logger с надеждой увидеть какой-то след, но это не помоглолибо:
ds1.setLogger("com.ibtech.mysqlproblem.Log4jLogger");
Моя настраиваемая библиотека пула соединений использует пул соединений, поэтому мне нужно, чтобы приведенный выше код работал.В клиенте я использую mysql-connector-java-8.0.11.jar.
Любая помощь очень ценится ...