How to solve INVALID DATA SET ATTRIBUTES using DFSORT?

9.6k views Asked by At

I'm trying to pass a IBM file to hex values, so I coded this:

//R45ORF80V  JOB (EFAS,2SGJ000),'LLAMI',NOTIFY=R45ORF80,
//     MSGLEVEL=(1,1),MSGCLASS=X,CLASS=A,             
//     REGION=0M,TIME=5                               
//*---------------------------------------------------
//SORTEST   EXEC PGM=ICEMAN                            
//SORTIN   DD DSN=LF58.DFE.V1408001,DISP=SHR         
//SORTOUT  DD DSN=LF58.DFE.V1408001.OUT,             
//            DISP=(NEW,CATLG,DELETE),                
//            LRECL=1026,DATACLAS=CDMULTI             
//SYSOUT   DD SYSOUT=X                                
//SYSPRINT DD SYSOUT=X                                
//SYSUDUMP DD SYSOUT=X                                
//SYSIN    DD *                                       
  SORT FIELDS=COPY                                    
  OUTREC FIELDS=(1,513,HEX)                                 
  END                                                 
/*                                                    

But I get the following error:

ICE043A INVALID DATA SET ATTRIBUTES: SORTOUT  RECFM   - REASON CODE IS 08

What am I dismissing? Anyway, the SYSIN is correct?

1

There are 1 answers

1
Bill Woodger On BEST ANSWER

You cut off the most important part of the message, the message-code (I've edited into the question).

When you get a message out of DFSORT which you do not already recognize, you have a few choices: locate the manual DFSORT Messages, Codes and Diagnosis Guide for your release; use the IBM LookAT webservice (http://www-03.ibm.com/systems/z/os/zos/bkserv/lookat/); an internet search; ask your colleagues.

One of these should get you to:

ICE043A INVALID DATA SET ATTRIBUTES: ddname attribute - REASON CODE IS rsn Explanation: Critical. An error associated with a record format, record length or block size was detected, or a conflict between these attributes was detected...

A Reason Code of 8 is:

Input and output data sets have mixed fixed length and variable length record formats, or mixed valid and invalid record formats. Examples: The SORTIN data set has RECFM=FB and the SORTOUT data set has RECFM=VB. The SORTIN01 data set has RECFM=VB and the SORTOUT data set has RECFM=F or RECFM=U

Basically it is as piet.t suspected in the comments, either your input is variable and output fixed (looks like you have something in the DATACLAS, is that the correct one?), or the other way around.

With SORT you do not need to supply any DCB information on the output dataset. That it, no RECFM, LRECL or BLKSIZE. Look at your SYSOUT. That will tell you the RECFM of your input dataset. If that is wrong, you are using the wrong file, or it has been created incorrectly. If it is correct, then strip all the DCB information off the output dataset.

If you still have problems after talking to your storage people about the DATACLAS, then paste the sysout from a current run of your JOB.

For the other issues you have, if you need help with those, start a new question.