Det er næsten 11 år siden, at jeg skrev et tip om en ISPF utility kaldet ISRDDN. Denne utility er for længst blevet integreret i ISPF og startes officielt med ISPF-kommandoen DDLIST. Heldigvis virker TSO ISRDDN stadigvæk, så de andre tip, jeg har skrevet om ISRDDN virker fortsat. Dog er nogle links holdt op med at virke, så brug dette i stedet for.
Interessant er, at ISRDDN kan vise såkaldte enqueues med kommandoerne ENQ og CON. En enqueue er det samme som en semafor. Kommandoen ENQ viser alle de enqueues på dataset, som din TSO session er involveret i. Kommandoen CON viser alle de enqueues, som et eller flere address spaces venter på. Her er det godt at vide, at DB2 ikke bruger enqueues til at styre sine låse på, men har sin egen implementering. Det samme gælder i øvrigt for CICS (og IMS for dens sags skyld). Med kommandoen ALL kan du se alle enqueues på den MVS, du er logget på, men det er en rigtig lang liste. Du kommer tilbage til default med kommandoen RESET. Online hjælpen beskriver i øvrigt alt dette og mere til.
En enqueue er opdelt i en type (major name) og et navn (minor name). En enqueue kan være tilknyttet et eller flere address spaces (identificeret med navn). Den mest udbredte og kendte type af enqueues er SYSDSN, som der findes een af pr. allokeret dataset. I prefix felterne kan du skrive startbogstaverne på den eller de enqueues, du vil kigge på. Du kan også fjerne indholdet af et felt for at se alle enqueues vedrørende det pågældende prefix. De enqueues, som oprettes af MVS og MVS relaterede tasks har alle et major name, der starter med SYS. Da der er rigtig mange SYSDSN enqueues, er det godt at vide, at de fleste andre major names vedrørende MVS typisk starter med SYSZ. Øvrige typer af enqueues oprettes af forskellige program produkter. ISPF laver eksempelvis enqueues til at styre editering af members, kaldet SPFEDIT.
Der findes desværre ikke funktioner i COBOL, REXX eller PL/I til at vise eller styre enqueues med. Det kan kun gøres via ASSEMBLER. De fleste installationer har pakket visning og styring af enqueues ind i nogle ASSEMBLER moduler, som så kan kaldes fra et eller flere af de nævnte programmeringssprog. Desværre er det ofte tilfældet, at disse moduler er lavet for så længe siden, at der ikke længere er nogen, der ved hvad de hedder, eller hvor de er dokumenteret.