Я создал простую программу, которая неоднократно создает соединение с моей базой данных, а затем закрывает его. Программа выдает ошибку на шестой или седьмой итерации. Если я приостанавливаю программу между каждой итерацией на пять секунд, программа выдает ошибку на третьей итерации.
Распечатка состояния соединения показывает, что они успешно закрываются, поэтому утечки соединения не должно произойти. Мои соединения осуществляются с помощью HikariCP и аутентификации IAM Google Cloud.
package Tester;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import InstanceCreator.InstanceCreator;
public class Tester {
public static void main(String[] args) throws SQLException, InterruptedException {
int i = 1;
while (true) {
System.out.println("Starting loop: " + i);
i++;
Thread.sleep(5000);
DataSource dataSource = InstanceCreator.createConnectionPool();
Connection connection = null;
try {
connection = dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
finally {
connection.close();
}
}
}
}
package InstanceCreator;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import javax.sql.DataSource;
public class InstanceCreator {
private static final String INSTANCE_CONNECTION_NAME = "mycreds";
private static final String DB_IAM_USER = "mycreds";
private static final String DB_NAME = "mycreds";
public static DataSource createConnectionPool() {
HikariConfig config = new HikariConfig();
config.setJdbcUrl(String.format("jdbc:postgresql:///%s", DB_NAME));
config.addDataSourceProperty("socketFactory", "com.google.cloud.sql.postgres.SocketFactory");
config.addDataSourceProperty("cloudSqlInstance", INSTANCE_CONNECTION_NAME);
config.addDataSourceProperty("enableIamAuth", "true");
config.addDataSourceProperty("user", DB_IAM_USER);
config.addDataSourceProperty("password", "password");
config.addDataSourceProperty("sslmode", "disable");
return new HikariDataSource(config);
}
}
Starting loop: 1
SLF4J(W): No SLF4J providers were found.
SLF4J(W): Defaulting to no-operation (NOP) logger implementation
SLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details.
Starting loop: 2
Starting loop: 3
Starting loop: 4
Starting loop: 5
Starting loop: 6
Starting loop: 7
Exception in thread "main" com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: FATAL: remaining connection slots are reserved for non-replication superuser connections
at com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:596)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:582)
at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.(HikariDataSource.java:81)
at InstanceCreator.InstanceCreator.createConnectionPool(InstanceCreator.java:27)
at Tester.Tester.main(Tester.java:17)
Caused by: org.postgresql.util.PSQLException: FATAL: remaining connection slots are reserved for non-replication superuser connections
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676)
at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2788)
at org.postgresql.core.v3.QueryExecutorImpl.(QueryExecutorImpl.java:174)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:313)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)
at org.postgresql.jdbc.PgConnection.(PgConnection.java:253)
at org.postgresql.Driver.makeConnection(Driver.java:434)
at org.postgresql.Driver.connect(Driver.java:291)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
... 4 more
Подробнее здесь: https://stackoverflow.com/questions/790 ... peruser-co
«FATAL: оставшиеся слоты подключений зарезервированы для подключений суперпользователя без репликации» срабатывает несмо ⇐ JAVA
Программисты JAVA общаются здесь
1727607974
Anonymous
Я создал простую программу, которая неоднократно создает соединение с моей базой данных, а затем закрывает его. Программа выдает ошибку на шестой или седьмой итерации. Если я приостанавливаю программу между каждой итерацией на пять секунд, программа выдает ошибку на третьей итерации.
Распечатка состояния соединения показывает, что они успешно закрываются, поэтому утечки соединения не должно произойти. Мои соединения осуществляются с помощью HikariCP и аутентификации IAM Google Cloud.
package Tester;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import InstanceCreator.InstanceCreator;
public class Tester {
public static void main(String[] args) throws SQLException, InterruptedException {
int i = 1;
while (true) {
System.out.println("Starting loop: " + i);
i++;
Thread.sleep(5000);
DataSource dataSource = InstanceCreator.createConnectionPool();
Connection connection = null;
try {
connection = dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
finally {
connection.close();
}
}
}
}
package InstanceCreator;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import javax.sql.DataSource;
public class InstanceCreator {
private static final String INSTANCE_CONNECTION_NAME = "mycreds";
private static final String DB_IAM_USER = "mycreds";
private static final String DB_NAME = "mycreds";
public static DataSource createConnectionPool() {
HikariConfig config = new HikariConfig();
config.setJdbcUrl(String.format("jdbc:postgresql:///%s", DB_NAME));
config.addDataSourceProperty("socketFactory", "com.google.cloud.sql.postgres.SocketFactory");
config.addDataSourceProperty("cloudSqlInstance", INSTANCE_CONNECTION_NAME);
config.addDataSourceProperty("enableIamAuth", "true");
config.addDataSourceProperty("user", DB_IAM_USER);
config.addDataSourceProperty("password", "password");
config.addDataSourceProperty("sslmode", "disable");
return new HikariDataSource(config);
}
}
Starting loop: 1
SLF4J(W): No SLF4J providers were found.
SLF4J(W): Defaulting to no-operation (NOP) logger implementation
SLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details.
Starting loop: 2
Starting loop: 3
Starting loop: 4
Starting loop: 5
Starting loop: 6
Starting loop: 7
Exception in thread "main" com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: FATAL: remaining connection slots are reserved for non-replication superuser connections
at com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:596)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:582)
at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.(HikariDataSource.java:81)
at InstanceCreator.InstanceCreator.createConnectionPool(InstanceCreator.java:27)
at Tester.Tester.main(Tester.java:17)
Caused by: org.postgresql.util.PSQLException: FATAL: remaining connection slots are reserved for non-replication superuser connections
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676)
at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2788)
at org.postgresql.core.v3.QueryExecutorImpl.(QueryExecutorImpl.java:174)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:313)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)
at org.postgresql.jdbc.PgConnection.(PgConnection.java:253)
at org.postgresql.Driver.makeConnection(Driver.java:434)
at org.postgresql.Driver.connect(Driver.java:291)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
... 4 more
Подробнее здесь: [url]https://stackoverflow.com/questions/79035348/fatal-remaining-connection-slots-are-reserved-for-non-replication-superuser-co[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия