Error while reading PS File: "I/O error reading data"



TSO Programming, ISPF, SDF, SDSF and PDF, FTP, TCP/IP Concepts, SNA & SNA/IP etc...

Error while reading PS File: "I/O error reading data"

Postby rahulkrddd » Tue Jul 31, 2018 5:23 pm

Dear All,
Good day!

I'm not able to access a PDS file which i was able to access earlier. It's very very important to get this recovered. I'm getting below error while accessing all the PDS members.
I/O error reading data

The characteristics of the member is given below-
                                           Directory flag byte    
 Member name  . . . . . . . . : FILE1       Bit 0  : 0  SCLM      
 Concatenation number . . . . : 1           Bit 1  : 0            
 Version . Modification . . . : 01.03       Bit 2  : 0  Ext Stats  
 Create Date  . . . . . . . . : 2015/01/31  Bit 3  : 0            
 Modification Date  . . . . . : 2018/07/31  Bit 4  : 0            
 Modification Time  . . . . . : 04:17:38    Bit 5  : 0            
 Userid that Created/Modified : RAHULG      Bit 6  : 0            
                                            Bit 7  : 0            
                                                                   
 Line counts : max values are 65535         Extended line counts  
 Current  : 9                               Current  :            
 Initial  : 2                               Initial  :            
 Modified : 7                               Modified :            


Please help me in resolving the issue.
rahulkrddd
 
Posts: 9
Joined: Sat Jul 28, 2018 3:31 pm
Has thanked: 1 time
Been thanked: 0 time

Re: Error while reading PS File: "I/O error reading data"

Postby willy jensen » Tue Jul 31, 2018 7:55 pm

how are you trying to read the members?
can you read some members?
what are the DCB values? as expected?
any messages in the syslog?
willy jensen
 
Posts: 467
Joined: Thu Mar 10, 2016 5:03 pm
Has thanked: 0 time
Been thanked: 70 times

Re: Error while reading PS File: "I/O error reading data"

Postby steve-myers » Tue Jul 31, 2018 8:15 pm

"I/O Error" means the data cannot be read for some reason. It means what it says. In practice the member cannot be recovered.

Now then, you appear to have a partitioned data set. There are four reasons you can get an I/O error reading a member.
  1. There is some sort of problem with the physical media. In these days this is very unlikely. That's the good news.
  2. Part of a directory entry is the the disk address of the first record of the member. Though it's unlikely, this address can be corrupted in the directory entry. In my time I've written a number of programs that read partitioned data sets directly. When I've encountered I/O errors the reason has always been I used this address incorrectly for some reason. When I've corrected this problem the I/O error disappeared. It's unlikely this is the problem you are having as this error appears to be coming from ISPF, and we can believe this is not an error in ISPF. The directory data you did print suggests this is the problem since the extended stats bit is on, but the extended line counts have not been filled in.
  3. As Mr. Jensen suggests, somehow the DCB attributes (RECFM, LRECL and BLKSIZE) for the data set (NOT file) have been corrupted in the data set label. Use ISPF facilities or possibly other facilities to display these attributes. If they are incorrect fix them.
  4. Somehow the member data on disk has been corrupted. It's too late to determine how this happened, but it also means the data cannot be recovered in place. This is why you backup data.
You need more information as to the nature of the I/O error. Try this batch job.
//        EXEC PGM=IEBGENER
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  DISP=SHR,DSN=your-data-set(your-member)
//SYSUT2   DD  SYSOUT=*
//SYSIN    DD  DUMMY
If you are lucky IEBGENER will print information about the error in the data set specified by the DD statement with DD name SYSPRINT. Reproduce the significant part of this message here and possibly we can help you.

Your support structure is a more appropriate place to go for assistance with this problem than these forums. Use this resource.
steve-myers
Global moderator
 
Posts: 2105
Joined: Thu Jun 03, 2010 6:21 pm
Has thanked: 4 times
Been thanked: 243 times

Re: Error while reading PS File: "I/O error reading data"

Postby Pedro » Wed Aug 01, 2018 7:18 am

I am confused by:
... accessing all the PDS members.

... characteristics of the member...

Are you having problems with an individual member? Or every member of the data set?

How are you 'accessing' the data set?
Pedro Vera
User avatar
Pedro
 
Posts: 686
Joined: Thu Jul 31, 2008 9:59 pm
Location: Silicon Valley
Has thanked: 0 time
Been thanked: 53 times

Re: Error while reading PS File: "I/O error reading data"

Postby steve-myers » Wed Aug 01, 2018 11:53 am

Pedro wrote:I am confused by:
... accessing all the PDS members.

... characteristics of the member...

Are you having problems with an individual member? Or every member of the data set?

How are you 'accessing' the data set?

Unfortunately the topic starter does not say very much. I, too, would like to know if this refers to the one member or more than one member.

However -
...I'm getting below error while accessing all the PDS members.
I/O error reading data ...
Now this may be good news for rahulrkdd. Since there is an apparently intact directory entry, it implies the directory has not been destroyed. It does imply the DCB attributes for the data set have been corrupted. Rahulrkdd needs to confirm this ASAP. Fortunately this is relatively easy to correct, or at least store DCB attributes that will allow rahulrkdd to read the members in the data set. The bad news for rahulrkdd is he or she appears to be a neophyte with little or no understanding of z/OS. We will have to hold his or her hand very carefully through through this.

First, rahulrkdd will have to tell us the exact RECFM, LRECL and BLKSIZE currently specified for the data set. This will tell us what to do next.
steve-myers
Global moderator
 
Posts: 2105
Joined: Thu Jun 03, 2010 6:21 pm
Has thanked: 4 times
Been thanked: 243 times

Re: Error while reading PS File: "I/O error reading data"

Postby rahulkrddd » Wed Aug 01, 2018 3:26 pm

Dear All,
Good day!
Thanks for your response.

Dear Steve,
I'm not able access any of the PDS members (Sorry if the subject says otherwise it's about PDS DS members). Now I want to clarify that Dataset RAHULG.IMP.PDS1 is a PDS which contains multiple members. When I put 'S' in front of the the PDS i can see below characteristics-


Data Set Name . . . . : RAHULG.IMP.PDS1                                
                                                                       
General Data                           Current Allocation              
 Management class . . : DEFPDSPR        Allocated blocks  . : 75        
 Storage class  . . . : SINGLEV         Allocated extents . : 1        
  Volume serial . . . : SV3D1E                                          
  Device type . . . . : 3390                                            
 Data class . . . . . : NONSTD                                          
  Organization  . . . : PO             Current Utilization              
  Record format . . . : FA              Used blocks . . . . : 245        
  Record length . . . : 121             Used extents  . . . : 1        
  Block size  . . . . : 121                                            
  1st extent blocks . : 75                                              
  Secondary blocks  . : 19             Dates                            
  Data set name type  : PDS             Creation date . . . : 2015/01/31
                                        Referenced date . . : 2018/07/31
                                        Expiration date . . : ***None***


I can view the members by clicking 'V' (view) in front of PDS member. I can see all my members there. But when I try to View/Edit the member I get an error 'I/O error reading data' and below are the characteristics of member (Which I got by typing 'S' in front of members) -

                                          Directory flag byte    
 Member name  . . . . . . . . : FILE1       Bit 0  : 0  SCLM      
 Concatenation number . . . . : 1           Bit 1  : 0            
 Version . Modification . . . : 01.03       Bit 2  : 0  Ext Stats  
 Create Date  . . . . . . . . : 2015/01/31  Bit 3  : 0            
 Modification Date  . . . . . : 2018/07/31  Bit 4  : 0            
 Modification Time  . . . . . : 04:17:38    Bit 5  : 0            
 Userid that Created/Modified : RAHULG      Bit 6  : 0            
                                            Bit 7  : 0            
                                                                   
 Line counts : max values are 65535         Extended line counts  
 Current  : 9                               Current  :            
 Initial  : 2                               Initial  :            
 Modified : 7                               Modified :  


I want to access all the members of the PDS RAHULG.IMP.PDS1 which contains very important JCLs of daily use. Can you please tell me how should I access?
Hope this helps...
rahulkrddd
 
