我通过使用以下方法调用堆叠方法创建了多个堆叠事务:
@Transactional(propagation = Propagation.REQUIRES_NEW)
所以结果是事务正在等待新事务,正在等待新事务...
这些事务中的每一个是否都使用了连接池中的单独的数据库连接,可能会耗尽连接池?
P.S .:我知道我不应该堆叠新交易,因为错误没有回滚所有交易,但我对此行为感到好奇。
是,当您使用REQUIRES_NEW时,每个方法调用都会获得一个新的事务。新事务意味着正在使用池中的新数据库连接。
是的,这意味着可能会饿死它。
您可能会喜欢这本数据库交易书,以获取更多详细信息,包括许多代码示例:https://www.marcobehler.com/books/1-java-database-connections-transactions