Sun logo      上一個      目錄      下一個     

Sun Java System Application Server Enterprise Edition 8.1 管理指南 2005Q1

第 16 章
作業事件

透過將一個或多個步驟納入不可分的工作單元,作業事件可確保資料的完整性和一致性。本章包括下列小節:


關於作業事件

何為作業事件?

作業事件是應用程式中一系列嚴密的動作,所有動作必須成功完成,否則每個動作中的所有變更會被撤消。例如,將資金從支票帳戶轉入儲蓄帳戶是一項作業事件,步驟如下:

  1. 檢查支票帳戶是否有足夠的資金來支付此轉帳操作。
  2. 如果支票帳戶中有足夠的資金,則將該筆資金記入此帳戶的借方。
  3. 將這些資金記入儲蓄帳戶的貸方。
  4. 將此次轉帳記錄到支票帳戶記錄中。
  5. 將此次轉帳記錄到儲蓄帳戶記錄中。

如果這些步驟的任何一個步驟失敗,則必須撤消在前面的步驟中所做的所有變更,而且支票帳戶和儲蓄帳戶的狀態必須與它們在作業事件開始之前的狀態相同。該事件稱為轉返。如果所有步驟均成功完成,則該作業事件處於已確定狀態。作業事件以確定或轉返狀態結束。

J2EE 技術中的作業事件

J2EE 技術中的作業事件處理包括以下五個參與者:

透過實作不同的 API 和功能,每個實體均有助於提高作業事件處理的可靠性,如下所述:


有關作業事件的管理主控台作業

Application Server 根據管理主控台中的設定來處理作業事件。

配置作業事件

本小節說明如何配置以下作業事件屬性:

作業事件恢復

由於伺服器當機或資源管理員當機,作業事件可能未完成。完成這些中斷的作業事件並從故障中恢復是至關重要的。Application Server 可在伺服器啟動時從這些故障中恢復並完成作業事件。

執行恢復作業時,如果無法訪問某些資源,則伺服器重新啟動作業可能被延遲,因為伺服器正在嘗試恢復作業事件。

如果作業事件跨伺服器進行,啟動該作業事件的伺服器會聯絡其他伺服器以獲得作業事件的結果。如果無法訪問其他伺服器,則該作業事件將使用 [啟發式決策] 欄位來確定結果。

若要配置 Application Server 從作業事件中恢復的方法,請執行以下步驟:

  1. 在樹形元件中,選取 [配置] 節點。
  2. 選取要配置的實例:
    1. 若要配置特定的實例,請選取該實例的配置節點。例如,對於預設實例 server,請選取 server-config 節點。
    2. 若要配置所有實例的預設設定,請選取 default-config 節點。
  3. 選取 [作業事件服務] 節點。
  4. 若要恢復未完成的作業事件,請在 [重新啟動時] 欄位中選取 [恢復]。
  5. 在 [重試逾時] 欄位中,設定 Application Server 嘗試連線無法訪問的伺服器之時間 (以秒為單位)。預設值為 10 分鐘 (600 秒)。
  6. 在 [啟發式決策] 欄位中,為作業事件中無法訪問的伺服器設定策略。
  7. 除非有充分的理由將 [啟發式決策] 欄位設定為 [確定],否則將其保留設定為 [轉返]。確定不確定的作業事件會破壞應用程式的資料完整性。

  8. 按一下 [儲存]。
  9. 重新啟動 Application Server。

作業事件逾時

依預設,伺服器不會使作業事件逾時。也就是說,伺服器無限期地等待作業事件完成。如果為作業事件設定了逾時值,而作業事件在配置的時間內未完成,則 Application Server 將轉返該作業事件。

若要設定逾時值,請執行以下步驟:

  1. 在樹形元件中,選取 [配置] 節點。
  2. 選取要配置的實例:
    1. 若要配置特定的實例,請選取該實例的配置節點。例如,對於預設實例 server,請選取 server-config 節點。
    2. 若要配置所有實例的預設設定,請選取 default-config 節點。
  3. 選取 [作業事件服務] 節點。
  4. 在 [作業事件逾時] 欄位中,輸入作業事件逾時之前等待的秒數。
  5. 作業事件逾時的預設值為 0 秒。這將停用作業事件逾時。

  6. 按一下 [儲存]。
  7. 重新啟動 Application Server。

作業事件記錄

為了保持被呼叫資源的資料完整性,同時為了能夠從故障中恢復,作業事件記錄將記錄有關每個作業事件的資訊。作業事件記錄保留在 [作業事件記錄位置] 欄位指定的目錄之 tx 子目錄中。這些記錄無法進行人為讀取。

若要設定作業事件記錄的位置,請執行以下步驟:

  1. 在樹形元件中,選取 [配置] 節點。
  2. 選取要配置的實例:
    1. 若要配置特定的實例,請選取該實例的配置節點。例如,對於預設實例 server,請選取 server-config 節點。
    2. 若要配置所有實例的預設設定,請選取 default-config 節點。
  3. 選取 [作業事件服務] 節點。
  4. 在 [作業事件記錄位置] 欄位中輸入作業事件記錄的位置。
  5. 將建立 tx 子目錄,而且作業事件記錄保留在該目錄下。

    預設值為 ${com.sun.aas.instanceRoot}/logs${com.sun.aas.instanceRoot} 變數是實例的名稱,並在您啟動一個 Application Server 實例時設定此變數。若要查看 ${com.sun.aas.instanceRoot} 的值,請按一下 [實際值]。

  6. 按一下 [儲存]。
  7. 重新啟動 Application Server。

關鍵點作業可以壓縮作業事件記錄檔。關鍵點間隔是記錄中關鍵點作業之間的作業事件數目。關鍵點作業可以減小作業事件記錄檔的大小。關鍵點間隔數越大 (例如,2048),作業事件記錄檔也越大,但關鍵點作業較少,效能可能更佳。關鍵點間隔越小 (例如,256),記錄檔也越小,而同時由於關鍵點作業較為頻繁,效能會略微降低。

若要設定關鍵點間隔,請執行以下步驟:

  1. 在樹形元件中,選擇 [配置] 節點。
  2. 選取要配置的實例:
    1. 若要配置特定的實例,請選取該實例的配置節點。例如,對於預設實例 server,請選取 server-config 節點。
    2. 若要配置所有實例的預設設定,請選取 default-config 節點。
  3. 選取 [作業事件服務] 節點。
  4. 在 [關鍵點間隔] 欄位中,輸入關鍵點作業之間的作業事件數目。
  5. 預設值為 2048。

  6. 按一下 [儲存]。
  7. 重新啟動 Application Server。



上一個      目錄      下一個     


Copyright 2004 - 2005 Sun Microsystems, Inc. 版權所有。