Application Server 經由 HTTP 階段作業資料和有狀態階段作業 Bean (SFSB) 階段作業資料的容錯移轉功能,提供高可用性階段作業持續性。容錯移轉表示在伺服器實例或硬體出現故障時,其他伺服器實例接管分散式階段作業。
在滿足以下條件時,分散式階段作業可在多個 Sun Java System Application Server 實例中執行:
每個伺服器實例均可以存取同一高可用性資料庫 (HADB)。如需有關如何啟用此資料庫的資訊,請參閱 configure-ha-cluster(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 和分散式實體 Bean 遠端主機參照、遠端參照
分散式階段作業 Bean 遠端主機和遠端參照
InitialContext 和 java:comp/env 的 JNDI 上下文。
UserTransaction 物件。但是,如果出現故障的實例從未重新啟動,則任何就緒的全域作業事件都將遺失,且可能無法正確回復或確定。
可串列化 Java 類型
無法將以下物件類型連結至支援容錯移轉的階段作業:
JDBC DataSource
Java Message Service (JMS) ConnectionFactory 和 Destination 物件
JavaMail™ 階段作業
連線工廠
管理的物件
Web 服務參照
通常,對於這些物件,容錯移轉不可用。但是,容錯移轉可能在某些情況下可用,例如,如果物件是可串列化的。
以下目錄包含說明階段作業持續性的範例應用程式:
install_dir/samples/ee-samples/highavailability install_dir/samples/ee-samples/failover
以下範例應用程式說明 SFSB 階段作業持續性:
install_dir/samples/ee-samples/failover/apps/sfsbfailover