Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Sunday, March 2, 2008

Display the growth history of a selected tablespace using SAP graphics - interactive report

*
* Display the growth history of a specific tablespace using SAP graphics.
* The tablespace has to be selected from an interactive list.
*
REPORT ZTBSPCGR.

DATA: BEGIN OF HIST OCCURS 100.
INCLUDE STRUCTURE HIST.
DATA: END OF HIST.
DATA: BEGIN OF HIST2 OCCURS 100,
TS LIKE HIST-TS,
DATE_ LIKE HIST-DATE_,
TUSED LIKE HIST-TUSED,
END OF HIST2 .
DATA: BEGIN OF DATA OCCURS 1,
W TYPE I,
F TYPE F,
END OF DATA.
DATA: BEGIN OF OPTS OCCURS 1,
C(80),
END OF OPTS.
DATA: SELTS LIKE HIST-TS, CLIN(7) TYPE N, CCLIN(7), LIN TYPE I,
DATEC(25), REFDAT TYPE D VALUE '19970801', X1 TYPE I VALUE 0,
X2 TYPE I VALUE 300, Y1 TYPE I VALUE 0, Y2 TYPE I VALUE 10000,
FLAG TYPE I.

START-OF-SELECTION.

CALL FUNCTION 'DB_ORA_TABLESPACE_HISTORY' DESTINATION 'zzzzzzzz'
TABLES
HIST1 = HIST.

LOOP AT HIST.
MOVE-CORRESPONDING HIST TO HIST2.
HIST2-TUSED = HIST2-TUSED / 1024.
HIST2-DATE_ = HIST2-DATE_ - REFDAT.
APPEND HIST2.
ENDLOOP.

SORT HIST2 BY TS.
FLAG = 0.
LOOP AT HIST2.
AT NEW TS.
FLAG = FLAG + 1. FLAG = FLAG MOD 2.
IF FLAG = 0.
WRITE: / HIST2-TS COLOR 2. HIDE: HIST2-TS.
ELSE.
WRITE: / HIST2-TS COLOR 4. HIDE: HIST2-TS.
ENDIF.
ENDAT.
ENDLOOP.

AT LINE-SELECTION.
SELTS = HIST2-TS.
SY-LSIND = SY-LSIND - 1.
SORT HIST2 BY DATE_ ASCENDING.
CLEAR DATA. REFRESH DATA.
CLEAR OPTS. REFRESH OPTS.
LOOP AT HIST2.
IF HIST2-TS = SELTS.
DATA-W = HIST2-DATE_.
DATA-F = HIST2-TUSED.
APPEND DATA.
ENDIF.
ENDLOOP.

DESCRIBE TABLE DATA LINES LIN.
CLIN = LIN. CCLIN = CLIN. CCLIN(1) = '$'.
DATEC = 'TABLESPACE: '. DATEC+12 = SELTS.
OPTS-C = CCLIN .APPEND OPTS.
OPTS-C = 'COLOR=1'.APPEND OPTS.
OPTS-C = 'thick=1'.APPEND OPTS.
OPTS-C = 'LTEXT='.APPEND OPTS.
OPTS-C = 'DTEXT='.APPEND OPTS.

CALL FUNCTION 'STAT_GRAPH'
EXPORTING
TTEXT = DATEC
UTEXT = 'Kb/day (from Aug-01-97)'
X_ART = 'LIN'
Y_ART = 'LIN'
SCALE = 'MAN'
XRNGL = X1
XRNGU = X2
YRNGL = Y1
YRNGU = Y2
XTCKS = '11'
YTCKS = '11'
XDECS = '0'
YDECS = '0'
TABLES
OPTS = OPTS
DATA = DATA.

ABAP Program for Download the custom developed abap programs to a UNIX text file - report


* This program downloads the custom developed abap programs
* to a UNIX text file.
*
REPORT ZABAPSAV.

DATA: BEGIN OF ITAB OCCURS 500,
C(72),
END OF ITAB.
PARAMETERS: OUTFILE(50) DEFAULT '/tmp/abaps' LOWER CASE..
DATA: HEADER(72), SPC(72) VALUE ' '.
TABLES: TRDIR.
OPEN DATASET OUTFILE IN TEXT MODE FOR OUTPUT.

SELECT * FROM TRDIR WHERE NAME LIKE 'Z%' OR NAME LIKE 'Y%'.
HEADER = '#@$%&************* '.
HEADER+20 = TRDIR-NAME.
HEADER+30 = TRDIR-CNAM.
HEADER+40 = TRDIR-UDAT.
HEADER+54 = '******************'.
TRANSFER SPC TO OUTFILE.
TRANSFER HEADER TO OUTFILE.
TRANSFER SPC TO OUTFILE.
CLEAR ITAB. REFRESH ITAB.
READ REPORT TRDIR-NAME INTO ITAB.
LOOP AT ITAB.
TRANSFER ITAB TO OUTFILE.
ENDLOOP.
ENDSELECT.
CLOSE DATASET OUTFILE.

Detects the "heavy" ABAP programs of a certain period of time: interprets the collected data - report


* This program interprets the sequential file created by ZHEAVYPR
* and displays the "heavy" ABAPs of a specified period of time.
* The result is a list of ABAPS categorized by app. server and
* work process type, and sorted by a number: how many times
* that particular ABAP was found running for too long time (>5min)
* during that period.
*
REPORT ZHEAVYLS.

