本章說明如何啟用和配置高可用性階段作業持續性。
Application Server 經由 HTTP 階段作業資料和有狀態階段作業 Bean (SFSB) 階段作業資料的容錯移轉功能,提供高可用性階段作業持續性。容錯移轉表示在伺服器實例或硬體出現故障時,其他伺服器實例接管分散式階段作業。
在滿足以下條件時,分散式階段作業可在多個 Sun Java System Application Server 實例中執行:
每一個伺服器實例都能存取相同的階段作業狀態資料。Application Server 為 HTTP 階段作業及有狀態的階段作業 Bean 資料提供了下列類型的高可用性儲存裝置:
叢集內其他伺服器上的記憶體中複製。預設會使用叢集設定檔啟用記憶體中複製。
如需使用記憶體中複製功能,需要啟用群組管理服務 (GMS)。如需有關 GMS 的更多資訊,請參閱群組管理服務。
如果叢集中的各伺服器實例位於不同機器上,請確定符合下列必要條件:
為了確保 GMS 和記憶體中複寫均能正確運作,各機器必須位於相同的子網路。
為了確保記憶體中複製正確運作,必須儘可能使叢集中所有機器的系統時鐘同步。
高可用性資料庫 (HADB)。如需有關如何啟用此資料庫的資訊,請參閱 configure-ha-cluster(1)。
Sun Java System Application Server 的 Application Server 獨立發行版本 隨附了 HADB 軟體。如需有關 Sun Java System Application Server 的可用發行軟體資訊,請參閱「Sun Java System Application Server 9.1 Installation Guide」中的「Distribution Types and Their Components」。只有 企業 設定檔才提供 HADB 功能。如需有關設定檔的更多資訊,請參閱 「Sun Java System Application Server 9.1 管理指南」中的「用法設定檔」。
每個伺服器實例均部署相同的可分散 Web 應用程式。web.xml 部署描述元檔案的 web-app 元素必須包含 distributable 元素。
Web 應用程式使用高可用性階段作業持續性。如果將不可分散的 Web 應用程式配置為使用高可用性階段作業持續性,伺服器會向記錄檔寫入錯誤。
必須使用 deploy 或 deploydir 指令 (--availabilityenabled 選項設定為 true) 部署 Web 應用程式。如需有關這些指令的更多資訊,請參閱 deploy(1) 和 deploydir(1)。
階段作業容錯移轉時,對開啟的檔案或網路連線的任何參照都會遺失。編碼應用程式時必須牢記此限制。
僅可以將某些物件連結至支援容錯移轉的分散式階段作業。與 Servlet 2.4 規格相反,如果不支援容錯移轉的物件類型連結至分散式階段作業,Sun Java System Application Server 不會丟出 IllegalArgumentException。
可以將以下物件連結至支援容錯移轉的分散式階段作業:
所有 EJB 元件的本地主機參照和物件參照。
並置的無狀態作業階段、有狀態作業階段或實體 Bean 參照。
分散式無狀態作業階段、有狀態作業階段或實體 Bean 參照。
InitialContext 和 java:comp/env 的 JNDI 環境。
UserTransaction 物件。但是,如果出現故障的實例從未重新啟動,則任何就緒的全域作業事件都將遺失,且可能無法正確回復或確定。
可串列化 Java 類型。
無法將以下物件類型連結至支援容錯移轉的階段作業:
JDBC DataSource
Java Message Service (JMS) ConnectionFactory 和 Destination 物件
JavaMail™ 階段作業
連線工廠
受管理的物件
Web 服務參照
通常,對於這些物件,容錯移轉不可用。但是,容錯移轉可能在某些情況下可用,例如,如果物件是可串列化的。
本小節說明如何設定高可用性階段作業持續性,包含以下主題:
高可用性階段作業持續性與動態部署、動態重新載入和自動部署不相容。這些功能適用於開發而非生產環境,因此必須在啟用 HA 階段作業持續性之前停用它們。如需如何停用這些功能的更多資訊,請參閱「Sun Java System Application Server 9.1 Application Deployment Guide」。
建立 Application Server 叢集。
如需更多資訊,請參閱建立叢集。
若是使用 HADB 來儲存階段作業狀態資料,請為叢集建立 HADB 資料庫。
Sun Java System Application Server 的 Application Server 獨立發行版本 隨附了 HADB 軟體。如需有關 Sun Java System Application Server 的可用發行軟體資訊,請參閱「Sun Java System Application Server 9.1 Installation Guide」中的「Distribution Types and Their Components」。只有 企業 設定檔才提供 HADB 功能。如需有關設定檔的更多資訊,請參閱 「Sun Java System Application Server 9.1 管理指南」中的「用法設定檔」。
若是針對階段作業狀態資料,在叢集內其他伺服器上使用記憶體中複製,請略過此步驟。
如需有關建立 HADB 資料庫的更多資訊,請參閱 configure-ha-cluster(1)。
為叢集設定 HTTP 負載平衡。
如需更多資訊,請參閱設定 HTTP 負載平衡
啟用所需 Application Server 實例和 Web 或 EJB 容器的可用性。
然後配置階段作業持續性設定。選擇以下方法之一:
使用管理主控台。請參閱啟用伺服器實例的可用性。
使用 asadmin 指令行公用程式。請參閱 set(1) 和 configure-ha-persistence(1)。
重新啟動叢集中的每個伺服器實例。
如果實例目前正在處理請求,請在重新啟動該實例前將其靜止,這樣,它就有足夠的時間來處理正在處理的請求。如需更多資訊,請參閱停用 (靜止) 伺服器實例或叢集
啟用所需的特定 SFSB 的可用性。
選取需要針對階段作業狀態進行檢查點操作的方法。請參閱配置個別 Bean 的可用性
在部署期間啟用個別應用程式、Web 模組或 EJB 模組的可用性。
在管理主控台中,核取 [啟用可用性] 方塊,或使用 --availabilityenabled 選項設定為 true 的 asadmin deploy 指令。
伺服器實例,依預設啟用。啟用伺服器實例階段作業可用性,表示所有在伺服器實例上執行的應用程式皆可具有高可用性階段作業持續性。如需說明,請參閱下一小節啟用伺服器實例的可用性。
容器 (Web 或 EJB),依預設啟用。如需有關在容器層級啟用可用性的資訊,請參閱:
應用程式,依預設停用。
獨立 Web 或 EJB 模組,依預設停用。
個別 SFSB,依預設停用。
若要在指定範圍啟用可用性,還必須在所有更高層級也啟用。例如,若要啟用應用程式層級的可用性,必須在伺服器實例層級和容器層級啟用可用性。
指定層級的預設值是其上一層級的設定值。例如,如果已啟用容器層級的可用性,則依預設啟用應用程式層級的可用性。
如果已停用伺服器實例層級的可用性,則啟用其他任何層級的可用性都不生效。如果已啟用伺服器實例層級的可用性,除非已明確停用,否則將啟用所有層級的可用性。
若要啟用伺服器實例的可用性,請使用 asadmin set指令將配置的 availability-service.availability-enabled 特性設為 true。
例如,如果配置名稱為 config1:
asadmin set --user admin --passwordfile password.txt --host localhost --port 4849 config1.availability-service.availability-enabled="true" |
在樹形元件中,展開 [配置] 節點。
展開要編輯的配置之節點。
選取 [可用性服務] 節點。
在 [可用性服務] 頁面,核取 [可用性服務] 核取方塊來啟用實例層級的可用性。
若要停用可用性,請取消核取該方塊。
此外,如果為獲得階段作業持續性而變更了用於連線 HADB 的 JDBC 資源,可以變更儲存池名稱。如需詳細資訊,請參閱 configure-ha-cluster(1)。
Sun Java System Application Server 的 Application Server 獨立發行版本 隨附了 HADB 軟體。如需有關 Sun Java System Application Server 的可用發行軟體資訊,請參閱「Sun Java System Application Server 9.1 Installation Guide」中的「Distribution Types and Their Components」。只有 企業 設定檔才提供 HADB 功能。如需有關設定檔的更多資訊,請參閱 「Sun Java System Application Server 9.1 管理指南」中的「用法設定檔」。
按一下 [儲存] 按鈕。
停止和重新啟動伺服器實例。
Java EE 應用程式通常具有大量階段作業狀態資料。Web 購物車即為階段作業狀態的經典範例。而且,應用程式可以快取頻繁需要的階段作業物件資料。實際上,幾乎所有需要進行大量使用者互動活動的應用程式均需要維護階段作業狀態。
Sun Java System Application Server 的 Application Server 獨立發行版本 隨附了 HADB 軟體。如需有關 Sun Java System Application Server 的可用發行軟體資訊,請參閱「Sun Java System Application Server 9.1 Installation Guide」中的「Distribution Types and Their Components」。只有 企業 設定檔才提供 HADB 功能。如需有關設定檔的更多資訊,請參閱 「Sun Java System Application Server 9.1 管理指南」中的「用法設定檔」。
若是使用 HADB,請使用 asadmin configure-ha-persistence 來啟用和配置 Web 容器可用性。如需有關此指令的更多資訊,請參閱 configure-ha-persistence(1)。
此外,還可使用 asadmin set 指令將配置的 availability-service.web-container-availability.availability-enabled 特性設為 true,然後使用 configure-ha-persistence 根據需要設定特性。
若是使用記憶體中複製來儲存階段作業狀態資料,則必須使用 asadmin set 指令來啟用 Web 容器可用性並設定特性。configure-ha-persistence 指令只能用於 HADB 。
例如,按如下所示使用 set 指令,其中 config1 為配置名稱:
asadmin set --user admin --passwordfile password.txt --host localhost --port 4849 config1.availability-service.web-container-availability.availability-enabled="true" asadmin configure-ha-persistence --user admin --passwordfile secret.txt --type ha --frequency web-method --scope modified-session --store jdbc/hastore --property maxSessions=1000:reapIntervalSeconds=60 cluster1 |
在樹形元件中,選取所需配置。
按一下 [可用性服務]。
選取 [Web 容器可用性] 標籤。
核取 [可用性服務] 核取方塊以啟用可用性。若要停用可用性,請取消核取該方塊。
變更其他設定,如以下可用性設定小節中所述。
重新啟動伺服器實例。
Sun Java System Application Server 的 Application Server 獨立發行版本 隨附了 HADB 軟體。如需有關 Sun Java System Application Server 的可用發行軟體資訊,請參閱「Sun Java System Application Server 9.1 Installation Guide」中的「Distribution Types and Their Components」。只有 企業 設定檔才提供 HADB 功能。如需有關設定檔的更多資訊,請參閱 「Sun Java System Application Server 9.1 管理指南」中的「用法設定檔」。
[可用性服務] 的 [Web 容器可用性] 標籤讓您可以變更以下可用性設定:
持續性類型:為啟用了可用性的 Web 應用程式指定階段作業持續性機制。允許的值有 memory (無持續性)、file (檔案系統)、replicated (其他伺服器的記憶體) 以及 ha (HADB)。
必須配置並啟用 HADB 後,才能使用 ha 階段作業持續性。如需配置詳細資訊,請參閱 configure-ha-cluster(1)。
若已啟用 Web 容器可用性,則預設的持續性類型將取決於設定檔,如下表所示。
設定檔 |
持續性類型 |
---|---|
開發者 |
memory |
叢集 |
replicated |
企業 |
ha |
對於需要階段作業持續性的生產環境,請使用 ha 或 replicated。memory 持續性類型和 file 持續性類型並未提供高可用性階段作業持續性。
如果停用 Web 容器可用性,則預設的持續性類型為 memory。
持續性頻率:指定儲存階段作業狀態的頻率。唯有當「持續性類型」為 ha 或 replicated 時才適用。允許的值包括 :
web-method - 在每個 Web 請求結束時、將回應傳送回用戶端之前,儲存階段作業狀態。此模式為發生故障時完全更新階段作業狀態提供了最好的保證。此為預設值。
time-based - 根據 reapIntervalSeconds 儲存特性設定的頻率,在背景儲存階段作業狀態。此模式不能保證完全更新階段作業狀態。但是,它可以提供很大的效能改善,因為在每個請求之後都不儲存狀態。
持續性範圍:指定階段作業物件數和儲存階段作業狀態的頻率。唯有當「持續性類型」為 ha 或 replicated 時才適用。允許的值包括:
session - 每次都儲存整個階段作業狀態。此模式為正確儲存任何可分散 Web 應用程式的階段作業資料提供了最好的保證。此為預設值。
modified-session - 如果階段作業狀態已修改,則儲存整個階段作業狀態。如果呼叫了 HttpSession.setAttribute() 或 HttpSession.removeAttribute(),則系統將認為階段作業已修改。必須保證每次變更屬性時都呼叫 setAttribute()。這不是 Java EE 規格的需求,但是此模式需要這樣做才能正常運作。
modified-attribute - 僅儲存修改的階段作業屬性。若要使此模式正常運作,您必須遵循一些指導原則:
每次修改階段作業狀態時都必須呼叫 setAttribute()。
確定各屬性之間沒有交叉參照。系統將對每個不同屬性關鍵字下的物件圖形單獨進行串列化並單獨儲存。如果每個單獨的關鍵字下的物件之間存在物件交叉參照,則它們將不會進行正確串列化和反串列化。
在多個屬性之間分布階段作業狀態,或者至少在唯讀屬性和可修改屬性之間分布階段作業狀態。
單次登入狀態:核取此方塊以啟用單次登入狀態的持續性。若要停用可用性,請取消核取該方塊。如需更多資訊,請參閱將階段作業容錯移轉與單次登入配合使用
HTTP 階段作業儲存:如果為獲得階段作業持續性而變更了用於連線 HADB 的 JDBC 資源,可以變更 HTTP 階段作業儲存。如需詳細資訊,請參閱 configure-ha-cluster(1)。
若要啟用和配置個別 Web 應用程式的可用性,請編輯應用程式部署描述元檔案 sun-web.xml。應用程式部署描述元中的設定會置換 Web 容器的可用性設定。
session-manager 元素的 persistence-type 屬性決定應用程式使用之階段作業持續性的類型。必須將該屬性設定為 ha 或 replicated 才能啟用高可用性階段作業持續性。
如需有關 sun-web.xml 檔案的更多資訊,請參閱「Sun Java System Application Server 9.1 Application Deployment Guide」中的「The sun-web.xml File」。
<sun-web-app> ... <session-config> <session-manager persistence-type=ha> <manager-properties> <property name=persistenceFrequency value=web-method /> </manager-properties> <store-properties> <property name=persistenceScope value=session /> </store-properties> </session-manager> ... </session-config> ...
在單一 Application Server 實例中,使用者經過應用程式認證後,即無需分別經在相同實例上執行的其他應用程式重新認證。這稱為單次登入。如需更多資訊,請參閱「Sun Java System Application Server 9.1 Developer’s Guide」中的「User Authentication for Single Sign-on」。
若要使該功能在 HTTP 階段作業容錯移轉到叢集中另一個實例後仍然可用,必須將單次登入資訊保留在 HADB 中。若要保持單次登入資訊,首先請啟用伺服器實例和 Web 容器的可用性,然後啟用單次登入狀態容錯移轉。
Sun Java System Application Server 的 Application Server 獨立發行版本 隨附了 HADB 軟體。如需有關 Sun Java System Application Server 的可用發行軟體資訊,請參閱「Sun Java System Application Server 9.1 Installation Guide」中的「Distribution Types and Their Components」。只有 企業 設定檔才提供 HADB 功能。如需有關設定檔的更多資訊,請參閱 「Sun Java System Application Server 9.1 管理指南」中的「用法設定檔」。
您可以用管理主控台在 [可用性服務] 的 [Web 容器可用性] 標籤中,啟用單次登入狀態容錯移轉,如配置 Web 容器的可用性所述。您也可以使用 asadmin set 指令,將配置的 availability-service.web-container-availability.sso-failover-enabled 特性設為 true。
例如,按如下所示使用 set 指令,其中 config1 為配置名稱:
asadmin set --user admin --passwordfile password.txt --host localhost --port 4849 config1.availability-service.web-container-availability. sso-failover-enabled="true"
可使用單一名稱和密碼組合存取的多個應用程式,即構成單次登入群組。對於與應用程式 (是單次登入群組的一部分) 相對應的 HTTP 階段作業,如果其中一個階段作業逾時,其他階段作業並不會失效,並且仍然可用。這是因為一個階段作業的逾時不應影響其他階段作業的可用性。
因此,如果一個階段作業逾時並且您嘗試從執行該階段作業的同一瀏覽器視窗存取相應的應用程式,則無需再次進行認證。但是將建立一個新的階段作業。
以屬於含有其他兩個應用程式的單次登入群組的購物車應用程式為例。假設其他兩個應用程式的階段作業逾時值大於購物車應用程式的階段作業逾時值。如果購物車應用程式的階段作業逾時,並且您嘗試從執行該階段作業的同一瀏覽器視窗執行購物車應用程式,則無需再次進行認證。但是,前一輛購物車將遺失,並且必須建立一輛新的購物車。即使執行購物車應用程式的階段作業已逾時,其他兩個應用程式也會繼續照常執行。
類似地,可假定與其他兩個應用程式中的任何一個應用程式對應的階段作業逾時。當從執行該階段作業的同一瀏覽器視窗連線應用程式時,您無需再次進行認證。
此運作方式僅適用於階段作業逾時情況。如果啟用了單次登入,並且使用 HttpSession.invalidate() 令其中一個階段作業失效,則屬於單次登入群組的所有應用程式之階段作業都將失效。如果您嘗試存取屬於單次登入群組的任一應用程式,則需要再次進行認證,系統將為存取該應用程式的用戶端建立一個新的階段作業。
有狀態階段作業 Bean (SFSB) 包含用戶端特定的狀態。用戶端與有狀態階段作業 Bean 之間存在一對一關係。建立時,EJB 容器會為每個 SFSB 提供一個唯一的階段作業 ID,此 ID 將 SFSB 連結至用戶端。
在伺服器實例出現故障時,SFSB 的狀態可以儲存在永久存放區中。SFSB 的狀態在其使用週期中預先定義的時間儲存於持續性存放區中。此動作稱為檢查點操作。如果啟用,通常會在 Bean 完成了任何作業事件之後 (即使該作業事件回復) 執行檢查點操作。
但是,如果 SFSB 參與了 Bean 管理的作業事件,則可能會在 Bean 方法執行到一半時確定該作業事件。因為 Bean 的狀態可能由於方法呼叫而處於過渡過程中,因此不是對 Bean 狀態進行檢查點操作的恰當時間。這種情況下,如果 Bean 在方法結束時不在其他作業事件的範圍內,EJB 容器會在相應方法結束時對 Bean 的狀態進行檢查點操作。如果 Bean 管理的作業事件使用多個方法,檢查點操作將延遲,直至後續方法結束時沒有使用中的作業事件。
SFSB 的狀態無需是作業事件,且可能做為非作業事件商務方法而進行了重大修改。如果某個 SFSB 出現這種情況,則您可以指定一系列檢查點方法,如指定進行檢查點操作方法中所述。
如果可分散 Web 應用程式參照 SFSB,且 Web 應用程式的階段作業容錯移轉,則 EJB 參照也將容錯移轉。
如果在 Application Server 實例停止時取消部署使用階段作業持續性的 SFSB,則可能不會清除持續性存放區中的階段作業資料。若要防止發生此情況,請在 Application Server 實例執行時取消部署 SFSB。
選取 [EJB 容器可用性] 標籤。
核取 [可用性服務] 核取方塊。
若要停用可用性,請取消核取此核取方塊。
請按照可用性設定中的說明變更其他設定
按一下 [儲存] 按鈕。
重新啟動伺服器實例。
若要啟用 EJB 容器的可用性,請使用 asadmin set 指令為配置設定以下三個特性:
availability-service.ejb-container-availability.availability-enabled
availability-service.ejb-container-availability.sfsb-persistence-type
availability-service.ejb-container-availability.sfsb-ha-persistence-type
例如,如果 config1 為配置名稱,則使用以下指令:
asadmin set --user admin --passwordfile password.txt --host localhost --port 4849config1.availability-service.ejb-container-availability .availability-enabled="true"
asadmin set --user admin --passwordfile password.txt --host localhost --port 4849config1.availability-service.ejb-container-availability .sfsb-persistence-type="file"
asadmin set --user admin --passwordfile password.txt --host localhost --port 4849config1.availability-service.ejb-container-availability .sfsb-ha-persistence-type="ha"
Sun Java System Application Server 的 Application Server 獨立發行版本 隨附了 HADB 軟體。如需有關 Sun Java System Application Server 的可用發行軟體資訊,請參閱「Sun Java System Application Server 9.1 Installation Guide」中的「Distribution Types and Their Components」。只有 企業 設定檔才提供 HADB 功能。如需有關設定檔的更多資訊,請參閱 「Sun Java System Application Server 9.1 管理指南」中的「用法設定檔」。
[可用性服務] 的 [EJB 容器可用性] 標籤可讓您變更以下可用性設定:
HA 持續性類型:為啟用了可用性的 SFSB 指定階段作業持續性和鈍化機制。允許值有 file (檔案系統)、replicated (其他伺服器上的記憶體) 及 ha (HADB)。預設值為 ha。對於需要階段作業持續性的生產環境,請使用預設值 ha 或重複。
SFSB 持續性類型:為尚未啟用可用性的 SFSB 指定鈍化機制。允許值有 file (預設值)、replicated 及 ha。
如果將任一持續性類型設定為 file,EJB 容器都將指定檔案系統位置,以儲存鈍化的階段作業 Bean 狀態。檔案系統的檢查點操作對於測試很有用,但不適用於生產環境。如需配置儲存特性的相關資訊,請參閱管理主控台線上說明。
如果任何其他伺服器實例出現故障,HA 持續性會使伺服器實例的叢集可以回復 SFSB 狀態。HADB 也用做鈍化和啟動儲存。在需要 SFSB 狀態持續性的生產環境中使用此選項。如需更多資訊,請參閱 configure-ha-cluster(1)。
SFSB 儲存池名稱:如果為獲得階段作業持續性而變更了用於連線 HADB 的 JDBC 資源,可以變更 SFSB 儲存池名稱。如需詳細資訊,請參閱 configure-ha-cluster(1)。
如果停用了可用性,本機檔案系統將用於 SFSB 狀態鈍化,但不用於持續性。若要變更 SFSB 狀態的儲存位置,請變更 EJB 容器中的 [階段作業儲存位置] 設定。如需配置儲存特性的更多資訊,請參閱管理主控台線上說明。
部署期間,可以啟用個別應用程式或 EJB 模組的 SFSB 可用性:
如果使用管理主控台部署,請核取 [啟用可用性] 核取方塊。
如果使用 asadmin deploy 或 asadmin deploydir 指令部署,請將 --availabilityenabled 選項設定為 true。如需更多資訊,請參閱 deploy(1) 和 deploydir(1)。
若要啟用個別 SFSB 的可用性並選取進行檢查點操作方法,請使用 sun-ejb-jar.xml 部署.
若要啟用高可用性階段作業持續性,請在 ejb 元素中設定 availability-enabled="true"。若要控制 SFSB 快取的大小和運作方式,請使用以下元素:
max-cache-size:指定快取中保留的階段作業 Bean 的最大數。如果快取溢出 (Bean 的個數超出 max-cache-size),則容器會鈍化一些 Bean 或將 Bean 的串列化狀態寫入檔案。用於建立檔案的目錄來自使用配置 API 的 EJB 容器。
resize-quantity
cache-idle-timeout-in-seconds
removal-timeout-in-seconds
victim-selection-policy
如需有關 sun-ejb-jar.xml 的更多資訊,請參閱「Sun Java System Application Server 9.1 Application Deployment Guide」中的「The sun-ejb-jar.xml File」。
<sun-ejb-jar> ... <enterprise-beans> ... <ejb availability-enabled="true"> <ejb-name>MySFSB</ejb-name> </ejb> ... </enterprise-beans> </sun-ejb-jar>
如果啟用,通常會在 Bean 完成了任何作業事件之後 (即使該作業事件回復) 執行檢查點操作。若要在導致 Bean 狀態重大修改之非作業事件商務方法結束時,指定額外的選擇性 SFSB 檢查點操作功能,請使用 sun-ejb-jar.xml 部署描述元檔案的 ejb 元素中的 checkpoint-at-end-of-method 元素。
如果要在建立之後立即對 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>