MainframeSupports
tip uge 18/1999:

Beskrivelse af JCL
 
 
//LINK     EXEC PGM=IEWL, 
//       PARM='NOCALL,AMODE=x,RMODE=y,REUS=z' 
//SYSPRINT DD SYSOUT=* 
//OBJ      DD DSN=object.library,DISP=SHR 
//LOADLIB  DD DSN=loadlib.med.gammel.modul,DISP=SHR 
//SYSLMOD  DD DSN=loadlib.til.nyt.modul,DISP=SHR 
//SYSLIN   DD * 
 ENTRY   PGMO1 
 INCLUDE OBJ(PGMU1) 
 INCLUDE LOADLIB(LOAD001) 
 ORDER   PGMO1,PGMU1,PGMU2 
 NAME    LOAD001(R) 
/*
 

ENTRY PGMO1:
Program i loadmodulet der skal have kontrollen når programmet refereres ved loadmodulnavnet. Hvis du ikke specificerer et ENTRY statement bliver første byte i det første program i loadmodulet entrypoint, og det er ikke sikkert det er det du ønsker.

Hvis du ikke ved hvad der er "overprogram" kan du bruge AMBLIST til at finde ud af det.

INCLUDE OBJ(PGMU1):
OBJ er dd-navnet hvorfra dette modul skal hentes. Jeg har kaldt det OBJ, men det behøver ikke at være et object modul. Det kan ligeså godt være et helt loadmodul.

I sidstnævnte tilfælde skal du passe på ikke at få for meget med. Det kan klares med et REPLACE kort. Et REPLACE kort med kun en parameter betyder nemlig DELETE, bare for at gøre det nemmere!

"Formeget med" hentyder til, hvis PGMU1 kalder PGMU2, vil linkningen af PGMU1 indsætte PGMU2 i loadmodulet PGMU1, og når vi linker PGMU1 ind i LOAD001, får vi den forkerte version af PGMU2 med. Det gør sig også gældende for de residente dele af runtime environmentet til eksempelvis COBOL.

LINK parameter:
NOCALL fortæller linkage editor, at den ikke automatisk skal lede efter programmer der kaldes og som ikke er eksplicit medtaget.
 

Tilbage til tip