2014-02-11 4 views
1

Я продолжаю получать эти ошибки, даже если открыто очень мало соединений. Я перешел на DBCP и никаких проблем.Имея проблемы с Hikari и Postgres

[ERROR] com.zaxxer.hikari.HikariPool - Maximum connection creation retries exceeded: FATAL: remaining connection slots are reserved for non-replication superuser connections 
org.postgresql.util.PSQLException: FATAL: remaining connection slots are reserved for non-replication superuser connections 
    at org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:572) ~[postgresql-9.3-1100-jdbc41.jar:na] 
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:177) ~[postgresql-9.3-1100-jdbc41.jar:na] 
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64) ~[postgresql-9.3-1100-jdbc41.jar:na] 
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:136) ~[postgresql-9.3-1100-jdbc41.jar:na] 
    at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29) ~[postgresql-9.3-1100-jdbc41.jar:na] 
    at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21) ~[postgresql-9.3-1100-jdbc41.jar:na] 
    at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31) ~[postgresql-9.3-1100-jdbc41.jar:na] 
    at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24) ~[postgresql-9.3-1100-jdbc41.jar:na] 
    at org.postgresql.Driver.makeConnection(Driver.java:410) ~[postgresql-9.3-1100-jdbc41.jar:na] 
    at org.postgresql.Driver.connect(Driver.java:280) ~[postgresql-9.3-1100-jdbc41.jar:na] 
+0

Звучит так, будто вы не закрываете соединения правильно. –

+0

У меня только 13 соединений открыты, и они из DBVisualizer. Это исключение вызывает и источник данных tomcat. – Marty

+0

Я могу открыть 3 соединения, а затем на четвертом он умирает. martinphee = # SELECT count (*) FROM pg_stat_activity; Количество ------- (1 ряд) – Marty

ответ

1

Я использую Postgres.app для osx. Я создал пользователя для нового приложения, а не для пользователя по умолчанию, который я сам. Этот пользователь смог создать только три соединения, прежде чем получить исключение выше.

PSQLException: FATAL: remaining connection slots are reserved for non-replication superuser connections 

Кажется, что Postgres.app устанавливает максимальное количество подключений к 20, и я не могу это изменить. Я попытался, но я не могу подключиться к postgres после его изменения. Когда я подключаюсь в качестве основного пользователя (моя локальная учетная запись пользователя), это, похоже, не затрагивается, но новый пользователь, которого я создал, не может открыть достаточно соединений.

2

Имеет ли новый пользователь права на репликацию? Похоже, что это так, а это означает, что с точки зрения PostgreSQL пользователь может инициировать репликацию. Количество подключений, поддерживающих репликацию, ограничено (хотя и настраивается). Я бы проверил нового пользователя, которого вы создали, и удалить привилегии репликации от этого пользователя. Затем должно быть разрешено инициировать до максимального количества настроенных подключений.