在Spring JPA中配置事务尝试

时间:2019-01-31 17:17:33

标签: spring jpa spring-data-jpa spring-data jta

我有一个具有JPA配置的Spring应用程序,并且我想配置死锁重试。如何在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

1 个答案:

答案 0 :(得分:2)

根据official Spring documentation附录A-通用application.properties 部分,您可以配置:

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

假设您在运行时在应用程序中将Atomikos用作JTA provider。配置Atomikos后,您至少可以重试失败的事务:

  

在引发异常之前重试提交事务的尝试次数。

但是,这不能保证在进行 1 n 重试之前,将解决死锁情况。

您可能还需要检查属性

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

配置“重试之间的延迟”。

希望这会有所帮助。