Joined: 24 Oct 2005 Posts: 109 Topics: 36 Location: India
Posted: Thu Dec 22, 2005 5:42 am Post subject: I/O Error during read of a PDS !!
Hi Gurus,
I have run into an issue which is never heard of by me. I actually had coded a REXX code to run SDSF. Say the rexx was coded in data set 'AAAA.BBBB.CCCC(MYREXX)' and within the rexx I had coded "Alloc DD(ISFOUT) DSN('AAAA.BBBB.CCCC(SDSFOU1)') Shr Reuse". When I ran the REXX thru TSO, my data set which was of LRECL 80 FB got converted into FBA 133. And now when I came outside the data set and tried again accessing the data set it goes in the member list, but when I tried browsing or viewing or editing the members, it shows "I/O error reading data" on the top right of the screen like the one below.
Menu Functions Confirm Utilities Help
------------------------------------------------------------------------------
VIEW AOAJI.TEST.REXX I/O error reading data
Command ===> Scroll ===> CSR
Name Prompt Size Created Changed ID
V AVDTST 65 2005/12/12 2005/12/12 10:12:16 AOAJI
_________ DAJWRK 111 2005/11/21 2005/12/12 10:11:23 AOAJI
_________ OPCAJCL 10 2005/11/21 2005/11/25 13:39:04 AOAJI
_________ OPCRPT 232 2005/11/21 2005/12/14 11:54:44 AOAJI
_________ SDSFIN 11 2005/12/12 2005/12/22 18:01:16 AOAJI
_________ SDSFOUT 17 2005/12/12 2005/12/22 18:05:44 AOAJI
I cannot even HRECOVER as it shows
"ARC1007I RECOVER REQUEST 00179459 SENT TO DFSMSHSM"
"ARC1001I AOAJI.TEST.REXX RECOVER FAILED, RC=0028, REAS=0000
ARC1128I BACKUP/DUMP COPY DOES NOT EXIST"
which is fine as there is no backup copy on ny tape.
Is it possible I would be able to retrieve back the stuffs I have lost. As i have a production move after 1 week and I have 4 REXXs for the production move. If I am not able to get it back, I am gone.
Pls help me.
Thanks,
Amit Joshi. _________________ I did not fail; I have found 10,000 ways that would not work - Albert Einstein.
If you are able to successfully download your REXX member into the PS, then you can save it into a different PDS. I hope this works. Pls try and tell us what happens.
Joined: 24 Oct 2005 Posts: 109 Topics: 36 Location: India
Posted: Thu Dec 22, 2005 7:34 am Post subject:
Guys actually the problem is my PDS is now converted into LRECL of 133 and RECFM of FBA and BLKSIZE of 133. So even if i tried IEBCOPY it does not work. I have tried IEBCOPY in all possible ways but not able to recover any member of my PDS.
However, the member which I had allocated to ISFOUT in my rexx code is able to open in that PDS. All other members are not able to be read giving I/O error and when I press F1 on that screen(ISRUDSM) it shows "I/O error occurred reading the edit data. Check data set block sizes."
Now I do not know how to get my stuffs out of this PDS as SDSF has changed the LRECL and BLKSIZE of my original data set.
Pls help.
Regards,
- Amit. _________________ I did not fail; I have found 10,000 ways that would not work - Albert Einstein.
create a new member in the corrupted pds using IEBGENER specifying the correct DCB and DISP=MOD on the DD card
eg
//SYSUT2 dd disp=MOD,DSN=CORRUPT.PDS(XXX),DCB=(LRECL=80,BLKSIZE=32000)
Joined: 03 Jan 2003 Posts: 1014 Topics: 13 Location: Atlantis
Posted: Thu Dec 22, 2005 11:31 pm Post subject:
That is one seemingly very obscure trick that, unfortunately, we all need to use at least once in our careers. Its been so long since I had to do it I forgot the detail. Good post Nevilh.
The reason this happens is that, as you've seen, OPEN can use any DCB attributes it wants to for LRECL, BLKSIZE, and other settings, and when the data set is closed, the DSCB (the descriptor in the volume table of contents, VTOC) is updated. PDSes are especially strange because the data set has an LRECL, but if you were to use IEBGENER against the PDS as a whole (no member name), you'd read the directory which is always F 256. Changing the LRECL of a PDS does not change the structure of the directory so you can still see the member list. But it does change the way the data set is read, so if your blocksize changes, or if the new LRECL doesn't match the original block size, you get I/O errors.
Strangely, understanding how to use a PDS and what not to do with one is one of the hardest things for people to learn about MVS.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum