REPORT ZALERTS NO STANDARD PAGE HEADING LINE-SIZE 132. ****************************************************** * This program monitores the SAP red alerts, and in * * case of an alert, sends an express mail to the * * administrator, including the alert type and the * * description of the error. The program should be * * scheduled to run in batch in every hour or so. * * The alert thesholds should be configured using * * RZ06. The program was tested on 3.1H * ****************************************************** INCLUDE RSALINC1. INCLUDE RSALICSL. DATA: TXT(12), CL TYPE I, SERVER LIKE SPFIS-APSERVER, SERVER_TYPE TYPE I, RED_FLAG TYPE I. DATA: BEGIN OF EMAIL_DATA. INCLUDE STRUCTURE SODOCCHGI1. DATA: END OF EMAIL_DATA. DATA: BEGIN OF EMAIL_SEND OCCURS 10. INCLUDE STRUCTURE SOMLRECI1. DATA: END OF EMAIL_SEND. DATA: BEGIN OF DATA_TAB OCCURS 20, LINE(255), END OF DATA_TAB. START-OF-SELECTION. * Get the server data CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'rdisp/myname' ID 'VALUE' FIELD SERVER. SRV_NAME = SERVER. ISRV_TYPE = SERVER_TYPE. * Get the performance data PERFORM GET_ALERTS. * Extend the performance data with texts * OP. system: CPU-Load, Paging, Swap-Space, File-System alerts PERFORM CRT_OSCO_load_txt USING OSCO_load. PERFORM CRT_OSCO_page_TXT USING OSCO_page. PERFORM CRT_OSCO_swap_TXT USING OSCO_swap. PERFORM CRT_OSCO_file_TXT USING OSCO_file. * Enque directory/entry usage % PERFORM CRT_ENQU_TXT USING ENQU. * Sysyem log: max entries/hour, special messages alert PERFORM CRT_SYSLOG_TXT. * Roll/Page file used% alerts PERFORM CRT_RLPG_TXT USING RLPG. * Dispatcher queue used% alert PERFORM CRT_DPQU_TXT USING DPQU. * Trace Switch PERFORM CRT_TRACE_TXT. * Performance: dialog/update1/update2/batch/spool response/wait/run time PERFORM CRT_PERF_TXT USING PERFDIA. PERFORM CRT_PERF_TXT USING PERFVB. PERFORM CRT_PERF_TXT USING PERFV2. PERFORM CRT_PERF_TXT USING PERFBTC. PERFORM CRT_PERF_TXT USING PERFSPO. * Buffer hit ratio, directory used%, space used% alerts PERFORM CRT_BUFF_TXT USING BUFFABAP. PERFORM CRT_BUFF_TXT USING BUFFTAB1. PERFORM CRT_BUFF_TXT USING BUFFTABL. PERFORM CRT_BUFF_TXT USING BUFFPRES. PERFORM CRT_BUFF_TXT USING BUFFCUA. PERFORM CRT_BUFF_TXT USING BUFFDBTT. PERFORM CRT_BUFF_TXT USING BUFFDBFT. PERFORM CRT_BUFF_TXT USING BUFFDBIR. PERFORM CRT_BUFF_TXT USING BUFFDBSN. * ABAP: abap error, update error, sql error PERFORM CRT_ABAP_TXT USING ABAPERR. PERFORM CRT_ABAP_TXT USING ABAPVB. PERFORM CRT_ABAP_TXT USING ABAPSQL. * DB alerts: missing indices, freespace problems, arch. stuck, backup PERFORM CRT_GENP_TXT USING DB_INDICES. PERFORM CRT_GENP_TXT USING DB_FREESPC. PERFORM CRT_GENP_TXT USING DB_ARCSTUCK. PERFORM CRT_GENP_TXT USING DB_BACKUP. * Spool delay PERFORM CRT_GENP_TXT USING GENP_SPO. * ??? PERFORM CRT_GENP_TXT USING GENP_ARCH. PERFORM CRT_GENP_TXT USING GENP_03. PERFORM CRT_GENP_TXT USING GENP_04. PERFORM CRT_GENP_TXT USING GENP_05. PERFORM CRT_GENP_TXT USING GENP_06. PERFORM CRT_GENP_TXT USING GENP_07. PERFORM CRT_GENP_TXT USING GENP_08. PERFORM CRT_GENP_TXT USING GENP_09. PERFORM CRT_GENP_TXT USING GENP_10. PERFORM CRT_GENP_TXT USING GENP_11. PERFORM CRT_GENP_TXT USING GENP_12. PERFORM CRT_GENP_TXT USING GENP_13. PERFORM CRT_GENP_TXT USING GENP_14. PERFORM CRT_DB_GENP_TXT USING GENP_15. *Perf. Summary PERFORM CREATE_SUM_TEXT. * Process the result table SORT DETAILS BY TYP SUBTYP. LOOP AT DETAILS. IF DETAILS-TIME <> '0' AND DETAILS-DISABLED NE '1'. * Get the alert type PERFORM GET_ALERT_NAM_TXT USING DETAILS-TYP DETAILS-SUBTYP TXT. * Fill up the message table for the express mail IF DETAILS-VALUE = 2. RED_FLAG = 1. DATA_TAB = TXT. APPEND DATA_TAB. DATA_TAB+5(250) = DETAILS-TXT. APPEND DATA_TAB. DATA_TAB = ' '. APPEND DATA_TAB. * write: / details-time color 6, * txt color 6, * details-value color 6, * (50) details-txt color 6. ELSE. * write: / details-time color 1, * txt color 1, * details-value color 1, * (50) details-txt color 1. ENDIF. ENDIF. ENDLOOP. * Send an express mail with the details of the red alerts IF RED_FLAG = 1. PERFORM SEND_EXPERESS_MAIL. ENDIF. *---------------------------------------------------------------------* * FORM SEND_EXPERESS_MAIL * *---------------------------------------------------------------------* FORM SEND_EXPERESS_MAIL. EMAIL_DATA-OBJ_NAME = 'MESSAGE'. EMAIL_DATA-OBJ_DESCR = 'RED ALERTS!'. EMAIL_DATA-OBJ_LANGU = 'E'. EMAIL_DATA-SENSITIVTY = 'P'. EMAIL_DATA-OBJ_PRIO = '1'. EMAIL_DATA-NO_CHANGE = 'X'. EMAIL_DATA-PRIORITY = '1'. EMAIL_SEND-RECEIVER = 'KABAIIM'. EMAIL_SEND-REC_TYPE = 'B'. EMAIL_SEND-EXPRESS = 'X'. APPEND EMAIL_SEND. CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1' EXPORTING DOCUMENT_DATA = EMAIL_DATA DOCUMENT_TYPE = 'RAW' PUT_IN_OUTBOX = 'X' TABLES OBJECT_CONTENT = DATA_TAB RECEIVERS = EMAIL_SEND. ENDFORM.