2017-02-21 11 views
0

Ich habe einen Spring-Boot, Hibernate mit Java-App. Ich stelle es auf einem Steg-Webserver mit mehreren Instanzen bereit. wenn ich zu haben (mehr als 10) viele Instanzen ichVerbindung Pool wird erschöpft

com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: FATAL: remaining connection slots are reserved for non-replication superuser connections 

Viele der Verbindungen (10x Instanz) zeigen sich im Leerlauf

ps:

postgres 9104 0.0 0.0 248968 4392 ?  Ss 08:07 0:00 postgres: user my_db 127.0.0.1(60095) idle       

Hikari Trace-Protokoll für eine Instanz :

2017-02-21 10:59:47.578 DEBUG 7401 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool  : HikariPool-1 - Pool stats (total=10, active=0, idle=10, waiting=0) 

Einstellung

hikari.leakDetectionThreshold: 30000 

Protokolliert nichts Interessantes. Ich denke, das sieht interessant aus HikariCP - connection is not available

Irgendwelche Ideen, wie ich das debuggen könnte? Auch ich bin auf Java 7, so hikari 2.4.7

Antwort

0

Ich denke, Sie müssen den Parameter max_connections in Ihrer PostgreSQL-Konfiguration erhöhen.

Siehe https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server

Sie den Pool nicht erlauben können mehrere Verbindungen zu halten als der PostgreSQL-Installation ermöglicht.

+0

ah ok danke. Wann ist eine Verbindung ein Leck wenn nicht? –

+2

Oder senken Sie alternativ die Anzahl der maximalen Verbindungen in Ihrem Pool. – Kayaman

+1

Wenn Sie ein Verbindungsleck haben, sollte Ihr Verbindungspool die Erstellung weiterer Verbindungen verweigern. Die Fehlermeldung in Ihrer Frage weist darauf hin, dass die Datenbank dies verweigert. Offensichtlich ermöglicht Ihr Verbindungspool mehr Verbindungen als Ihre Datenbank. –

Verwandte Themen