Настроить попытки транзакций в Spring JPA

У меня есть приложение Spring с конфигурацией JPA, и я хочу настроить повторные попытки взаимоблокировки. Как я могу настроить это в файле application.properties? В настоящее время у меня есть только эта конфигурация:

spring.datasource.jndi-name=java:/global/test
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDBDialect
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
0
0
85
1

Ответы 1

В соответствии с разделом Приложение A. Общие свойства application.properties документа официальная документация Spring вы можете настроить:

spring.jta.atomikos.properties.recovery.max = n 
#                                             ^-- retry count here, n >= 0, default = 5.

учитывая, что вы используете Атомикос как JTA-провайдер в своем приложении во время выполнения. С настроенным Atomikos вы можете повторить — по крайней мере — неудачные транзакции:

Number of retry attempts to commit the transaction before throwing an exception.

Это, однако, не гарантирует, что тупиковые ситуации будут разрешены до того, как будут предприняты повторные попытки 1 или н.

Вы также можете проверить недвижимость

spring.jta.atomikos.properties.recovery.retry-interval=10000ms 

который настраивает «задержку между повторными попытками».

Надеюсь это поможет.

Я использую JpaTransactionManager. Есть ли какое-нибудь решение для этого?

Peter Penzov 01.02.2019 00:58

Нет, о чем я знаю. Вы можете отсканировать/проверить «Приложение A — раздел Common application.properties» на наличие свойств, которые могут помочь; Я не нашел никаких других свойств релевантности.

MWiesner 01.02.2019 01:16

Другие вопросы по теме