Sono stato confuso dal fatto che possiamo consentire di utilizzare le transazioni JTA con un'origine dati non XA. Link to the documentation. Quindi qual è la differenza tra le origini dati XA/non-XA? Perché dovremmo usare le origini dati XA?Qual è la differenza tra nonXADatasource con jta = "true" e XADataSource?
risposta
Una transazione XA, nei termini più generali, è una "transazione globale" che può estendersi su più risorse. Una transazione non XA comporta sempre una sola risorsa.
Una transazione XA comporta un gestore transazioni di coordinamento, con uno o più database (o altre risorse, come JMS) tutti coinvolti in un'unica transazione globale. Le transazioni non XA non hanno un coordinatore di transazioni e una singola risorsa sta eseguendo autonomamente tutte le sue transazioni (a volte vengono chiamate transazioni locali).
jta = "true", Transaction commit automaticamente.
Mi stavo chiedendo da solo (opzione "usa JTA" in un'origine dati non XA), quindi ho provato diverse configurazioni. Ho una transazione distribuita che si connette a due server MySQL.
Ecco i risultati. Se ho:
- Due origini dati non-XA, entrambi hanno JTA = "true"
Risultato: "Non è stato possibile integrare in transazione entrando oggetto meta-aware" Errore
- due non-XA origini dati, con uno JTA = "true"
Risultato: Essi non partecipare alla transazione distribuita. Ognuno si impegnerà separatamente.
- One XA e uno non-XA con JTA = "false",
Risultato: come # 2
- Uno XA e uno non XA con JTA = "true".
Risultato: Funziona!
Da questi, sembra che l'opzione "usa JTA" indica se parteciperà a una transazione distribuita se esiste un'origine dati XA.
- 1. Qual è la differenza tra JTA e una transazione locale?
- 2. Qual è la differenza tra `while (true)` vs `while (\ true)`?
- 3. Qual è la differenza tra FileStream.Flush() e FileStream.Flush (True)?
- 4. Qual è la differenza tra -DskipTests e -Dmaven.test.skip = true
- 5. Differenza tra JTA e Spring @Transazioni transazionali
- 6. Qual è la differenza tra ("") e (null)
- 7. Qual è la differenza tra Verilog! e ~?
- 8. Qual è la differenza tra? : e ||
- 9. Qual è la differenza tra dict() e {}?
- 10. ActionBar setDisplayHomeAsUpEnabled (true) vs setDisplayShowHomeEnabled (true). Qual è la differenza?
- 11. Qual è la differenza tra l'inizializzazione con = e l'inizializzazione con {}?
- 12. Qual è la differenza tra = e: =
- 13. qual è la differenza tra [[], []] e [[]] * 2
- 14. Qual è la differenza tra $ e $$?
- 15. Qual è la differenza tra " " e ""?
- 16. Qual è la differenza tra {0} e ""?
- 17. Qual è la differenza tra `##` e `hashCode`?
- 18. Qual è la differenza tra {0} e +?
- 19. Qual è la differenza tra .ToString() e + ""
- 20. qual è la differenza tra:.! e: r !?
- 21. Differenza tra AutoPostBack = True e AutoPostBack = False?
- 22. Qual è la differenza tra require e include con php?
- 23. Qual è la differenza tra app.use e app.get con express.static?
- 24. Qual è la differenza tra tag e branch con git?
- 25. qual è la differenza tra "con" e "carico" in laravel
- 26. Qual è la differenza tra prop ('disabled', 'disabled') e prop ('disabled', true)
- 27. qual è la differenza tra lazy = "true" e fetch = "select" in hibernate?
- 28. Qual è la differenza tra Timer.Start e Timer.Enabled = True in vb.net?
- 29. Qual è la differenza tra <a_element /> e <a_element xsi: nil = "true" />?
- 30. Qual è la differenza tra setDisplayHomeAsUpEnabled e setHomeButtonEnabled?