Transaction manager to not retry inner transactions (#1974)

This commit is contained in:
Pavlo Tkach
2023-04-05 16:46:36 -04:00
committed by GitHub
parent 8623fce119
commit 57c17042b6
2 changed files with 30 additions and 0 deletions
@@ -154,6 +154,10 @@ public class JpaTransactionManagerImpl implements JpaTransactionManager {
@Override
public <T> T transact(Supplier<T> work) {
// This prevents inner transaction from retrying, thus avoiding a cascade retry effect.
if (inTransaction()) {
return transactNoRetry(work);
}
return retrier.callWithRetry(() -> transactNoRetry(work), JpaRetries::isFailedTxnRetriable);
}