2012-03-04 19 views

Trả lời

110

JTA là một API chung để quản lý giao dịch trong Java. Nó cho phép bạn bắt đầu, cam kết và rollback các giao dịch một cách trung lập tài nguyên. Trạng thái giao dịch thường được lưu trữ trong TLS (Thread Local Storage) và có thể được truyền đến các phương thức khác trong một ngăn xếp cuộc gọi mà không cần một số đối tượng ngữ cảnh rõ ràng được truyền xung quanh. Tài nguyên giao dịch có thể tham gia giao dịch đang diễn ra. Nếu có nhiều hơn một tài nguyên tham gia vào một giao dịch như vậy, ít nhất một trong số đó phải là một tài nguyên XA.

A resource local transaction là giao dịch mà bạn có với một tài nguyên cụ thể sử dụng API cụ thể của riêng nó. Một giao dịch như vậy thường không truyền đến các phương thức khác trong một ngăn xếp cuộc gọi và bạn được yêu cầu truyền một số đối tượng bối cảnh rõ ràng xung quanh. Trong phần lớn các giao dịch tài nguyên cục bộ, không thể có nhiều tài nguyên tham gia vào cùng một giao dịch.

Bạn sẽ sử dụng giao dịch tài nguyên cục bộ trong ví dụ như mã JDBC cấp thấp trong Java SE. Ở đây đối tượng ngữ cảnh được thể hiện bằng một thể hiện của java.sql.Connection. Các nhà phát triển tạo ra các ứng dụng doanh nghiệp vào khoảng năm 2002. Vì các nhà quản lý giao dịch (được sử dụng bởi JTA) đắt tiền, nguồn đóng và những thứ phức tạp để thiết lập xung quanh thời đại đó, mọi người đã đi với các biến thể địa phương rẻ hơn và dễ dàng hơn.

Bạn sẽ sử dụng giao dịch JTA về cơ bản mọi tình huống khác. Rất đơn giản, nhỏ, miễn phí và mã nguồn mở các máy chủ như TomEE (25MB) hoặc GlassFish (35MB) có hỗ trợ JTA ra khỏi hộp. Không có gì để thiết lập và họ chỉ làm việc.

Cuối cùng, các công nghệ như EJB và Spring giúp cho việc sử dụng JTA dễ dàng hơn bằng cách cung cấp declarative transactions. Trong hầu hết các trường hợp, bạn nên sử dụng chúng vì chúng dễ hơn, sạch hơn và ít bị lỗi hơn. Cả EJB và Spring đều có thể sử dụng JTA dưới bìa.

+3

+1 để giải thích lịch sử và phát triển sử dụng JTA (EJB, Spring, v.v.). – Marco

1

API giao dịch Java (JTA) là một trong các API Java Enterprise Edition (Java EE) cho phép các giao dịch phân tán được thực hiện trên nhiều tài nguyên XA trong môi trường Java.

-1

ứng dụng J2EE bao gồm suppoart để chơi bóng DT qua 2 thông số kỹ thuật
JTA ---> Java Transaction API.highe cấp thực hiện và luôn được kích hoạt
JTS ---> Dịch vụ giao dịch Java.

1

Loại giao dịch nên được đặt thành "RESOURCE_LOCAL" cho ứng dụng Java SE và "JTA" cho ứng dụng Java EE. "RESOURCE_LOCAL" có thể hoạt động tốt trên một số ứng dụng web được triển khai trên Tomcat, nhưng có thể gây ra sự cố khi bạn chạy ứng dụng của mình trong môi trường glassfish.

Nếu bạn đang làm việc trên các giao dịch phân phối, bạn phải sử dụng "JTA" làm người quản lý giao dịch của bạn.

Các vấn đề liên quan