REPORT ZENQLIST NO STANDARD PAGE HEADING. *********************************************************************** * Continuously display the rejected lock requests * Useful tool to detect bottlenecks on particular tables *********************************************************************** DATA: ENQ_LOCATION(70), LASTLINE TYPE I, FIRSTLINE TYPE I, FLAG TYPE I, OLDLINE(200). DATA: BEGIN OF LINE_TBL OCCURS 0. INCLUDE STRUCTURE SPFLIST. DATA: END OF LINE_TBL. DATA: BEGIN OF RES_TBL OCCURS 0. INCLUDE STRUCTURE SPFLIST. DATA: END OF RES_TBL. DATA: BEGIN OF ITAB OCCURS 5. INCLUDE STRUCTURE THLINES. DATA: END OF ITAB. * START-OF-SELECTION. * Status for safe exit: SET PF-STATUS 'SAFESTOP'. * Figure out the location of the ENQLOG * Start the enq logging CALL 'C_ENQUEUE' ID 'OPCODE' FIELD 'X'. CALL FUNCTION 'Z_ENQUEUE_DELAY' STARTING NEW TASK 'WAIT' PERFORMING WHEN_FINISHED ON END OF TASK. WRITE: ''. * AT USER-COMMAND. IF SY-UCOMM = 'SAFE'. * Stop the enque logging and exit CALL 'C_ENQUEUE' ID 'OPCODE' FIELD 'Y'. SET SCREEN 0. LEAVE SCREEN. ENDIF. SY-LSIND = SY-LSIND - 1. CALL FUNCTION 'TH_REQUEST_QUEUE' TABLES REQUEST_QUEUES = ITAB. * Read and display the enqlog file CALL FUNCTION 'ENQUEUE_READ_LOG' TABLES LOGLINES = LINE_TBL EXCEPTIONS OTHERS = 1. * Display the last 25 entries FLAG = 0. CLEAR RES_TBL. REFRESH RES_TBL. LOOP AT LINE_TBL. IF LINE_TBL CS 'SLEEP'. FLAG = 1. ELSE. IF FLAG = 0 AND LINE_TBL CS 'Rejected'. RES_TBL = OLDLINE. APPEND RES_TBL. ELSE. OLDLINE = LINE_TBL. DELETE LINE_TBL.FLAG = 0. ENDIF. ENDIF. ENDLOOP. * WRITE: / 'List of the last 25 rejected lock requests'. WRITE: / SY-DATUM, SY-UZEIT. SKIP. DESCRIBE TABLE RES_TBL LINES LASTLINE. FIRSTLINE = LASTLINE - 25. IF FIRSTLINE <= 1. FIRSTLINE = 1. ENDIF. IF LASTLINE > FIRSTLINE. LOOP AT RES_TBL FROM FIRSTLINE TO LASTLINE. WRITE: / RES_TBL-LINE. ENDLOOP. ENDIF. * CALL FUNCTION 'Z_ENQUEUE_DELAY' STARTING NEW TASK 'INFO' PERFORMING WHEN_FINISHED ON END OF TASK. * FORM WHEN_FINISHED USING TASKNAME. RECEIVE RESULTS FROM FUNCTION 'Z_ENQUEUE_DELAY'. SET USER-COMMAND 'BUMM'. ENDFORM.