Я получил новое соединение, каждое обновление страницы - PullRequest
0 голосов
/ 18 февраля 2019

Если в простом 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, но сейчаспосле некоторого обновления он перестает отвечать.

Спасибо

...