Một bean phiên trạng thái được định nghĩa như sau:
Stateful Session Beans Trạng thái của một đối tượng bao gồm các giá trị của các biến thể hiện của nó. Trong một bean phiên trạng thái, các biến thể hiện đại diện cho trạng thái của một phiên client-bean duy nhất. Bởi vì máy khách tương tác (“nói chuyện”) với bean của nó, trạng thái này thường được gọi là trạng thái đàm thoại.
Một bean phiên không trạng thái được định nghĩa như sau:
Đậu phiên không trạng thái Một phiên không trạng thái không duy trì trạng thái đàm thoại với máy khách. Khi một ứng dụng khách gọi các phương thức của một bean không trạng thái, các biến thể hiện của bean có thể chứa một trạng thái cụ thể cho ứng dụng đó, nhưng chỉ trong khoảng thời gian của lời gọi. Khi phương thức kết thúc, không nên giữ lại trạng thái dành riêng cho máy khách. Tuy nhiên, khách hàng có thể thay đổi trạng thái của các biến thể hiện trong các bean không trạng thái được gộp chung và trạng thái này được giữ cho lần gọi tiếp theo của bean không trạng thái được gộp chung. Ngoại trừ trong khi gọi phương thức, tất cả các phiên bản của bean không trạng thái đều tương đương nhau, cho phép vùng chứa EJB gán một cá thể cho bất kỳ máy khách nào. Đó là, trạng thái của một phiên không trạng thái sẽ áp dụng cho tất cả các máy khách.
Lợi thế của việc sử dụng một phiên đậu trạng thái so với một phiên đậu trạng thái như sau:
Bởi vì phiên không trạng thái có thể hỗ trợ nhiều máy khách, chúng có thể cung cấp khả năng mở rộng tốt hơn cho các ứng dụng yêu cầu số lượng lớn máy khách. Thông thường, một ứng dụng yêu cầu ít đậu phiên không trạng thái hơn so với đậu phiên trạng thái để hỗ trợ cùng một số lượng khách hàng.
Vì vậy, câu hỏi xuất hiện trong đầu là khi nào thì nên sử dụng stateful session bean? Theo hiểu biết ngây thơ của tôi về vấn đề này, người ta nên sử dụng một session bean không trạng thái khi có thể.
Những gì sẽ là các ứng cử viên trong đó một người nên sử dụng bean phiên trạng thái? Bất kỳ ví dụ tốt?