每个堆叠事务是否使用单独的连接?
Does each stacked transaction use a separate connection?
我有多个堆栈事务是通过调用堆栈方法创建的:
@Transactional(propagation = Propagation.REQUIRES_NEW)
所以结果是事务等待新事务等待新事务...
这些事务中的每一个都使用来自连接池的单独数据库连接,可能使池不足吗?
P.S.: 我知道我不应该因为错误而不是回滚所有交易而堆叠新交易,但我对这种行为很好奇。
是的,当您使用 REQUIRES_NEW 时,您将获得每个方法调用的新事务。新事务意味着正在使用池中的新数据库连接。
是的,这意味着它可能会饿死。
您可能会喜欢这本数据库交易手册,以获取更多详细信息,包括大量代码示例:https://www.marcobehler.com/books/1-java-database-connections-transactions
我有多个堆栈事务是通过调用堆栈方法创建的:
@Transactional(propagation = Propagation.REQUIRES_NEW)
所以结果是事务等待新事务等待新事务...
这些事务中的每一个都使用来自连接池的单独数据库连接,可能使池不足吗?
P.S.: 我知道我不应该因为错误而不是回滚所有交易而堆叠新交易,但我对这种行为很好奇。
是的,当您使用 REQUIRES_NEW 时,您将获得每个方法调用的新事务。新事务意味着正在使用池中的新数据库连接。
是的,这意味着它可能会饿死。
您可能会喜欢这本数据库交易手册,以获取更多详细信息,包括大量代码示例:https://www.marcobehler.com/books/1-java-database-connections-transactions