java.sql.SQLException: слишком много соединений - PullRequest
0 голосов
/ 28 ноября 2018

Получите эту ошибку, когда я запускаю свои тесты на Gitlarunner, но не локально, вот код, который реализует соединение с моим mariadb

Значение max_connection в mariadb установлено на 100, я думаю, этого должно быть достаточно?

Вы видите какой-либо недостаток в моей реализации?

@Bean
    public DataSource storageDataSource() {
        HikariConfig config = new HikariConfig();
        LOGGER.info("Database username: " + jdbcProperties.getStorage().getUser());
        LOGGER.info("Database password in use: " + (!StringUtils.isEmpty(jdbcProperties.getStorage().getPass()) ? "Yes" : "No"));
        LOGGER.info("Database URL: " + jdbcProperties.getStorage().getUrl());
        config.setDriverClassName(jdbcProperties.getDriverClassName());
        config.setJdbcUrl(jdbcProperties.getStorage().getUrl());
        config.setUsername(jdbcProperties.getStorage().getUser());
        config.setPassword(jdbcProperties.getStorage().getPass());
        config.setAutoCommit(false);
        config.setPoolName("storage-connection-pool");

        config.setMaximumPoolSize(5);
        config.addDataSourceProperty("dataSource.cachePrepStmts", "true");
        config.addDataSourceProperty("dataSource.prepStmtCacheSize", "250");
        config.addDataSourceProperty("dataSource.prepStmtCacheSqlLimit", "2048");
        config.addDataSourceProperty("dataSource.useServerPrepStmts", "true");
        return new HikariDataSource(config);
    }

И ошибка:

config.addDataSourceProperty("dataSource.prepStmtCacheSqlLimit", "2048");
        config.addDataSourceProperty("dataSource.useServerPrepStmts", "true");
        return new HikariDataSource(config);
    }

2018-11-28 14:49:31 UTC WARN  HikariConfig:881 - rest-connection-pool - idleTimeout is close to or more than maxLifetime, disabling it.
2018-11-28 14:49:31 UTC INFO  HikariDataSource:71 - rest-connection-pool - Starting...
2018-11-28 14:49:31 UTC INFO  HikariDataSource:73 - rest-connection-pool - Start completed.
2018-11-28 14:49:32 UTC INFO  StorageDataConfig:41 - Database username: root
2018-11-28 14:49:32 UTC INFO  StorageDataConfig:42 - Database password in use: No
2018-11-28 14:49:32 UTC INFO  StorageDataConfig:43 - Database URL: jdbc:mysql://localhost/storage?createDatabaseIfNotExist=true&useLegacyDatetimeCode=false&serverTimezone=UTC
2018-11-28 14:49:32 UTC INFO  HikariDataSource:71 - storage-connection-pool - Starting...
2018-11-28 14:49:33 UTC ERROR HikariPool:541 - storage-connection-pool - Exception during pool initialization.
java.sql.SQLException: Too many connections
    at org.mariadb.jdbc.internal.com.read.ReadInitialHandShakePacket.<init>(ReadInitialHandShakePacket.java:91)
    at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.handleConnectionPhases(AbstractConnectProtocol.java:716)
    at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connect(AbstractConnectProtocol.java:454)
    at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1089)
    at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:494)
    at org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:150)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...