IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Partition dataset got corrupted and is giving I/O error


IBM Mainframe Forums -> TSO/ISPF
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
kgumraj

Active User


Joined: 01 May 2006
Posts: 151
Location: Hyderabad

PostPosted: Mon Mar 26, 2007 2:19 pm
Reply with quote

Hi,
One of our partition dataset got corrupted and is giving I/O error. The reason being the Directory block information is verified wrong. Now this partition dataset is been treated as sequential file.

How to repair this error?

Is there anything like VERIFY of IDCAMS for PO
OR
Is it possible to copy the individual members in separate sequential file?
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Mon Mar 26, 2007 2:51 pm
Reply with quote

The first question would be ..... what is your backup strategy ?
Back to top
View user's profile Send private message
kgumraj

Active User


Joined: 01 May 2006
Posts: 151
Location: Hyderabad

PostPosted: Mon Mar 26, 2007 3:09 pm
Reply with quote

Hi,

expat wrote:
The first question would be ..... what is your backup strategy ?


I posted early, how to recover a dataset that got deleted, and from the response. I called data center people and they retrived that for us. But the problem is I am not able to browse one dataset.
other dataset is working fine.

Hope you got it.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Mon Mar 26, 2007 3:15 pm
Reply with quote

If the directory has been corrupted, then the dataset will need to be recovered from the latest backup that was taken before the corruption occurred.
Back to top
View user's profile Send private message
kgumraj

Active User


Joined: 01 May 2006
Posts: 151
Location: Hyderabad

PostPosted: Mon Mar 26, 2007 3:39 pm
Reply with quote

Hi,

expat wrote:
If the directory has been corrupted, then the dataset will need to be recovered from the latest backup that was taken before the corruption occurred.


if the Backup itself is corrupted, how can we repair that ?
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Mon Mar 26, 2007 3:53 pm
Reply with quote

That depends on when the dataset became corrupted, and how long or soon after it was noticed.

If you do not have any valid backups, then you can not restore it.

I am not sure if you can add a dummy member by IEBGENER and repair the directory, might be worth a try.

Code:

//SYSUT1   DD *
DUMMY RECORD
/*
//SYSUT2   DD DSN=your.pds(DUMMY),DISP=OLD,
//          RECFM=FB,LRECL=80,SPACE=(pri,sec,dirblks)


I will try and find out if this is possible. It somehow sticks in my mind that it might work. Let me know if you try it, and if I get some time I'll take a look and see what I can find out.
Back to top
View user's profile Send private message
GlobalGyan

New User


Joined: 31 Jan 2006
Posts: 28

PostPosted: Mon Mar 26, 2007 4:23 pm
Reply with quote

How did you manage to get your PDS 'corrupted'? :=)

-GG
Back to top
View user's profile Send private message
mmwife

Super Moderator


Joined: 30 May 2003
Posts: 1592

PostPosted: Tue Mar 27, 2007 6:23 am
Reply with quote

Is this a source lib PDS?
Back to top
View user's profile Send private message
kgumraj

Active User


Joined: 01 May 2006
Posts: 151
Location: Hyderabad

PostPosted: Tue Mar 27, 2007 11:26 am
Reply with quote

Hi,

mmwife wrote:
Is this a source lib PDS?


Yes, it has all the programs in it.
Back to top
View user's profile Send private message
Phrzby Phil

Senior Member


Joined: 31 Oct 2006
Posts: 1042
Location: Richmond, Virginia

PostPosted: Tue Mar 27, 2007 5:33 pm
Reply with quote

I have had a PDS corrupted by writing to it with the wrong LRECL. I could no longer access any members. Bummer.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Tue Mar 27, 2007 5:56 pm
Reply with quote

That situation would almost certainly be corrected by the code I posted earlier.
Back to top
View user's profile Send private message
kgumraj

Active User


Joined: 01 May 2006
Posts: 151
Location: Hyderabad

PostPosted: Wed Mar 28, 2007 9:35 am
Reply with quote

Hi,

expat wrote:
That situation would almost certainly be corrected by the code I posted earlier.


Your JCL will solve the error, but empty the file icon_sad.gif
Back to top
View user's profile Send private message
murmohk1

Senior Member


Joined: 29 Jun 2006
Posts: 1436
Location: Bangalore,India

PostPosted: Wed Mar 28, 2007 10:36 am
Reply with quote

Kiran,

Quote:
but empty the file


What do you mean by that? It is a file or PDS you are talking about.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Wed Mar 28, 2007 12:43 pm
Reply with quote

Why will it empty the file ???

All it is doing is writing a new member to the PDS and resetting the RECFM & LRECL parameters. Done it a few times before, and all OK.

You can omit the space parameters for a RECFM / LRECL change.
Back to top
View user's profile Send private message
mmwife

Super Moderator


Joined: 30 May 2003
Posts: 1592

PostPosted: Thu Mar 29, 2007 5:44 am
Reply with quote

Expat is right. This happens fairly often. His solution won't won't empty the file. It just creates a dummy member in the PDS and in so doing, restores the orig lrecl/blksize (assuming you know what it was).

PS Don't use the space param. If you don't know the DCB info, Code:

DCB=(prod_source_lib_dsn) or is it DCB=(*.prod_source_lib_dsn) ? where,
prod_source_lib_dsn is in std DSN format.
Back to top
View user's profile Send private message
Neil Culleton

New User


Joined: 16 Jul 2008
Posts: 1
Location: Australia

PostPosted: Wed Jul 16, 2008 3:45 pm
Reply with quote

For the next person who <blush> corrupts a dataset by writing to it using a wrong LRECL, the above solution works.

In my case i needed more DCB parms:
===================================
//COPY1 EXEC PGM=IEBGENER
//SYSUT1 DD *
DUMMY RECORD
/*
//SYSUT2 DD DISP=OLD,DSN=HLQ.XXX.YYY(DUMMY),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920)
===================================

Using just LRECL or just BLKSIZE was giving:
'IEB311I CONFLICTING DCB PARAMETERS' on the IEBGENER.

Cheers,
Neil.
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2546
Location: Silicon Valley

PostPosted: Wed Jul 16, 2008 11:01 pm
Reply with quote

Quote:
if the Backup itself is corrupted, how can we repair that ?


Some sites keep multiple generations of a dataset. For example, HSM has a GEN() parameter in the HRECOVER command, so you can recover not the most recent generation, but an older version.
Back to top
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1702
Location: Australia

PostPosted: Thu Jul 17, 2008 10:27 am
Reply with quote

Hi,

I'm surprised to hear how often PDS become corrupted, surely it warrants investigating the problem.

I remember having the occasional one and found that utilities like IEBGENER, IDCAMS, SORT and even REXX's causing problems, I found by creating temporary PDS's and using IEBCOPY to copy the member to the target library, problems seemed to disappear.

I don't remember corruptions being caused by IEBCOPY.

Now that's not to say I don't use these utilities to write directly into the target libraries, but I try to avoid it.


Gerry
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Thu Jul 17, 2008 7:36 pm
Reply with quote

Hi Gerry,

Quote:
I'm surprised to hear how often PDS become corrupted,
From what i've noticed (at least on this forum) it is often caused when people (who do not yet understand how things "work") use "their own" jcl to compile/link instead of the "standard" compile/link for their system.
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Thu Jul 17, 2008 7:55 pm
Reply with quote

or people writting rexx scripts to modify and don't bother creating and using a test (copy) pds first.
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2546
Location: Silicon Valley

PostPosted: Thu Jul 17, 2008 9:13 pm
Reply with quote

Instead of PDSs, I think people should use PDSEs. Functionality is the same. But the underlying organization is different. I think you can you avoid many of the problems that you might have with a PDS.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> TSO/ISPF

 


Similar Topics
Topic Forum Replies
No new posts Error to read log with rexx CLIST & REXX 11
No new posts Error when install DB2 DB2 2
No new posts FINDREP - Only first record from give... DFSORT/ICETOOL 3
No new posts CLIST - Virtual storage allocation error CLIST & REXX 5
No new posts Map Vols and Problem Dataset All Other Mainframe Topics 2
Search our Forums:

Back to Top