DATA: INPUT_FILE(40) VALUE '/oracle/SID/sapreorg/heavy_abaps'.
PARAMETERS: DATE LIKE AMDS-ANDAT DEFAULT SY-DATUM,
FROMTIME LIKE PLKZ-AEUZEIT DEFAULT SY-UZEIT,
TOTIME LIKE PLKZ-AEUZEIT DEFAULT SY-UZEIT.

DATA: BEGIN OF O,
1(10), 2(8), 3(8), 4(3), 5(8), 6(8),
END OF O.
DATA: BEGIN OF A OCCURS 100,
3(8), 4(3), 6(8), NUM TYPE I,
END OF A.

OPEN DATASET INPUT_FILE FOR INPUT IN TEXT MODE.
DO.
READ DATASET INPUT_FILE INTO O.
IF SY-SUBRC <> 0.EXIT.ENDIF.
IF O-1 = DATE AND O-2 >= FROMTIME AND O-2 <= TOTIME.
MOVE-CORRESPONDING O TO A. A-NUM = 1.
COLLECT A.
ENDIF.
ENDDO.
CLOSE DATASET INPUT_FILE.

WRITE: / DATE, FROMTIME, '---', TOTIME.
SKIP 2.
SORT A BY 3 4 NUM DESCENDING.
LOOP AT A.
AT NEW 3.
WRITE: / A-3 COLOR 2.
ENDAT.
AT NEW 4.
WRITE: / ' ',A-4 COLOR 3.
ENDAT.
WRITE: / ' ', A-6, A-NUM.
ENDLOOP.

ABAP Program for Detects the "heavy" ABAP programs of a certain period of time: data collector - report

*
* This program creates a sequential file of long running ABAPs.
* Later, with the ZHEAVYLS program, we can figure out the
* "heavy" ABAPs of a given period of time, by interpreting the
* sequential file.
* The program creates a snapshot every 5 minutes, of the workpocesses
* on the different app. servers and db. server, running ABAPs
* longer then 5 minutes.
*
REPORT ZHEAVYPR.

DATA: OUTPUT_FILE(40) VALUE '/oracle/SID/sapreorg/heavy_abaps'.
DATA: DEST(8).DATA: WITH_CPU TYPE X VALUE 10,
SRVNAME LIKE SPFID-APSERVER.
DATA: BEGIN OF SRV_TBL OCCURS 100.
INCLUDE STRUCTURE MSXXLIST.
DATA END OF SRV_TBL.
DATA: BEGIN OF WPLIST OCCURS 30.
INCLUDE STRUCTURE WPINFOS.
DATA: END OF WPLIST.
DATA: BEGIN OF LOC_WPLIST OCCURS 30.
INCLUDE STRUCTURE WPINFO.
DATA: END OF LOC_WPLIST.
DATA: BEGIN OF WPINFO OCCURS 30.
INCLUDE STRUCTURE WPINFO.
DATA: END OF WPINFO.
DATA: BEGIN OF PFNORM OCCURS 30.
INCLUDE STRUCTURE PFNORM.
DATA: END OF PFNORM.
DATA: BEGIN OF O,
1(10), 2(8), 3(8), 4(3), 5(8), 6(8),
END OF O.


CALL FUNCTION 'TH_SERVER_LIST' DESTINATION '????????'
TABLES
LIST = SRV_TBL.

REFRESH WPLIST.
LOOP AT SRV_TBL.
SRVNAME = SRV_TBL-NAME.
REFRESH LOC_WPLIST.
WITH_CPU = 1.
CALL FUNCTION 'TH_WPINFO' DESTINATION '???????'
EXPORTING
SRVNAME = SRVNAME
TABLES
WPLIST = LOC_WPLIST
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC = 0.
LOOP AT LOC_WPLIST.
MOVE-CORRESPONDING LOC_WPLIST TO WPLIST.
WPLIST-APSERVER = SRVNAME.
APPEND WPLIST.
ENDLOOP.
ENDIF.
ENDLOOP.
OPEN DATASET OUTPUT_FILE FOR APPENDING IN TEXT MODE.
LOOP AT WPLIST.
DEST = WPLIST-APSERVER.

CALL FUNCTION 'TH_WP_DETAIL_INFO' DESTINATION DEST
EXPORTING
WP = WPLIST-WP_NO
WITH_CPU = WITH_CPU
IMPORTING
WPINFO = WPINFO
PFNORM = PFNORM.
IF NOT WPINFO-WP_REPORT IS INITIAL AND WPINFO-WP_ELTIME > 310.
* write: / sy-datum no-gap, sy-uzeit, dest, ' ',wplist-wp_typ, ' ',
* wpinfo-wp_eltime, ' ', wpinfo-wp_report.
O-1 = SY-DATUM. O-2 = SY-UZEIT.
O-3 = DEST. O-4 = WPLIST-WP_TYP.
O-5 = WPINFO-WP_ELTIME. O-6 = WPINFO-WP_REPORT.
TRANSFER O TO OUTPUT_FILE.
ENDIF.
ENDLOOP.
CLOSE DATASET OUTPUT_FILE.