Posts: 9
Joined: Sat Jul 28, 2018 3:31 pm
Has thanked: 1 time
Been thanked: 0 time

Re: Error while reading PS File: "I/O error reading data"

Postby NicC » Wed Aug 01, 2018 4:53 pm

You have not provided answers to some of the questions asked previously. In particular: are the DCB characteristics what you expect? I would say "no" because you say there is JCL in the PDS and JCL has an LRECL of 80 whereas your PDS is currently showing 121. I guess you have run a job which has written its output to the PDS and that output had an LRECL of 121 (so it was probably a utility).
If this is the case then you need to do this (from another forum):
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)

Nowadays I would use a blocksize of 0.
The problem I have is that people can explain things quickly but I can only comprehend slowly.
Regards
Nic
NicC
Global moderator
 
Posts: 3025
Joined: Sun Jul 04, 2010 12:13 am
Location: Pushing up the daisies (almost)
Has thanked: 4 times
Been thanked: 136 times

Re: Error while reading PS File: "I/O error reading data"

Postby phunsoft » Wed Aug 01, 2018 6:02 pm

NicC wrote://SYSUT2 dd disp=MOD,DSN=CORRUPT.PDS(XXX),DCB=(LRECL=80,BLKSIZE=32000)

Nowadays I would use a blocksize of 0.


Not in this case. The system would use half track blocking, i.e. BLKSIZE=27920. You would still get I/O errors if the PDS originally had a block size larger than that. (I can't remember if reading smaller blocks than BLKSIZE is a problem or not. Would have to test.)

Also, if the PDS originally had a unknown block size larger that 27920, you better specify the max 32720 instead of 32000.

If you are allowed to print the data set using DFdss with the PRINT option, do so. (Any other tool that prints the physical tracks will do as well.) You can then look at the real block sizes as they exist on the disk. Note that the first nnn blocks will be the 256 byte directory blocks. Skip them and start with the blocks that follow. NOTE that this will only work is the data set really is a PDS, but not if it is a PDS/E.
Peter
phunsoft
 
Posts: 14
Joined: Thu Jul 26, 2018 10:35 am
Has thanked: 0 time
Been thanked: 2 times

Re: Error while reading PS File: "I/O error reading data"

Postby Robert Sample » Wed Aug 01, 2018 6:09 pm

I can't remember if reading smaller blocks than BLKSIZE is a problem or not.
This is never a problem since the system has to be able to handle the last block of the data set, which could have as little as 1 record in the block. So short blocks are inherently handled by the operating system.
Robert Sample
Global moderator
 
Posts: 3720
Joined: Sat Dec 19, 2009 8:32 pm
Location: Dubuque, Iowa, USA
Has thanked: 1 time
Been thanked: 279 times

Re: Error while reading PS File: "I/O error reading data"

Postby rahulkrddd » Wed Aug 01, 2018 6:50 pm

Dear NicC,
Good day!

Yes, you are 100% correct. DCB parameter should be of LRECL=80 however it's being shown as 121. Now as per your advise I tried to run IEBGENER Utility on the selected PDS
as per below code-

//EXEC1 EXEC PGM=IEBGENER                          
//SYSIN    DD   DUMMY                              
//SYSPRINT DD   SYSOUT=*                            
//SYSUT1   DD   *                                  
TEST                                                
/*                                                  
//SYSUT2   DD DISP=MOD,DSN=RAHULG.IMP.PDS1(TEST),  
//            DCB=(LRECL=80,BLKSIZE=32000)    


However I got MAXCC=12 with SYSPRINT message IEB311I (DCB Conflicting). Please see below-

********************************* TOP OF DATA **********************************
DATA SET UTILITY - GENERATE                                                    
IEB311I CONFLICTING DCB PARAMETERS                                              
******************************** BOTTOM OF DATA ********************************


In addition to this I also tried to run the job with LRECL=121 and BLKSIZE=12100, In this case I got *SB14 error.

Kindly advise.
rahulkrddd
 
Posts: 9
Joined: Sat Jul 28, 2018 3:31 pm
Has thanked: 1 time
Been thanked: 0 time

Next

Return to TSO & ISPF

 


  • Related topics
    Replies
    Views
    Last post