SAP BW 郵件傳送監控策略
SAP BW 郵件傳送監控策略
以往的情況是郵件一提交到BW的郵件佇列我們就認為自己工作做完了。事實上卻沒有,並且我們一直被困惑著,因為郵件會錯、會拖、會等、會卡,所有小孩子會犯的錯,它都會,而我們卻不知道為什麼。
我們的規劃是能夠把郵件的傳送納入到可控範圍,可以知道有沒有錯誤,有沒有傳送,有沒有等待。
我們在規劃時,分了幾個步驟去實現:
1. 可以監控郵件系統是否存在等待狀況
2. 如果存在等待狀況,能夠自動觸發郵件傳送動作
3. 可以監控郵件系統是否存在異常郵件
4. 如果存在異常郵件,能夠自動觸發重發郵件動作
通過對郵件系統的資料日誌分析,我們找到了其中的對應關係。郵件系統會把目前處於等待狀態的郵件暫時性的儲存到SOST這個表中,在聯合SOOD這個儲存郵件基本資訊的表,我們很快就是實現了第一步。建立如下試圖:
Tables:
SOOD
SOSC
Join conditions:
SOOD MANDT = SOSC MANDT
SOOD OBJTP = SOSC OBJTP
SOOD OBJYR = SOSC OBJYR
SOOD OBJNO = SOSC OBJNO
View Fields:
SOOD OBJNO
SOOD OBJNAM
SOOD OBJDES
SOOD CRDAT
SOOD CRTIM
SOOD OBJSND
SOOD SDDAT
SOOD SDTIM
SOSC ENTRY_DATE
SOSC ENTRY_TIME
SOSC SNDPRI
SOSC STATUS
SOSC NEW_STATUS
那麼我們可以通過查詢試圖獲得目前郵件等待情況。
我們知道可以手動去傳送等待狀態的郵件,但是我們的目的是能夠讓系統自動做,所以我們找到了相應的Report:RSCONN01(至於如何找到程式,通過SDN和Debug就八九不離十了)。一定發現有等待的郵件,且郵件是我們需要監控的,那麼就讓程式去觸發郵件傳送動作。這樣我們又解決了第二個問題。
第三步比較簡單,因為判斷是否錯誤無非是判斷Log的狀態資訊,但是問題是我們獲得的狀態編號是否就涵蓋了所有情況,也沒有這樣的文件說明。所以我們羅列的歷史以來日誌出現的狀態編號,比較笨,但是不得不說我們做到了。
第四步的實現也是通過Debug程式找到的,Function:SO_SEND_PROCESS_REQUEUE。 這裡有心的可能會發出這樣的疑問,為什麼不用第二步的程式。原因是,第二步的程式只會把目前處於等待狀態的郵件重發,而郵件一旦異常,那麼郵件系統就會把這些郵件踢到非等待狀態,所以第二步出現的程式根本就碰不到這個異常郵件,所以也談不上用它來傳送了。這個Function會通過一個table儲存需要重發的郵件,所以我們要做的就是把郵件資訊重新放進去。
內表的格式如下:[加粗的是必填]
OBJTP
OBJYR
OBJNO
FORTP
FORYR
FORNO
RECTP
ADRRECYR
RECNO
MSGTP
REPEAT_CNT
WAIT_DATEWAIT_TIME
NEW_STATUS
SNDREQIMMEDIATLY
你可以通過SOOD和SOOS這2個表把所有資訊都填入到內表中,那麼就完成了重入佇列的動作,當然只是完成了重入佇列的動作,所以你還是需要執行第二步的動作(是否把IMMEDIATLY設為X,就可以立即傳送還要測試,不過小fang一再告我不要把所有兔子都打光,謹記)。
通過以上的介紹,估計BW的郵件監控會是在你的掌控之中了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/554557/viewspace-631661/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python監控程序資源佔用併傳送郵件Python
- 郵件傳送
- 傳送郵件
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- 自動監控Oracle 表空間資訊併傳送郵件指令碼Oracle指令碼
- Laravel 傳送郵件Laravel
- PHP傳送郵件PHP
- Django——郵件傳送Django
- java郵件傳送Java
- Laravel傳送郵件Laravel
- gmail傳送郵件AI
- Oracle郵件傳送Oracle
- java傳送郵件Java
- Powershell郵件傳送
- thinkphp 郵件傳送PHP
- centos 傳送郵件CentOS
- phpcms傳送郵件PHP
- 郵件的傳送
- python實現自動監控網站併傳送郵件告警薦Python網站
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- golang傳送郵件(qq郵箱)Golang
- 郵件傳送API整理API
- php windows 傳送郵件PHPWindows
- 定時傳送郵件
- thinkjs 傳送郵件JS
- 使用phpmailer傳送郵件PHPAI
- Ubuntu的郵件傳送Ubuntu
- python傳送郵件Python
- nodejs 傳送郵件NodeJS
- 傳送郵件那些事
- javamail郵件傳送例子JavaAI
- 使用JavaMail傳送郵件JavaAI
- 使用nodemailer傳送郵件AI
- javamail傳送郵件(轉)JavaAI
- 用 Linux Shell 指令碼來監控磁碟使用情況併傳送郵件Linux指令碼
- 使用python傳送郵件和接收郵件Python
- 郵件營銷自動化:批次郵箱API傳送技巧與策略API
- 如何傳送電子郵件到別人郵箱?電子郵件傳送的方法