by Ed Goodman » Fri Jan 25, 2013 9:51 pm
The "DFS" tells me it's an IMS program. The U0102 tells me that IMS program is trying to do a restart, but is having troulbe matching up the log file with the expected format.
So... you are performing an XRST call, and the parm to that call is not blank, so the IMS system goes out to the IMSLOGR DD statement and starts trying to find the checkpoint given by the parm.
When I've done this, it's usually the wrong generation of the log file. I run a job and the IEFRDER (output log) gets cataloged as generation 1. It blows up and needs to restart, but I don't notice that. I run it a second time and it blows up with a U0047, U0041 or something that tells me I need to fix the databases, but it catalogs a new output log, generation 2, that is almost empty. I un-DUMMY the IMSLOGR DD, and put in the last checkpoint from the first run into the parm and resubmit.
The IMSLOGR is relative generation 0, which is now generation 2, but the REAL log is generation 1. So I get a U0102. I have to change the IMSLOGR generation to now be -2 ('cuz I just created generation 3) or hard code the generation G0001V00.
Another thing is that you change the layout of the checkpoint area between the abend and the restart. Don't do that, it give U0102.
Also, a bad set up of the XRST parms can put something besides spaces in the parm, and the program will try to restart on the first run, and since the IMSLOGR is usually DUMMY'd, it will get a U0102.
Don't delete generations of the log files from the top in order to get them to line up. The problem is that IMS keeps track of which generation was used and if you create a duplicate log name, restarts will start failing.