|
|||||
|---|---|---|---|---|---|
| Home | The Company | Publications | Products | Links | Tips |

* Program : PURGEUQE
* This program creates modify commands to purge inactive and
* active user queue elements to prevent ADABAS RC 48
* Input : Report (DDDRUCK) of ADADBMOD OPERCOM DUQA
* Output1 : Modify commands /*$VS,'F server,STOPU=X'userid-hex''
* to internal reader
* Output2 : Report of all modify commands with UQE info
* Author : Dieter W. Storr
* Date : August 17, 1998
* ---------------------------------------------------------------------
* Name Date Change and Enhancements
* ---------------------------------------------------------------------
* D.Storr 08/24/98 END OF DATA for /*EOF (end of command stream)
* D.Storr 06/08/04 Changed for publishing
*
* ---------------------------------------------------------------------
*
DEFINE DATA LOCAL
01 #P-SERVER (A08)
01 #T-DBID (N03/1:04) /* Table for dbid and server names
01 #T-SERVER (A08/1:04)
01 #I1 (P4) /* Index for loops
*
01 #MOD (A37)
01 REDEFINE #MOD
02 #MOD-CMD (A09)
02 #MOD-REST (A28)
*
01 #DDD (A121) /* DDDRUCK
01 REDEFINE #DDD /*
02 #DDD-FA (A001) /* asa control
02 #DDD-F1 (A001) /* blank
02 #DDD-UQE (A008) /* hex value user queue element
02 REDEFINE #DDD-UQE
03 #DDD-UQE-A2 (A2) /* check-out UQE = 00...... all??
03 #DDD-UQE-A6 (A6) /* ..xxxxxx
02 #DDD-F3 (A003) /* blank
02 #DDD-JOB (A008) /* jobname
02 #DDD-F4 (A003) /* blank
02 #DDD-TID (A008) /* TID
02 #DDD-F5 (A023) /* blank and TID hex
02 #DDD-TYPE (A001) /*
02 #DDD-F6 (A005) /* blank
02 #DDD-ACTIV (A010) /* last activity
01 REDEFINE #DDD /* DDDRUCK
02 #DDD-F27 (A027) /* not relevant
02 #DDD-DB (A009) /* text: 'DBID = 00'
02 #DDD-DBID (N003) /* dbid: 200
02 #DDD-F82 (A082) /* not relevant
END-DEFINE
*
* -------------------------------- Initials
MOVE '/*$VS,''F ' TO #MOD-CMD
* Table
MOVE 123 TO #T-DBID (01)
MOVE 'ADAPROD1' TO #T-SERVER (01)
MOVE 124 TO #T-DBID (02)
MOVE 'ADAPROD2' TO #T-SERVER (02)
MOVE 125 TO #T-DBID (03)
MOVE 'ADAPROD3' TO #T-SERVER (03)
MOVE 200 TO #T-DBID (04)
MOVE 'ADATEST ' TO #T-SERVER (04)
*
* ---------------------
*
READ WORK FILE 1 #DDD /* read DDDRUCK report
*
IF #DDD-DB = 'DBID = 00' /* DBID in header = 00200
*
FOR #I1 = 1 TO 4
IF #DDD-DBID = #T-DBID (#I1)
MOVE #T-SERVER (#I1) TO #P-SERVER
END-IF
END-FOR
*
WRITE NOTITLE
01T '-'(79) /
01T 'Lib:' *LIBRARY-ID 25T 'Purged User Queue Elements'
67T 'Pgm:'*PROGRAM /
01T *DATX(EM=YYYY-MM-DD)
18T 'Prevents ADABAS Utility Response Code 48'
67T *TIME /
20T 'DBID =' #DDD-DBID '- Server Name =' #P-SERVER /
01T '-'(79) /
01T 'Modify Command' 39T 'Display User Queue Element (UQE) ' /
01T 'As Sent ' 39T 'Jobname' 49T 'TID'
59T 'Type' 66T 'Last activity' /
01T '-'(79)
END-IF
*
AT END OF DATA
MOVE '/*EOF' TO #MOD
WRITE WORK FILE 2 #MOD
WRITE
01T #MOD 39T 'end of command stream'
END-ENDDATA
*
IF #DDD-UQE-A2 = '00'
COMPRESS #P-SERVER ',' 'STOPU=X''' #DDD-UQE '''''' INTO #MOD-REST
LEAVING NO SPACE
WRITE WORK FILE 2 #MOD
WRITE
01T #MOD 39T #DDD-JOB 49T #DDD-TID 61T #DDD-TYPE 69T #DDD-ACTIV
END-IF
END-WORK
*
END
Job Control for MVS
//JOBNAME JOB ...... //* ---------------------------------------- //* --- Determine all User Queue Elements //* ---------------------------------------- //OPERCOM EXEC ADADBS //DDKARTE DD * ADADBS OPERCOM DUQA //DDDRUCK DD DSN=&&DDDRUCK,DISP=(,PASS),SPACE=(TRK,(5,5),RLSE) //* ---------------------------------------- //* --- Submit STOPU (PURGE) Modify Commands //* ---------------------------------------- //NATBATCH EXEC NATBATCH,COND=(O,NE) //CMSYNIN DD DISP=SHR,DSN=Zxxxxx.DBA.CNTL(CMSYNIN) // DD * PURGEUQE //CMWKF01 DD DSN=&&DDDRUCK,DISP=(OLD,DELETE,DELETE) //CMWKF02 DD BUFNO=16,BLKSIZE=0,SYSOUT=(X,INTRDR) INTERNAL READER //CMPRINT DD SYSOUT=*,BLKSIZE=0,BUFNO=30 //CMPRINT Output
-------------------------------------------------------------------------------
Lib: LBXXXXXX Purged User Queue Elements Pgm: PURGEUQE
2004-06-08 Prevents ADABAS Utility Response Code 48 12:24:55.2
DBID = 200 - Server Name = ADATEST
-------------------------------------------------------------------------------
Modify Command Display User Queue Element (UQE)
As Sent Jobname TID Type Last activity
-------------------------------------------------------------------------------
/*$VS,'F ADATEST,STOPU=X'00000374'' XXXXXXUQ ...~. U 0
/*$VS,'F ADATEST,STOPU=X'0000033F'' COMTEST XXXBKR 1 E 7239
/*$VS,'F ADATEST,STOPU=X'00000363'' COMTEST XXXBKR 2 E 6479
/*$VS,'F ADATEST,STOPU=X'00000329'' COMTEST XXXDAP 1 E 14076
/*$VS,'F ADATEST,STOPU=X'0000002D'' COMTEST XXXD9L 1 E 95532
/*$VS,'F ADATEST,STOPU=X'0000026D'' COMTEST XXXLXU 1 E 72340
/*$VS,'F ADATEST,STOPU=X'00000373'' COMTEST XXXDWS 1 E 231
/*EOF end of command stream
ADABAS Tips, Tricks, Techniques -- Overview