We have recently added PGBouncer into our stack. We have done this in part, to protect the database. Our Java userbase is accustomed to using HikariCP / Hibernate for connection pooling. They would prefer to continue to use the connection pooler, in order to not have GC churn on connection spin up and tear down (in addition to additional latency introduced by having to perform the three-way handshake more often).
Is there any published material / does anyone have any knowledge of how these tools should interact or not interact?
JDBC should work fine with pgbouncer.
HikariCP wants to keep many long running idle_in_transaction connections open, which saturates the backend connection pool.
That's strange why is it keeping them in transaction ? One would think once you closed (returned the connection) it should commit it.
Thanks in advance for any assistance anyone can provide,