Если в простом jsp я вызываю PoolDataSource.getConnection () и использую его для запроса, я могу получить данные, но если я обновляю страницу «MaximumPoolSize», я получаю сообщение об ошибке тайм-аута, поэтому кажется, что пул используетподключение для каждой страницы обновляется и не используется повторно.
Версия HikariCP: HikariCP-3.3.1 Версия JDK: 1.8.0_191 База данных: Версия драйвера MySQL: mariadb-java-client-2.4.0;mysql-connector-java-8.0.15 Tomcat версия: 9.0.13
Привет, я пытаюсь заменить Apache Torque в своем веб-приложении, я хотел бы использовать стандартные ResultSets для пула соединений.Я создал сервлет запуска, который читает информацию о соединении с базой данных из файла, этот сервлет запускается один раз при запуске Tomcat, поэтому информация о соединении доступна.После этого я создал java-класс, который использует информацию о соединении для запуска HikariDataSource следующим образом:
public class PoolDataSource {
private static HikariConfig config = new HikariConfig();
private static HikariDataSource ds ;
private static String lastError = "";
public static void init () {
try {
// leggo le impostazioni
if (DataConfig.isReady()) {
lastError = "";
config.setMaximumPoolSize(50);
config.setMinimumIdle(5);
config.setPoolName("MainPool");
config.setDataSourceClassName("org.mariadb.jdbc.MySQLDataSource");
config.addDataSourceProperty("serverName", DataConfig.getHost());
config.addDataSourceProperty("port", DataConfig.getPort());
config.addDataSourceProperty("databaseName", DataConfig.getDatabasename());
config.addDataSourceProperty("properties", "useUnicode=true;characterEncoding=utf8");
config.setUsername(DataConfig.getUsername());
config.setPassword(DataConfig.getPassword());
config.setIdleTimeout(1000);
config.setConnectionTimeout(5000);
config.setLeakDetectionThreshold(2000);
config.setMaxLifetime(7000);
ds = new HikariDataSource(config);
if (isConnected()) {
// controllo il database per vedere se esiste la struttura ed i dati base
}
} else {
Logger.Warning("---- Percorso base non settato ----", 0);
}
} catch (Exception ex) {
lastError = ex.toString();
Logger.Error(ex, "---- Errore in connessione al database ----", 0);
}
}
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
}
Я хотел бы получить объект соединения, который я могу использовать непосредственно на моих страницах jsp, но сейчаспосле некоторого обновления он перестает отвечать.
Спасибо