Sau đây là hình minh họa chu trình họat động của Bean thao tác lưu vết trạng thái:
Hình 2.6 Chu trình hoạt động của Stateful Bean
Client khởi tạo chu trình họat động bằng cách gọi phương thức create(). Trình chứa EJB thuyết minh Bean và gọi các phương thức setSessionContext và ejbCreate() trong Bean thao tác. Bây giờ thì Bean đã sẵn sàng để được gọi các phương thức business của nó. Do các thành phần Bean lưu giữ trạng thái thường không được huỷ đi trong quá trình giao dịch. Nếu trình chứa không đủ bộ nhớ (hoặc đối với những thành phần Bean chưa cần dùng đến), trình chứa sẽ tạm thời lưu Bean xuống bộ nhớ ngoài (đĩa cứng) bằng cách gọi phương thức ejbPassivate() để thông báo cho Bean biết rằng nó sắp được lưu xuống bộ nhớ ngoài (thông thường trình chứa EJB sử dụng thuật toán lần sử dụng gần đây ít nhất (last-recently-used)). Chưa tồn tại 1.create 2.setSessionContext 3.ejbCreate 1.remove 2.ejbRemove Sẵn Sàng Thụ động (Passive) ejbPassivate ejbActivate
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 2: TRIỂN KHAI ĐỐI TƯỢNG BEAN EJB
Các Bean lưu vết trạng thái có thể dựa vào tình huống này để tạm cất những dữ liệu quan trọng vào nơi nào đó, sau đó Bean sẽ chuyển sang trạng thái ngủ (ngừng hoạt động). Khi có một lời triệu gọi Bean phát sinh mới từ trình khách, nếu trình chứa không tìm thấy Bean đang hoạt động nó sẽ khôi phục lại Bean từ vùng nhớ tạm. Lúc này trình chứa sẽ gọi phương thức ejbActivate() để thông báo cho Bean biết trạng thái kích hoạt trở lại. Bean có thể dựa vào tình huống này để khôi phục lại trạng thái đã lưu trữ trước đó. Ở cuối chu trình họat động, Client gọi phương thức remove() và trình chứa gọi phương thức ejbRemove() của Bean.