如果啟用,檢查點操作通常在 Bean 完成任何作業事件之後發生,即使作業事件回復。若要在導致 Bean 狀態重大修改之非作業事件商務方法結束時,指定其他可選 SFSB 檢查點操作,請使用 checkpoint-at-end-of-method 元素 (在 sun-ejb-jar.xml 部署描述元檔案中的 ejb 元素中)。
如果要在建立之後立即對 SFSB 的初始狀態進行檢查點操作,checkpoint-at-end-of-method 元素中的非作業事件方法可以是:
在 SFSB 的主介面中定義的 create() 方法
對於僅使用容器管理的作業事件之 SFSB,Bean 遠端介面中的方法使用作業事件屬性 TX_NOT_SUPPORTED 或 TX_NEVER 標記
對於僅使用 Bean 管理的作業事件之 SFSB,即不啟動也不確定 Bean 管理作業事件的方法
忽略此清單中提及的任何其他方法。在這些方法呼叫的每一個結尾,EJB 容器均將 SFSB 的狀態儲存至持續性存放區。
如果 SFSB 未參與任何作業事件,且如果 checkpoint-at-end-of-method 元素中未明確指定其任何方法,則根本不會對 Bean 的狀態進行檢查點操作 (即使此 Bean 的availability-enabled="true")
為了取得更好的效能,請指定方法的小子集。此方法應該完成對 Bean 的狀態做出重要修改的大量工作或結果。
<sun-ejb-jar> ... <enterprise-beans> ... <ejb availability-enabled="true"> <ejb-name>ShoppingCartEJB</ejb-name> <checkpoint-at-end-of-method> <method> <method-name>addToCart</method-name> </method> </checkpoint-at-end-of-method> </ejb> ... </enterprise-beans> </sun-ejb-jar>