«FATAL: оставшиеся слоты подключений зарезервированы для подключений суперпользователя без репликации» срабатывает несмоJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 «FATAL: оставшиеся слоты подключений зарезервированы для подключений суперпользователя без репликации» срабатывает несмо

Сообщение 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



Подробнее здесь: https://stackoverflow.com/questions/790 ... peruser-co
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»