I’m using version: 2.1.6.RELEASE form Spring Boot in my pom.xml-dependencies. To connect to my database I put following in application.properties:
spring.datasource.url= jdbc:postgresql:// spring.datasource.username= spring.datasource.password=
When checking the amount of connections in postgresql with:
SELECT * FROM pg_stat_activity;
I see each time I start the application exactly 10 connections are made. They almost all have the same query:
SET application_name = 'PostgreSQL JDBC Driver'
Is there a way to prevent the application of making that many connections? Should I make my own pool-configuration? What resource in my Java-application does initialize these connections?
The only thing I can think of is that I create EntityManager(s) with the @Autowired annotation, EntityManager from:
javax.persistence.EntityManager;
But I read you should only close the connection this makes when using an EntityManagerFactory. The annotation should close the connection.
If you would require more info, I could edit my post
Advertisement
Answer
That’s no a connection leak but the desired behavior. Spring Boot Data uses HikariCP as a connection pool.
You can configure the max pool size as property. For example:
spring.datasource.hikari.maximum-pool-size=5