开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

Re: Whats the best way to transfer dasd from z/os to Hercules


 

I looked at the code in CCKDDU64 and just prior to every branch to the user abend 99 code, there is a #MSG message macro that will print a single line explaining why the program is abending.? This message should be written to the SYSPRINT DD dataset.? Unfortunately, whomever decided to write this code chose to use PUT-Locate for the writes to SYSPRINT.?? This is a problem in the abend case because the line won't be written until either (a) another PUT is issued (which there is not), or (B), a CLOSE macro is issued against the SYSPRINT DCB before the ABEND macro.
?
If the program did not force an abend, then the message would be written properly.? This message could provide a clue on why it is failing for a 3390-54.?
?
The easiest solution is to add a CLOSE (prdcb) statement just prior to the ABEND 99,DUMP macro, so it would go from this:
?
abend?? ABEND 99,DUMP
?
to this:
?
abend?? EQU *
???????????? CLOSE (prdcb)
???????????? ABEND 99,DUMP
?
The CLOSE macro will alter registers 14-1 before the dump is taken, which isnt ideal in most cases, but right now the priority is to get the error message text.? After that, one could examine the older U0099 dump without the CLOSE.? Alternately, the message buffer should be in the dumps you already have.? But finding it means following a trail of control blocks and it wont be easy.
?
Longer term, the PUT-Locate method and logic for handling SYSPRINT should probably changed to use PUT-Move (MACRF=PM) and this lack-of-message-on-abend issue will go away. Even better, just use a WTO macro to display it on the console and job log.
?
When I last used CCKDDUMP in approximately 2014, I used it against a 3390-54 volume, but that volume was not full and the resulting cckd dasd image was a little over 3 GB in size.? CCKDDU64 did not exist at the time.? However, in order to get CCKDDUMP to work at all, I had to modify the SYSUT2 DCB in the code to add a DCBE macro, and the DCBE needed to specify BLOCKTOKENSIZE=LARGE.?? However, I see now that in the current version of CCKDDUMP and CCKDDU64, this DCBE parameter is now coded in the source.
?
Regards,
Bob

Join [email protected] to automatically receive all group messages.