I have seen a similar post on this topic which implied that you don't need to know the PCB address list, but I need to. Does anyone know how you can obtain the PCB address list under CICS when using EXEC DLI. This is for a conversion from call level DL/1 (ASMTDLI etc) to command level. An ASMTDLI PCB (schedule) call passes back the addresses of both the PCB list and the UIB. I have scanned the IBM docs and can find no equivalent for command-level DLI
Thanks for the reference but this is just a CALL level PSB schedule, and this is what I'm trying to get away from (though it's starting to look as though I'm stuck with it). The command level schedule "EXEC DLI SCHD" gives you nothing back in the way of data area pointers, and these are what I need.
For anyone interested, I've finally found the answer to this and discovered some peculiarities of DL/1 also.
If you issue a call-level schedule and then try to do a cmd-level GU (for example), IMS returns a "not scheduled" status. If after scheduling with call level you try an EXEC DLI SCHD however, you get abend DHTH which says PSB is already scheduled. Bizarre behaviour.
It seems there are two ways to get the PCB Address List. The first (which I haven't tried) is to write a CICS Global User Exit program and switch on XDLIPOST. By far the easier method is to write a small Assembler routine that does the following:
L R1,AFCSA-DFHAFCB(,R1) .ADDRESS THE CSA
L R1,CSACDTA .GET CURR DISPATCHED TASK
L R1,TCADLIBA .GET DL/1 UIB ADDRESS
MVC EISPCBAL,UIBPCBAL .SAVE PCB ADDRESS LIST