Skip to content

Commit

Permalink
Merge branch 'release/1.1.4'
Browse files Browse the repository at this point in the history
  • Loading branch information
dgeorgiev committed Apr 25, 2024
2 parents 3ee17b6 + 4226229 commit aba60fd
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ package com.wavesenterprise.we.tx.observer.common.tx.executor

import org.springframework.transaction.TransactionDefinition
import org.springframework.transaction.TransactionException
import org.springframework.transaction.annotation.Propagation
import org.springframework.transaction.annotation.Transactional
import org.springframework.transaction.support.TransactionTemplate
import javax.transaction.Transactional
import javax.transaction.Transactional.TxType

open class TxExecutorImpl(
private val transactionTemplate: TransactionTemplate,
) : TxExecutor {

@Transactional(TxType.REQUIRED)
@Transactional(propagation = Propagation.REQUIRED)
override fun <T> required(block: () -> T): T =
block()

Expand All @@ -21,7 +21,7 @@ open class TxExecutorImpl(
block = block,
)

@Transactional(TxType.REQUIRES_NEW)
@Transactional(propagation = Propagation.REQUIRES_NEW)
override fun <T> requiresNew(block: () -> T): T =
block()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.context.ApplicationContext
import org.springframework.data.domain.PageRequest
import javax.transaction.Transactional
import org.springframework.transaction.annotation.Transactional

open class AppContextPollingTxSubscriber(
val enqueuedTxJpaRepository: EnqueuedTxJpaRepository,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import net.javacrumbs.shedlock.spring.annotation.SchedulerLock
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.data.domain.PageRequest
import javax.transaction.Transactional
import org.springframework.transaction.annotation.Transactional

open class ScheduledForkResolver(
private val enqueuedTxJpaRepository: EnqueuedTxJpaRepository,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import com.wavesenterprise.we.tx.observer.jpa.repository.EnqueuedTxJpaRepository
import com.wavesenterprise.we.tx.observer.jpa.repository.TxQueuePartitionJpaRepository
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import javax.transaction.Transactional
import org.springframework.transaction.annotation.Transactional

open class PartitionHandlerJpa(
val partitionJpaRepository: TxQueuePartitionJpaRepository,
Expand All @@ -25,7 +25,6 @@ open class PartitionHandlerJpa(

@Transactional
override fun pausePartitionOnTx(partitionId: String, pausedOnTxId: String) {
enqueuedTxJpaRepository.findByIdWithLock(pausedOnTxId)
if (partitionJpaRepository.updatePausedTxId(partitionId, pausedOnTxId) > 0) {
logger.debug("Partition $partitionId has been paused by tx with ID = $pausedOnTxId")
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.data.repository.findByIdOrNull
import org.springframework.http.HttpStatus
import org.springframework.transaction.annotation.Transactional
import org.springframework.web.server.ResponseStatusException
import javax.transaction.Transactional

open class TxQueueStatusServiceImpl(
val nodeBlockingServiceFactory: NodeBlockingServiceFactory,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import org.springframework.data.jpa.repository.Lock
import org.springframework.data.jpa.repository.Modifying
import org.springframework.data.jpa.repository.Query
import org.springframework.stereotype.Repository
import org.springframework.transaction.annotation.Propagation
import org.springframework.transaction.annotation.Transactional
import javax.persistence.LockModeType
import javax.transaction.Transactional
import javax.transaction.Transactional.TxType

@Repository
interface EnqueuedTxJpaRepository : JpaRepository<EnqueuedTx, String>, JpaSpecificationExecutor<EnqueuedTx> {
Expand All @@ -31,13 +31,17 @@ interface EnqueuedTxJpaRepository : JpaRepository<EnqueuedTx, String>, JpaSpecif
fun findAllSorted(specification: Specification<EnqueuedTx>, pageable: Pageable): Page<EnqueuedTx>

@Query(
"select tx from EnqueuedTx tx where tx.status = :enqueuedTxStatus and tx.partition.id = :partitionId " +
"order by tx.blockHeight, tx.positionInBlock, tx.positionInAtomic"
value = """
select tx.* from $TX_OBSERVER_SCHEMA_NAME.enqueued_tx tx
where tx.status = :#{#enqueuedTxStatus.name()} and tx.partition_id = :partitionId
order by tx.block_height, tx.position_in_block, tx.position_in_atomic for update skip locked
""",
nativeQuery = true
)
fun findActualEnqueuedTxForPartition(
enqueuedTxStatus: EnqueuedTxStatus,
partitionId: String,
pageable: Pageable,
pageable: Pageable
): Page<EnqueuedTx>

fun findAllByStatusAndBlockHeightBeforeOrderByBlockHeight(
Expand Down Expand Up @@ -103,7 +107,7 @@ interface EnqueuedTxJpaRepository : JpaRepository<EnqueuedTx, String>, JpaSpecif
@Query("select min(tx.blockHeight) from EnqueuedTx tx where tx.status = :enqueuedTxStatus")
fun findMinHeightForStatus(enqueuedTxStatus: EnqueuedTxStatus): Long?

@Transactional(TxType.REQUIRES_NEW)
@Transactional(propagation = Propagation.REQUIRES_NEW)
@Query(
"""delete from $TX_OBSERVER_SCHEMA_NAME.enqueued_tx where id in
(select id from $TX_OBSERVER_SCHEMA_NAME.enqueued_tx where status = :enqueuedTxStatus and block_height < :blockHeight limit :limit)""",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package com.wavesenterprise.we.tx.observer.starter.observer.web.service

import org.springframework.transaction.annotation.Propagation
import org.springframework.transaction.annotation.Transactional
import java.util.function.Consumer
import javax.persistence.EntityManager
import javax.persistence.PersistenceContext
import javax.transaction.Transactional
import javax.transaction.Transactional.TxType

open class TransactionalRunner {

@PersistenceContext
private lateinit var em: EntityManager

@Transactional(TxType.REQUIRES_NEW)
@Transactional(propagation = Propagation.REQUIRES_NEW)
open fun doInTransaction(c: Consumer<EntityManager>) {
c.accept(em)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ import com.wavesenterprise.we.tx.tracker.jpa.repository.SmartContractInfoJpaRepo
import com.wavesenterprise.we.tx.tracker.jpa.repository.TxTrackerJpaRepository
import org.springframework.data.domain.PageRequest
import org.springframework.data.repository.findByIdOrNull
import org.springframework.transaction.annotation.Transactional
import java.util.Optional
import javax.transaction.Transactional

open class JpaTxTracker(
val txTrackerJpaRepository: TxTrackerJpaRepository,
Expand Down

0 comments on commit aba60fd

Please sign in to comment.