MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Error Handling in IEBGENER
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities
View previous topic :: View next topic  
Author Message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12380
Topics: 75
Location: San Jose

PostPosted: Fri Jul 16, 2004 11:43 am    Post subject: Reply with quote

Vivek,

Let us try with different utility and see if you still get the same error. Run the following job and post the results.

Code:

//PSTEP12  EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//SORTIN   DD DSN=JUMSB4.FMF0803,DISP=SHR
//         DD DSN=JUMSB4.FMF0802,DISP=SHR
//SORTOUT  DD SYSOUT=*
//SYSIN    DD *
  SORT FIELDS=COPY
/*


Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
semigeezer
Supermod


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Fri Jul 16, 2004 12:07 pm    Post subject: Reply with quote

The answer is in your post above. DSORG=NONE. Some programs may assume a dsorg of PS, but they should not. The dataset was incorrectly created.
Back to top
View user's profile Send private message Visit poster's website
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12380
Topics: 75
Location: San Jose

PostPosted: Fri Jul 16, 2004 12:41 pm    Post subject: Reply with quote

Semigeezer,

That was a good catch. 8) I was concetrating on the LRECL,RECFM and Blocksize as the error was pointing to the record length. Crying or Very sad But I am wondering how would you create a Dataset with DSORG=NONE?

The possible values for DSORG parameter are PS, PSU,DA, DAU, IS, ISU, PO, POU, CX, GS

Do you have an example ?

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
semigeezer
Supermod


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Fri Jul 16, 2004 3:00 pm    Post subject: Reply with quote

ALLOC DA(FOO) NEW CAT LRECL(80) RECFM(F B)

I suspect that SMS might alter this to add a dsorg if the ACS routines can do that sort of thing, but it works on a 'vanilla' system.
Back to top
View user's profile Send private message Visit poster's website
vivek
Beginner


Joined: 15 Jul 2004
Posts: 95
Topics: 11
Location: Edison,NJ

PostPosted: Fri Jul 16, 2004 3:20 pm    Post subject: Reply with quote

Quote:

Let us try with different utility and see if you still get the same error. Run the following job and post the results.

Kolusu that was a good alternative. I thought of using it if nothing existed.
I will try the error pointed out by semigeezer and let you know the results.
_________________
Vivek,NJ

Db2,IDMS
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger
semigeezer
Supermod


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Fri Jul 16, 2004 3:21 pm    Post subject: Reply with quote

Actually, any simple alloc that leaves off the DCB info will cause this type of problem.
Code:
SVCTEST  CSECT ,        Simplified SVC 99 invocation
SVCTEST  AMODE 31
SVCTEST  RMODE 24
         BAKR  14,0
         LR    12,15
         USING SVCTEST,12 -----------------------------------
         LA    1,S99RBPTR             Get addr of parm list
         LR    2,1                    Save R1 for TSO TEST
         SVC   99                     Call Dynalloc
         L     0,S99ERROR             Save error code
         PR    ,                      Return to caller
S99RBPTR DC A(X'80000000'+S99RB)   Address of request block
S99RB    DC AL1(20),AL1(1),XL2'6400'  Allocate,Flags
S99ERROR DC AL2(0)                    Returned error code
S99INFO  DC AL2(0)                    Returned info code
S99TXTPP DC A(TULIST,0,0)             Pointer to text units
TU01     DC X'0001',AL2(1),AL2(8),CL8'A       '    DDNAME
TU02     DC X'0002',AL2(1),AL2(44),CL44'USER1.FOO' DSname
TU03     DC X'0004',AL2(1),AL2(1),X'04'            Status NEW
TU04     DC X'0005',AL2(1),AL2(1),X'02'            Norm disp CATLG
TU05     DC X'0007',AL2(0)                         Tracks
TU06     DC X'000A',AL2(1),AL2(3),X'000001'        Prm space
TULIST   DC A(TU01,TU02,TU03,TU04,TU05,TU06+X'80000000')
         END SVCTEST
Back to top
View user's profile Send private message Visit poster's website
vivek
Beginner


Joined: 15 Jul 2004
Posts: 95
Topics: 11
Location: Edison,NJ

PostPosted: Fri Jul 16, 2004 3:26 pm    Post subject: Reply with quote

Corrected the Dataset and Ran again . pROBLEM IS STILL THERE.

,Command ===>,
,
,Data Set Name . . . :,JUMSB4.FMF0802 ,
,, ,
,General Data, ,,Current Allocation,
,,Volume serial . . . :,WORK46, , ,,Allocated cylinders :,10 ,
,,Device type . . . . :,3390 , ,,Allocated extents . :,1 ,
,,Organization . . . :,PS , ,, ,
,,Record format . . . :,FBA , ,, ,
,,Record length . . . :,130 , ,, ,
,,Block size . . . . :,130 , ,Current Utilization,
,,1st extent cylinders:,10 ,,,Used cylinders . . :,0 ,
,,Secondary cylinders :,20 ,,,Used extents . . . :,0 ,
,,, ,
,,Creation date . . . :,2004/07/16,
,,Referenced date . . :,2004/07/16,
, Expiration date . . :,***None***,,
,, ,


Command ===>,

Data Set Name . . . :,JUMSB4.FMF0803
, ,
General Data, ,,Current Allocation,
,Volume serial . . . :,WORK46, , ,,Allocated cylinders :,10
,Device type . . . . :,3390 , ,,Allocated extents . :,1
,Organization . . . :,PS , ,, ,
,Record format . . . :,FBA , ,, ,
,Record length . . . :,130 , ,, ,
,Block size . . . . :,130 , ,Current Utilization,
,1st extent cylinders:,10 ,,,Used cylinders . . :,1
,Secondary cylinders :,20 ,,,Used extents . . . :,1
,, ,
,Creation date . . . :,2004/07/16,
,Referenced date . . :,2004/07/16,
Expiration date . . :,***None***,,

,-------------------------------------------------------------------------------
,EDIT ,JUMSB4.FMF0802 ,Columns,00001,00072,
,Command ===>, ,Scroll ===>,CSR ,
,******,***************************** Top of Data ******************************
,******,**************************** Bottom of Data ****************************


,EDIT ,JUMSB4.FMF0803 ,Columns,00001,00072,
,Command ===>, ,Scroll ===>,CSR ,
,******,***************************** Top of Data ******************************
,000100,greek
,******,**************************** Bottom of Data ****************************


JCL
===

********************************* TOP OF DATA **********************************
1 //JUMSB4X JOB B30168FM50919,'BALAJI',MSGCLASS=T,CLASS=A,REGION=0K,
// NOTIFY=JUMSB4
2 //PSTEP12 EXEC PGM=IEBGENER
3 //SYSPRINT DD SYSOUT=*
4 //SYSUT1 DD DSN=JUMSB4.FMF0802,DISP=SHR
5 // DD DSN=JUMSB4.FMF0803,DISP=SHR
6 //SYSUT2 DD SYSOUT=(V,,FM57)
7 //SYSIN DD DUMMY
******************************** BOTTOM OF DATA ********************************




SYSPRINT
------------

DATA SET UTILITY - GENERATE
IEB352I WARNING: ONE OR MORE OF THE OUTPUT DCB PARMS COPIED FROM INPUT

IEB351I I/O ERROR ,JUMSB4X ,PSTEP12 ,2191,D,SYSUT1 ,READ ,WRNG.LEN.RECORD,0000
******************************** BOTTOM OF DATA ********************************
_________________
Vivek,NJ

Db2,IDMS
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger
slade
Intermediate


Joined: 07 Feb 2003
Posts: 266
Topics: 1
Location: Edison, NJ USA

PostPosted: Fri Jul 16, 2004 9:17 pm    Post subject: Reply with quote

Hi Vivek,

You say one file is "empty". Do you know if the pgm that creats the empty file file opens and closes it?

These are symptoms of trying to read an uninitialized file (i.e. no EOF marker). You may want to verify that the pgm doesn't just exit before opening the file.

Regards, Jack.
Back to top
View user's profile Send private message
semigeezer
Supermod


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Fri Jul 16, 2004 10:04 pm    Post subject: Reply with quote

Question I don't know. I tried it and got the same error IF the data set had never been opened. (opening it in the editor does not count because the editor checks the DS1LSTAR field in the DSCB to see if the data set is empty. If it is, it never really opens it).

If you open and save the empty data using the editor, it will work. What is interesting is that once the dataset is saved, even if it is empty, the DSCB flag that indicates that the end of data is on this volume gets turned on. (Also a flag in the DSCB indicating that the data set was opened since the last backup gets turned on, but I don't see how that is relavent).

I should know this. It's been too long!!! Embarassed I do know that the system does not save all the dataset characteristics until the it has been opened once. I don't know where it is that it is not saved though. Immediately after allocation, the 'DCB' information in the VTOC (DSCB - that can be verified with the LISTDS dsname LABEL command if you know how to read the DSCB from that) and I would think that the utilities would use that as the final arbiter (via an OBTAIN, SVC 27). But that does not seem to be the case.

Anyway, you can force the data set to be opened and all information to be updated (wherever that is) by appending nothing at all to it and forcing the DCB parms there. This should be done for any data set you think may never have been opened.

The following worked for me when USER1.FOO was allocated but never opened (the 1st step deletes it, the 2nd step reallocates it), and USER1.FOO2 had data in it:
Code:
//USER1D   JOB (ACCT),'IEBGENER',CLASS=A,MSGCLASS=A,NOTIFY=USER1
//*********************************************************************
//* delete and reallocate FOO
//*********************************************************************
//IEFBR14  EXEC PGM=IEFBR14
//GOODBYE  DD  DISP=(MOD,DELETE,DELETE),
//             DSN=USER1.FOO,
//             UNIT=3390,SPACE=(TRK,(10,0))
//IEFBR14  EXEC PGM=IEFBR14
//HELLO    DD  DISP=(NEW,CATLG),
//             DSN=USER1.FOO,
//             UNIT=3390,SPACE=(TRK,(10,0))
//*********************************************************************
//* append nothing to FOO and force dcb information
//*********************************************************************
//IEBGENER EXEC PGM=IEBGENER
//SYSUT1   DD  DUMMY,
//             DCB=(LRECL=130,RECFM=FBA,BLKSIZE=130,DSORG=PS)
//SYSUT2   DD  DISP=OLD,DSN=USER1.FOO
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  DUMMY
//*********************************************************************
//* copy from FOO by forcing the dcb information on sysut1
//*********************************************************************
//IEBGENER EXEC PGM=IEBGENER
//SYSUT1   DD  DISP=OLD,DSN=USER1.FOO
//         DD  DISP=OLD,DSN=USER1.FOO2
//SYSUT2   DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  DUMMY


Something is probably wrong with the process (The method of solving whatever problem you are solving) if you are ever copying data sets that have not been opened though.
Back to top
View user's profile Send private message Visit poster's website
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12380
Topics: 75
Location: San Jose

PostPosted: Sat Jul 17, 2004 7:25 am    Post subject: Reply with quote

Semigeezer,

Doesn't IEFBR14 set the EOF mark for empty datasets for SMS managed datasets?

Check this topic (look at the 9th post onwards from the bottom).

http://www.mvsforums.com/helpboards/viewtopic.php?t=1285&highlight=dscb

The only difference I see in your JCL is that you don't have the DCB parameters for the IEFBR14 allocation step. I ran the IEFBR14 STEP without a DCB Parameter and this what I got.

Code:

 Management class . . : INTERIM         Allocated tracks  . : 10
 Storage class  . . . : BASE            Allocated extents . : 1 
  Volume serial . . . : DMASAP                                   
  Device type . . . . : 3390                                     
 Data class . . . . . : DEFLT          Current Utilization       
  Organization  . . . : PS              Used tracks . . . . : 0 
  Record format . . . : ?               Used extents  . . . : 0 
  Record length . . . : 0                                       
  Block size  . . . . : 0                                       
  1st extent tracks . : 10                                       
  Secondary tracks  . : 0                                       
  Data set name type  :                 SMS Compressible  . : NO


The DSORG is taken as PS and recfm is not set.

I also did a LISTD / LABEL and it seems that the eof marker is set for this dataset. And here is the DSCB Info

Code:

--FORMAT 1 DSCB--                                                         
F1 C4D4C1E2C1D7 0001 6800C7 000000 01 00 00 C9C2D4D6E2E5E2F24040404040   
00000080000000 4000 00 00 0000 0000 00 0000 80 80000000 000000 E5A2 0000 
0100003800030038000C 00000000000000000000 00000000000000000000 0000000000


Now when I tried to copy the above allocated dataset to another file using IEBGENER I get the following error

Code:

DATA SET UTILITY - GENERATE                                             
IEB352I WARNING: ONE OR MORE OF THE OUTPUT DCB PARMS COPIED FROM INPUT   
IEB317I JOB TERMINATED,NO INPUT BLKSIZE/LRECL                           


which clearly mentions that there is no LRECL & BLKSIZE for the input DSN. I however could not replicate Vivek's error.

I would really appreciate if you can throw light on this

Thanks

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
semigeezer
Supermod


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Sat Jul 17, 2004 1:21 pm    Post subject: Reply with quote

I did have the DCB info in the IEFBR14 step originally, but I found it didn't matter. I should have left it, since I did say that the DSCB had the info and then posted an example where it would not (oops). Anyway, yes the EOF mark should be written. I'm not sure why this fails, but I was able to replicate it at will as long as the data set was new (I found at some point that my original JCL wasn't deleting the file, just uncataloging it, but that was a JCL error on my part).
Back to top
View user's profile Send private message Visit poster's website
vivek
Beginner


Joined: 15 Jul 2004
Posts: 95
Topics: 11
Location: Edison,NJ

PostPosted: Mon Jul 19, 2004 7:51 am    Post subject: Reply with quote

Quote:

hich clearly mentions that there is no LRECL & BLKSIZE for the input DSN. I however could not replicate Vivek's error.


Kolusu, How can you not replicate my error ?

Very simple.

1. Allocate tow PS datasets.
2. Keep one empty and edit another with any string in it.
3. Try concatenating both with IEBGENER.

If you are successful, then I would call it is happening only in my system, which is weird.

Semigeezer may also try it in his system.
Vivek
_________________
Vivek,NJ

Db2,IDMS
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger
vivek
Beginner


Joined: 15 Jul 2004
Posts: 95
Topics: 11
Location: Edison,NJ

PostPosted: Mon Jul 19, 2004 8:00 am    Post subject: Reply with quote

Quote:

Hi Vivek,

You say one file is "empty". Do you know if the pgm that creats the empty file file opens and closes it?

These are symptoms of trying to read an uninitialized file (i.e. no EOF marker). You may want to verify that the pgm doesn't just exit before opening the file.

Regards, Jack.


Jack , I allocated dataset with IEBGener. Opened them manually and save an empty file and added the string greek in second file. then ran the IEBGENER. it didnt abend this time. I think what you said was correct. I use FOCUS to create the file. I am not sure if focus opens and closes them.
Thanks for the tip. I learnt something new today.
Vivek
PS I tried to find the the routine to handle IOERROR, looks like nobody has done it or it dint fall in the eyes of the people who has done it. I guess I will move with this solution or use a sort step.
_________________
Vivek,NJ

Db2,IDMS
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger
vivek
Beginner


Joined: 15 Jul 2004
Posts: 95
Topics: 11
Location: Edison,NJ

PostPosted: Mon Jul 19, 2004 8:05 am    Post subject: Reply with quote

OOps, sorry the I should have quoted Semigeezer, quoted Jack instead. Thanks Semigeezer.

Can you guys let me know how to see the EOF flag set or not in a dataset ?
Vivek
_________________
Vivek,NJ

Db2,IDMS
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12380
Topics: 75
Location: San Jose

PostPosted: Mon Jul 19, 2004 8:13 am    Post subject: Reply with quote

Vivek,

My shop is SMS managed and it gives me a return code of zero,because SMS writes the EOF mark even for an empty dataset, so I could not replicate your problem.

Run the following jcl and see if you get the same error. If you do the get the same error then post the JESYSMSG output from the job.

Code:

//STEP0100 EXEC PGM=IEFBR14                       
//*                                               
//FILE01   DD DSN=USERID.EMPTY.DSN,               
//            DISP=(NEW,CATLG,DELETE),             
//            UNIT=SYSDA,                         
//            SPACE=(TRK,(1,1),RLSE),             
//            DCB=(LRECL=80,RECFM=FB,BLKSIZE=0)   
//*                                               
//STEP0200 EXEC PGM=SORT                           
//SYSOUT   DD SYSOUT=*                             
//SORTIN   DD *                                   
TEST RECORD                                       
//SORTOUT  DD DSN=USERID.SINGLE.RECORD,           
//            DISP=(NEW,CATLG,DELETE),             
//            UNIT=SYSDA,                         
//            SPACE=(TRK,(1,1),RLSE),             
//SYSIN     DD *                                   
   SORT FIELDS=COPY                               
//*                                               
//STEP0300 EXEC PGM=IEBGENER                       
//SYSPRINT DD SYSOUT=*                             
//SYSUT1   DD DSN=USERID.EMPTY.DSN,               
//            DISP=SHR                             
//         DD DSN=USERID.SINGLE.RECORD,           
//            DISP=SHR                             
//SYSUT2   DD SYSOUT=*                             
//SYSIN    DD DUMMY                               


Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities All times are GMT - 5 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
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


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group