Tôi đã nhầm lẫn bởi thực tế là chúng tôi có thể cho phép sử dụng các giao dịch JTA với nguồn dữ liệu không phải XA. Link to the documentation. Vậy sự khác biệt giữa các nguồn dữ liệu XA/non-XA là gì? Tại sao chúng ta nên sử dụng các nguồn dữ liệu XA?Sự khác nhau giữa nonXADatasource với jta = "true" và XADataSource là gì?
Trả lời
Giao dịch XA, theo thuật ngữ chung nhất, là "giao dịch toàn cầu" có thể mở rộng nhiều tài nguyên. Giao dịch không phải XA luôn liên quan đến chỉ một tài nguyên.
Giao dịch XA liên quan đến người quản lý giao dịch điều phối, với một hoặc nhiều cơ sở dữ liệu (hoặc các tài nguyên khác, như JMS) đều tham gia vào một giao dịch toàn cầu duy nhất. Các giao dịch không phải XA không có điều phối viên giao dịch và một tài nguyên đơn lẻ đang thực hiện tất cả các công việc giao dịch của chính nó (điều này đôi khi được gọi là các giao dịch cục bộ).
jta = "true", Giao dịch tự động thực hiện.
Tôi đã tự hỏi về điều này bản thân mình ("sử dụng JTA" tùy chọn trong một không XA Datasource) vì vậy tôi đã thử nghiệm một số cấu hình. Tôi có một giao dịch phân tán kết nối với hai máy chủ MySQL.
Đây là kết quả của tôi. Nếu tôi có:
- Hai datasources phi XA, cả hai đều có JTA = "true"
Kết quả: "Không thể tranh thủ trong giao dịch trên vào đối tượng meta-aware" Lỗi
- Hai phi XA datasources, với một JTA = "true"
Kết quả: Họ sẽ không tham gia vào các giao dịch phân tán. Mỗi người sẽ cam kết riêng.
- Một XA và một phi XA với JTA = "false",
Result: giống như # 2
- Một XA và một không phải XA với JTA = "true".
Kết quả: Hoạt động!
Từ đây, có vẻ như tùy chọn "sử dụng JTA" cho biết liệu tùy chọn đó có tham gia vào giao dịch phân phối nếu có nguồn dữ liệu XA hay không.
- 1. Sự khác nhau giữa FileStream.Flush() và FileStream.Flush (True) là gì?
- 2. Sự khác nhau giữa JTA và giao dịch địa phương là gì?
- 3. Sự khác biệt giữa while (true) và loop là gì?
- 4. Sự khác nhau giữa `while (true)` vs `while (\ true)` là gì?
- 5. Sự khác nhau giữa <a_element /> và <a_element xsi: nil = "true" /> là gì?
- 6. Sự khác nhau giữa Timer.Start và Timer.Enabled = True trong vb.net là gì?
- 7. Firebase: Sự khác nhau giữa setPersistenceEnabled và keepSynced là gì?
- 8. Sự khác nhau giữa là gì và thừa kế?
- 9. Sự khác nhau giữa == và = trong Prolog là gì?
- 10. Sự khác nhau giữa Policy15 và Policy12 là gì?
- 11. Sự khác nhau giữa null và System.DBNull.Value là gì?
- 12. sự khác nhau giữa e.keyCode và e.which là gì?
- 13. Sự khác nhau giữa mocha và Selenium là gì?
- 14. Sự khác nhau chính giữa Flink và Storm là gì?
- 15. Sự khác nhau giữa keras model.save() và model.save_weights() là gì?
- 16. Sự khác nhau giữa NSIndexSet và NSSet là gì?
- 17. Sự khác nhau giữa Row và RowLayout là gì?
- 18. Sự khác nhau giữa cElementtree và ElementTree là gì?
- 19. sự khác nhau giữa Haskell và PureScript là gì?
- 20. Sự khác nhau giữa setWebViewClient và setWebChromeClient là gì?
- 21. Sự khác nhau giữa VCS và SCM là gì?
- 22. Sự khác nhau giữa DataContractJsonSerializer và JavaScriptSerializer là gì?
- 23. Sự khác nhau giữa Phing và PHPUnderControl là gì?
- 24. Sự khác nhau giữa crc32 và crc32b là gì?
- 25. Sự khác nhau giữa MySQL, MySQLi và PDO là gì?
- 26. Sự khác nhau giữa System.Drawing.Point và System.Windows.Point là gì?
- 27. Sự khác nhau giữa HLS và MPEG-DASH là gì?
- 28. TensorFlow: sự khác nhau giữa sparse_softmax_cross_entropy_with_logits và softmax_cross_entropy_with_logits là gì?
- 29. Sự khác nhau giữa document.getElementById ('mybox') và mybox là gì?
- 30. Sự khác nhau giữa javax.inject.Inject và com.google.inject.Inject là gì?