J'utilise Atomikos pour la transaction JTA. Je suit réglage pour JTA:Modifier le délai de transaction jta de la valeur par défaut à la valeur personnalisée
UserTransactionImp userTransactionImp = new UserTransactionImp();
userTransactionImp.setTransactionTimeout(900);
mais quand mon code effectue la transaction JTA, alors si cela prend plus de 5 minutes (ce qui est la valeur par défaut), il émet une exception:
Caused by: com.atomikos.icatch.RollbackException: Prepare: NO vote
at com.atomikos.icatch.imp.ActiveStateHandler.prepare(ActiveStateHandler.java:231)
at com.atomikos.icatch.imp.CoordinatorImp.prepare(CoordinatorImp.java:681)
at com.atomikos.icatch.imp.CoordinatorImp.terminate(CoordinatorImp.java:970)
at com.atomikos.icatch.imp.CompositeTerminatorImp.commit(CompositeTerminatorImp.java:82)
at com.atomikos.icatch.imp.CompositeTransactionImp.commit(CompositeTransactionImp.java:336)
at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:190)
... 25 common frames omitted
il On dirait qu'il prend le délai de transaction JTA par défaut (bien que je mette explicitement le délai d'attente à 15 minutes/900 secondes)
J'ai essayé d'utiliser les propriétés suivantes dans le fichier application.properties, mais il prend toujours la valeur de délai d'attente par défaut (300 secondes).
spring.jta.atomikos.properties.max-timeout=600000
spring.jta.atomikos.properties.default-jta-timeout=10000
J'ai aussi essayé avec la propriété ci-dessous, mais pas de chance:
spring.transaction.default-timeout=900
Quelqu'un peut-il suggérer si je besoin d'un autre établissement? J'utilise le plugin wildfly, spring boot et atomikos api pour la transaction JTA.