У меня есть одно весеннее загрузочное приложение, и я использую управляемый postgres в качестве бэкенда. У меня нет прав администратора на postgres.
Если я ничего не упоминаю в своем весеннем загрузочном приложении, означает ли это, что он использует какой-то пул соединений?
мой весенний загрузочный application.yml, как показано ниже
spring:
profiles: prod
datasource:
driver-class-name: org.postgresql.Driver
url: <<jdbc-url>>
username: prddb
password:
tomcat:
validation-interval: 30000
test-on-borrow: true
validation-query: SELECT 1
когда я проверяю панель инструментов, мои приложения почти используют все соединения.
@user7294900 user7294900, мой проект gradle, я видел загруженные зависимости tomcat-jdbc:8.5.34, означает ли это, что пул соединений уже присутствует и настроен?
Только что увидел, что Spring Boot внутри имеет tomcat-jdbc, который имеет пул соединений, но могу ли я узнать, каковы конфигурации по умолчанию для этого пула соединений? как изменить максимальное количество простаивающих соединений в нашей весенней загрузке, я имею в виду, можем ли мы переопределить эти настройки?
Посмотрите в журналах, вы загружаете пул соединений tomcat или hikari? для кота установлен под tomcatmax-active: 50
спасибо, я только что увидел, что это пул соединений tomcat jdbc org.apache.tomcat.jdbc.pool.DataSource@XXXXX
у меня есть еще одно сомнение, если те же данные базы данных, если я использую в других 2 отдельных приложениях, в общей сложности три пула соединений присутствуют для этих данных, я подключаюсь? когда я увидел детали пула соединений по умолчанию maxActive=100; максимальное бездействие = 100; мин. простоя = 10; начальный размер=10; максимальное ожидание=30000;
мне нужно переопределить maxActive до 50?




Если вы добавили зависимость в pom.xml, весенняя загрузка должна сканировать и создать пул соединений, в противном случае вы можете указать источник данных вручную в файле .properties следующим образом:
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
Также для проверки пула соединений можно создать простой тест:
@RunWith(SpringRunner.class)
@SpringBootTest
public class ConnectionPoolTest {
@Autowired
private DataSource dataSource;
@Test
public void connectionPoolTest() {
assertThat(dataSource.getClass().getName())
.isEqualTo("org.apache.tomcat.jdbc.pool.DataSource");
}
}
Это зависит от ваших банок, можете ли вы показать свой pom.xml? у вас есть tomcat-jdbc?