MainframeSupports
tip uge 16/2006:

Tilbage i uge 24/2003 beklagede jeg mig over, at der ikke findes en TSO kommando til at kalde programmer med, som virker på samme måde som EXEC PGM= i JCL gør. Mine beklagelser er blevet hørt, eller også havde jeg ikke læst ordentlig på lektien den gang.

TSO kommandoen CALL er blevet ændret, så man nu kan skrive TSO CALL *(MYPGM). Beskrivelsen af, hvad * betyder er ret kryptisk i manualen, men virkemåden er den ønskede. Prøv for eksempel TSO CALL *(IEFBR14). Nu vil du få eksekveret IEFBR14 (det sker der ikke ret meget ved) uden at du behøver at vide, at IEFBR14 findes i SYS1.LINKLIB. CALL *(MYPGM) bevirker altså, at TSO kigger efter MYPGM først i STEPLIB, derefter i JOBLIB og til sidst i LINKLIST'en på præcis samme måde som EXEC PGM= gør det. Desuden honorerer CALL *(MYPGM) også ISPLLIB og andre tasklibs allokeret under TSO.

Det er i øvrigt også godt at vide, at en TSO CALL altid eksekverer load-modulet fra disk. Den praktiske betydning er, at TSO CALL altid eksekverer den nyeste udgave af load-modulet, også selv om det første TSO CALL var til en tidligere udgave af load-modulet. Et dynamisk COBOL CALL vil eksempelvis altid eksekvere udgaven i storage og dermed ikke nødvendigvis den nyeste udgave. Det er samme problemstilling i CICS, hvor du er nødt til at lave en newcopy før du eksekverer den nyeste udgave. Det problem har man ikke altså ikke med TSO CALL.

Forrige danske tip        Last tip in english        Tip oversigten