From e58030095232aad79b8ba893a4e264a101b0e292 Mon Sep 17 00:00:00 2001 From: nkumar2 Date: Mon, 7 Oct 2024 14:08:27 +0100 Subject: [PATCH] reserve new block - create new transaction for every retry --- .../jpa/monotonic/service/ContiguousIdBlockService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockService.java b/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockService.java index 5f86d4e0..77ed7880 100644 --- a/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockService.java +++ b/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockService.java @@ -18,6 +18,7 @@ package uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.service; import org.springframework.transaction.annotation.Isolation; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import uk.ac.ebi.ampt2d.commons.accession.block.initialization.BlockParameters; import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.entities.ContiguousIdBlock; @@ -87,7 +88,7 @@ public void save(ContiguousIdBlock block) { entityManager.flush(); } - @Transactional(isolation = Isolation.SERIALIZABLE) + @Transactional(isolation = Isolation.SERIALIZABLE, propagation = Propagation.REQUIRES_NEW) public ContiguousIdBlock reserveNewBlock(String categoryId, String instanceId) { ContiguousIdBlock lastBlock = repository.findFirstByCategoryIdOrderByLastValueDesc(categoryId); BlockParameters blockParameters = getBlockParameters(categoryId);