Karl, Did you run IBM's IEBGENER and IEBCOPY, not replacement products?
I remember a very weird, similar problem we had many years ago with 3390 compatible hardware: intermittently we suffered from corrupted PDS members. After thorough tests, it appeared to be time dependent. If we waited an hour, there was no problem, but subsequent jobs in a short period gave the problem. Our hardware manufacturer finally recognized the problem, with the title 'return wrong record'. If the PDS was not in the 3990 cache, it was retrieved correctly from disk, if the PDS was in cache, a wrong record was returned, resulting in a corrupted PDS member. It is one reason I can think of why you have the problem and nobody else with apparent identical systems. Kees. -----Original Message----- From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of Karl Henn Sent: 20 March, 2015 14:03 To: [email protected] Subject: Intermittent, not consistently reproducible problems with PDSEs on z/OS V2R1 (incl. infrequent S0F4-20 RSN 1C0752EE ABENDs) Hello, The description of the following "problem" (if you prefer to call it such) sounds a little unusual, and the sample JCL looks - and is! - trivial. I still kindly ask the world to please read it, and maybe try it out. My primary goal is to make sure that I'm not simply just out of my mind. Ever since we're running z/OS V2R1, complaints about alleged problems with PDSEs were forwarded to me, sporadically. The error descriptions were fairly fuzzy, ranging from intermittent S0F4-20 RSN 1C0752EE ABENDs, problems with empty members, as well as incomplete copies of PDSEs with IEBCOPY CC 00. Since none of the problems were really consistently reproducible, I kind of just brushed away the issue for a while. The S0F4 ABENDs I could not ignore, though. The complaints didn’t stop, either. So, in order to narrow down a possible problem, I started experimenting - yielding a surprising result. Please take a look at the following JCL. Don’t laugh, but as simple as it may look, it *sometimes* does not work. //*------------------------------------------------------------------* //DELETE EXEC PGM=IDCAMS,COND=(0,NE) //SYSPRINT DD SYSOUT=* //SYSIN DD DATA DELETE <hlq>.TEST.PDSE#A1 NVSAM SCRATCH DELETE <hlq>.TEST.PDSE#A2 NVSAM SCRATCH SET MAXCC=00 /* //*------------------------------------------------------------------* //ALLOC EXEC PGM=IEFBR14,COND=(0,NE) //SYSPRINT DD SYSOUT=* //PDSE#A1 DD DISP=(NEW,CATLG),DSN=<hlq>.TEST.PDSE#A1, // RECFM=FB,LRECL=80,SPACE=(CYL,(1,1,1)),UNIT=SYSALLDA, // DSNTYPE=LIBRARY //PDSE#A2 DD DISP=(NEW,CATLG),DSN=<hlq>.TEST.PDSE#A2, // RECFM=FB,LRECL=80,SPACE=(CYL,(1,1,1)),UNIT=SYSALLDA, // DSNTYPE=LIBRARY //*------------------------------------------------------------------* //CRE#A1D EXEC PGM=IEBGENER,COND=(0,NE) //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT2 DD DISP=SHR,DSN=<hlq>.TEST.PDSE#A1(DUMMY) //SYSUT1 DD DSN=NULLFILE,RECFM=FB,LRECL=80,DSORG=PO //*------------------------------------------------------------------* //CRE#A1Z EXEC PGM=IEBGENER,COND=(0,NE) //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT2 DD DISP=SHR,DSN=<hlq>.TEST.PDSE#A1(ZZZZ) //SYSUT1 DD DATA ###ZZZZ### /* //*------------------------------------------------------------------* //COPY#A1 EXEC PGM=IEBCOPY,COND=(0,NE) //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=<hlq>.TEST.PDSE#A1 //SYSUT2 DD DISP=SHR,DSN=<hlq>.TEST.PDSE#A2 //SYSIN DD DUMMY //*------------------------------------------------------------------* // All steps usually end with CC 00. So far, so good. Everything as expected. However, if you BROWSE member ZZZZ in the two data sets involved, the result is surprising, to say the least. BROWSE SYSADM.TEST.PDSE#A1(ZZZZ) Command ===> ******************************** -------------------------------- ###ZZZZ### 777EEEE7774444444444444444444444 BBB9999BBB0000000000000000000000 -------------------------------- BROWSE SYSADM.TEST.PDSE#A2(ZZZZ) Command ===> ******************************** -------------------------------- 44444444444444444444444444444444 00000000000000000000000000000000 -------------------------------- Even though IEBCOPY (in step COPY#A1) ended with CC 00, and target member ZZZZ is *empty*. Even more intriguing: This *only* happens if an empty member (DUMMY in my example) already exists in the source PDSE, otherwise everything is fine and good. In my view, there are three possibilities. (1) I'm crazy. (2) In my 28 year as a Mainframe Systems Programmer, I somehow managed to miss a crucial piece of information. (3) There is a bad bug somewhere. Once I can rule out No. 1 and No. 2, I might turn to IBM. Thanks a lot in advance, everybody! Best Regards Karl ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ******************************************************** For information, services and offers, please visit our web site: http://www.klm.com. This e-mail and any attachment may contain confidential and privileged material intended for the addressee only. If you are not the addressee, you are notified that no part of the e-mail or any attachment may be disclosed, copied or distributed, and that any other action related to this e-mail or attachment is strictly prohibited, and may be unlawful. If you have received this e-mail by error, please notify the sender immediately by return e-mail, and delete this message. Koninklijke Luchtvaart Maatschappij NV (KLM), its subsidiaries and/or its employees shall not be liable for the incorrect or incomplete transmission of this e-mail or any attachments, nor responsible for any delay in receipt. Koninklijke Luchtvaart Maatschappij N.V. (also known as KLM Royal Dutch Airlines) is registered in Amstelveen, The Netherlands, with registered number 33014286 ******************************************************** ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
