2009-04-05 19 views
5

Tôi đang gọi một bean phiên không trạng thái từ xa từ một ứng dụng J2SE và muốn lưu bộ nhớ cache tham chiếu đến bean phiên để giảm chi phí tra cứu. Được không?Các tham chiếu bean phiên không trạng thái không có từ xa có được lưu trong EJB3 không?

Trong EJB2 mẫu ServiceLocator thường được sử dụng để tra cứu bộ nhớ cache đến các tài nguyên từ xa, nhưng EJB3 không có EJB Home riêng biệt (thường được lưu trong bộ nhớ cache) và Remote objects.

Googling xung quanh, một câu trả lời phổ biến cho điều này là sử dụng EJB3 tiêm, nhưng kể từ khi tôi đang thực hiện một cuộc gọi đến một máy chủ EJB từ xa từ một khách hàng J2SE, tôi không thể sử dụng tiêm.

Trả lời

2

Có, chúng có thể được lưu vào bộ nhớ cache. Nhưng tôi không biết nếu hành vi được xác định những gì sẽ xảy ra nếu bạn có một tài liệu tham khảo được lưu trữ và máy chủ được khởi động lại bên dưới nó. Bạn có thể kiểm tra kịch bản đó, nhưng hành vi có thể khác nhau với vùng chứa.

1

Nếu máy chủ biến mất, tham chiếu của bạn trở nên không hợp lệ.

Đối với bộ nhớ đệm trong vòng đời bình thường, điều này sẽ ổn. Tôi đã làm điều này trong nhiều năm, cả trong EJB2 và EJB3, và không bao giờ có một vấn đề. Nói chung tôi chỉ có một lớp 'LookupServices' tĩnh mà chỉ tìm kiếm nhà, hoặc trả về cái hiện có nếu nó đã có ở đó - và lưu trữ nó trong một bản đồ.

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