Использует ли каждая стековая транзакция отдельное соединение? - PullRequest
0 голосов
/ 24 марта 2020

У меня есть несколько стековых транзакций, созданных путем вызова стековых методов с:

@Transactional(propagation = Propagation.REQUIRES_NEW)

, поэтому результатом является транзакция, ожидающая новую транзакцию, ожидающая новую транзакцию ...

Использует ли каждая из этих транзакций отдельное соединение БД из пула соединений, возможно, истощает пул?

PS: я знаю, что не должен составлять новые транзакции из-за ошибок, не откатывая все транзакции, но Мне интересно поведение.

1 Ответ

1 голос
/ 24 марта 2020

Да, когда вы используете REQUIRES_NEW, вы будете получать новую транзакцию для каждого вызова метода. Новая транзакция означает, что используется новое соединение с базой данных из пула.

И да, это означает потенциальную возможность его истощения.

Вам может понравиться эта книга транзакций базы данных для получения более подробной информации, включая большое количество кода. примеры: https://www.marcobehler.com/books/1-java-database-connections-transactions

...