SAP Backgroud job
后臺作業,主要用于運行需要處理大量數據,對交互沒有要求的程序。個人認為,簡單的創建,配置和監控后臺作業沒有什么難度。后臺作業管理最為困難的解決方案的取舍,系統負載的調控。失控的后臺作業,往往對系統帶來災難性的性能問題,也會導致權限管理的風險,結果是得不償失,而且可能導致流程混亂。所以個人認為,要創建一個周期性的后臺作業之前,首先應該慎重分析。比方說,一個已經明顯偏向 OLAP類型的報表,如果能夠用BI去實現,為什么還要堅持在生產系統去跑長時間的后臺作業?這極有可能是一種嚴重的重復運行的性能問題。再比方說,用戶獲得授權隨意創建后臺作業,結果導致后臺作業失控,在業務繁忙的時候,因為大量的后臺作業導致整個系統的停頓,會造成實實在在的經濟損失。再比如說,后臺作業安排的不合理,可能耗資源的和重要的后臺作業直接或者間接安排到了同一個時間段,那么必然會影響流程的運作。
詳細解釋一下sap得后臺作業。 sap得后臺作業的啟動方式可以是定時地,也是可以是事件觸發的。后臺作業里面包含一個或者多個步驟,每一個步驟則包含調用的程序,外部shell命令以及外部程序,也包含了調用者以及變量,還可以定義打印參數。后臺作業的名字往往需要遵循一定的命名規則,用來明確該后臺作業的重要程度,啟動方式,作用等等。我們往往通過SM36去創建后臺作業,(也可以通過SM36去查看SAP標準后臺作業),通過SM37去監控和管理后臺作業。
后臺作業有Scheduled, Released, Ready, Active, Finished, Canceled六種狀態。另外還可以指定執行的服務器組(后臺job執行的服務器組可以用sm61來配置)。 Scheduled狀態的job是創建了但是還沒有release,這種狀態的job是不會跑的。Released狀態的job在啟動條件滿足后會啟動,Ready就是啟動條件滿足后,系統開始為該job分配但尚未分配合適的后臺進程的一個中間狀態,Active代表這個job正在運行當中,換言之,其相應的后臺進程正在運行job某一個step得程序;Finished代表job得所有step都成功的完成了。Canceled代表job在某一個step得運行過程中異常中止了。
sap job得信息存在一系列的表TBTC*里面。有的時候,某個job對應的進程中止了,但是表里面的狀態信息仍然沒有更新,會出現job是active狀態,而實際沒有進程在跑的情況,那么,我們只需要check status,就可以手動修正表里面的狀態信息。
如果要分析job cancel得原因,應該檢查job log,往往job得step都是跑的是abap程序,所以,job cancel得時候常伴隨著dump產生,這個時候,雙擊job log的條目,可以跳轉對應的dump。另外,有的時候,因為進程被中止導致的job cancel沒有被寫入日志,需要結合system log去分析。job log是保存在\usr\sap\SID\SYS\global日志文件<client nr>JOBLOG中的,在某些特定的情況下,日志文件訪問問題會導致所有的job cancel,在DI上出現這種問題的時候,據說可能是NFS不穩定,這個我還不確定。
觸發Event 基本本是function module BP_EVENT_RAISE或者sapevt.exe。
總結
以上是生活随笔為你收集整理的SAP Backgroud job的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAE的创建测试
- 下一篇: 定义物料管理的容差范围