後臺運行進程(background job)

轉自:http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=217385588

在一些日常業務中,總有一些長時間處理的任務,系統運行這些任務需要一晚甚至一個週末。

這就需要後臺運行單元(background work process)來完成,而且其是不會發生超時(time out) 錯誤的。

進程(job)有下面幾種類型:

時間驅動(Time-driven  job):按照用戶預先設定的有時間啓動進程。

事件驅動(Event-Driven job):在一個事件或另一個進程後,該進程啓動。

週期型(periodic  job) :在每時或每天,定時執行的進程。

刪除型(deleting  job): 爲刪除系統中盈餘的數據的進程,可能會執行較長時間,需要在 

                                                 後臺進行。

進程的屬性:

Job name:進程的名最長爲32字符。

Job count:爲了去該進程在系統中的唯一性。比如週期性進程的名都是一樣的,

                     Job name+Job count就能確定其的唯一性。

Step:在該進程內中定義的程序數量。

Start data:啓動的時間點有:立即(immediatlly),指定時間(data/time),

                      時間(event)…等等。

Job owner:產生該進程的用戶。

Job class:該進程在系統中的執行等級。

Client:決定該進程在哪個Client中執行,有些系統進程必須在Client000中執行。

Target sever:決定該進程在那個服務器中執行,這有助於合理的分配系統資源

進程狀態:

Planned:進程已經被定義,但是還沒有開始。

Release:進程已經開始,但是進程中定義的程序還沒有被執行。

Ready: 進程已經開始,所有程序開始的條件(啓動時間)也已滿足,等候系統分配運行資源

              (運行所需的後臺進程處理單元<BTC-WP>)。

Active:   進程開始,而且定義的每一個程序(STEP)都被按序執行。

Finished: 進程順利完成。

Cancelled:因爲錯誤,進程沒有正常完成。

各個進程的關係:

Planned   <>  Release  > Ready -> Active -->  finished or Cancelled

執行後臺進程的方法:

   事務執行命令(transaction code):

           SM36,SM37, SA38

  ABAP 程序:

           SAP系統程序或客戶自定義的程序。

外部程序或工具:

         外部工具(第三方)通過BAPI-XBP接口,從外部定義執行後臺進程。

後臺進程相關的系統表:

TBTCO:   存放後臺進程所有的信息和狀態。

TBTCP:存放後臺進程中定義程序的信息。

TBTCS:    時間驅動進程相關的信息。

BTCEVTJOB:事件驅動進程相關的信息。

後臺進程的日誌(joblog):

日誌存放在文件系統(其是TemSe子系統)中,列如:/usr/sap/<sid>/sys/global/001joblg…

 

一般的問題處理:

問題1:  後臺進程沒有啓動。

原因1:系統沒有足夠的資源。可以用T-cd:Sm51,Rz04,SM66,Sm37確認。

原因2:進程調度(Scheduler)沒有運行。T-cd:Sm61確認。

原因3:無法生產日誌,用Sm21確認系統日誌,和ST11確認developer trace。

                   可能是有TemSe不整合或有OS文件的訪問問題。

原因4:TCTCO,TCTCP…等一系列表之間的不整合;用SM65->Goto->Additional test->

                選擇:Perform TemSe check

                             Consistency check DB Table

                                Remove inconsistencies

                ->執行

問題2:後臺進程在執行的過程中,發生互鎖。

原因1:確認應用程序的邏輯,一般情況下這個問題都是有應用程序本身導致的。

原因2:數據庫的原因,但是這樣的情況較少。

原因3:兩個週期進程,間隔時間太短,以至於第一個還沒有執行完,第二個已開始執行。

建議·: 根據note-16083中的說明,設定標準進程,以減少系統負擔和數據盈餘。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章