Sun Java System Application Server Enterprise Edition 8.1 管理指南 2005Q1 |
第 16 章
作業事件透過將一個或多個步驟納入不可分的工作單元,作業事件可確保資料的完整性和一致性。本章包括下列小節:
關於作業事件何為作業事件?
作業事件是應用程式中一系列嚴密的動作,所有動作必須成功完成,否則每個動作中的所有變更會被撤消。例如,將資金從支票帳戶轉入儲蓄帳戶是一項作業事件,步驟如下:
如果這些步驟的任何一個步驟失敗,則必須撤消在前面的步驟中所做的所有變更,而且支票帳戶和儲蓄帳戶的狀態必須與它們在作業事件開始之前的狀態相同。該事件稱為轉返。如果所有步驟均成功完成,則該作業事件處於已確定狀態。作業事件以確定或轉返狀態結束。
J2EE 技術中的作業事件
J2EE 技術中的作業事件處理包括以下五個參與者:
透過實作不同的 API 和功能,每個實體均有助於提高作業事件處理的可靠性,如下所述:
- 作業事件管理員提供支援作業事件分隔、作業事件資源管理、同步化及作業事件上下文傳遞所需的服務和管理功能。
- Application Server 提供支援應用程式執行環境 (包含作業事件狀態管理) 所需的基礎架構。
- 資源管理員 (透過資源介面) 提供應用程式對資源的存取權。資源管理員參與分散式作業事件,其方法為:執行由作業事件管理員使用的作業事件資源介面來傳遞作業事件關聯、作業事件完成以及恢復工作。關聯式資料庫伺服器便是這樣一個資源管理員。
- 資源介面是一個系統層級的軟體程式庫,應用程式伺服器或用戶端可使用該程式庫連線到資源管理員。資源介面通常專用於資源管理員。它可以作為程式庫,在使用它的用戶端位址空間中使用。JDBC 驅動程式便是這樣一個資源介面。
- 開發用於應用程式伺服器環境的作業事件使用者應用程式使用 JNDI 來查找作業事件資料源及作業事件管理員 (可選)。應用程式可以使用企業 Bean 的宣告性作業事件屬性設定或明確的程式化作業事件分隔。
有關作業事件的管理主控台作業Application Server 根據管理主控台中的設定來處理作業事件。
配置作業事件
本小節說明如何配置以下作業事件屬性:
作業事件恢復
由於伺服器當機或資源管理員當機,作業事件可能未完成。完成這些中斷的作業事件並從故障中恢復是至關重要的。Application Server 可在伺服器啟動時從這些故障中恢復並完成作業事件。
執行恢復作業時,如果無法訪問某些資源,則伺服器重新啟動作業可能被延遲,因為伺服器正在嘗試恢復作業事件。
如果作業事件跨伺服器進行,啟動該作業事件的伺服器會聯絡其他伺服器以獲得作業事件的結果。如果無法訪問其他伺服器,則該作業事件將使用 [啟發式決策] 欄位來確定結果。
若要配置 Application Server 從作業事件中恢復的方法,請執行以下步驟:
作業事件逾時
依預設,伺服器不會使作業事件逾時。也就是說,伺服器無限期地等待作業事件完成。如果為作業事件設定了逾時值,而作業事件在配置的時間內未完成,則 Application Server 將轉返該作業事件。
若要設定逾時值,請執行以下步驟:
作業事件記錄
為了保持被呼叫資源的資料完整性,同時為了能夠從故障中恢復,作業事件記錄將記錄有關每個作業事件的資訊。作業事件記錄保留在 [作業事件記錄位置] 欄位指定的目錄之
tx
子目錄中。這些記錄無法進行人為讀取。若要設定作業事件記錄的位置,請執行以下步驟:
關鍵點作業可以壓縮作業事件記錄檔。關鍵點間隔是記錄中關鍵點作業之間的作業事件數目。關鍵點作業可以減小作業事件記錄檔的大小。關鍵點間隔數越大 (例如,2048),作業事件記錄檔也越大,但關鍵點作業較少,效能可能更佳。關鍵點間隔越小 (例如,256),記錄檔也越小,而同時由於關鍵點作業較為頻繁,效能會略微降低。
若要設定關鍵點間隔,請執行以下步驟: