
Ved Renden 31 2870 Dyssegaard Tel. +45 23 34 54 43
| 
MainframeSupports tip uge 53/2015:
Nogle få gange løber man ind i udfordringer, som ikke lader sig så let løse, og hvor man godt kan leve
med at problemet ikke bliver løst, fordi det kun opstår i helt specielle situationer. Hvis du er løbet ind
i ISPF fejlen "ISPT036 Table in use ... ENQUEUE failed" i ISPF batch, så er jeg rimelig sikker på, at du
ved, hvad jeg mener. Min gode ven og kollega Johnny Mossin satte sig for at løse problemet endegyldigt, og
det lykkedes faktisk. Selv om det er en sjælden forekommende problemstilling, så skal du da ikke snydes for
løsningen, så du ikke behøver kæmpe i timevis med at løse problemet.
"ISPT036 Table in use ... ENQUEUE failed" kan opstå i flere forskellige sammenhænge i ISPF batch, og den
mest udbredte løsning er, at allokere et temporært ISPPROF dataset. Kun i meget få tilfælde er dette ikke
helt nok, for eksempel hvis du kører flere samtidige ISPF batchjobs. Så er det, at du kan gribe til følgende
løsning:
//IEBCOPY EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=SYS1.SISPTENU,DISP=SHR
//SYSUT2 DD DSN=&ISPPROF,DISP=(NEW,PASS),SPACE=(TRK,(1,1,1)),
// UNIT=VIO,LRECL=80,RECFM=FB
//SYSIN DD *
COPY INDD=SYSUT1,OUTDD=SYSUT2
S M=ISPSPROF
S M=ISPPROF
/*
//RUNISPF EXEC PGM=IKJEFT01,DYNAMNBR=200,PARM='%RUNISPF'
//SYSEXEC DD DISP=SHR,DSN=MY.REXX.LIBRARY
//ISPSLIB DD DISP=SHR,DSN=MY.REXX.SKELETON
//ISPFILE DD SYSOUT=*,LRECL=80,RECFM=FB
//SYSTSIN DD DUMMY
//SYSTSPRT DD SYSOUT=*
//ISPMLIB DD DSN=SYS1.SISPMENU,DISP=SHR
//ISPPLIB DD DSN=SYS1.SISPPENU,DISP=SHR
//ISPTLIB DD DSN=SYS1.SISPTENU,DISP=SHR
//ISPTABL DD DSN=&ISPTABL,DISP=(NEW,PASS),SPACE=(TRK,(1,1,1)),
// UNIT=VIO,LRECL=80,RECFM=FB
//ISPPROF DD DSN=&ISPPROF,DISP=(OLD,PASS)
//ISPLOG DD SYSOUT=*,LRECL=120,RECFM=FB
Normalt vil ISPPROF allokeringen i RUNISPF steppet være magen til ISPTABL allokeringen i ovenstående
eksempel, og det plejer at være tilstrækkeligt til at slippe af med ISPT036 fejlen. Men hvis du vil være
helt sikker på ikke at støde ind i fejlen på ISPPROF, så skal du preallokere ISPPROF datasettet som i
ovenstående IEBCOPY step. Og derudover skal du kopiere de to angivne members fra et andet ISPPROF dataset
over i det temporære ISPPROF dataset. Jeg har her benyttet SISPTENU datasettet fra ISPF installationsbiblioteket
Det er ikke sikkert, at det hedder SYS1.SISPTENU på din installation, så her må du lige få fat i ISPF
systemprogrammøren for at få at vide, hvad det hedder, hvis du ikke vil benytte dit eget ISPPROF dataset.
Forrige danske tip
Last tip in english
Tip oversigten
|