RECFM =FBA when i specifed RECFM=FB

841 Views Asked by At

I used IDCAMS to PRINT records in a VSAM KSDS to PS file(created in the JCL).

//OUTDD DD DSN=&SYSUID...PUTOUT,DISP=(NEW,CATLG,DELETE),
//      SPACE=(TRK,(1,0)),
//      DCB=(RECFM=FB,DSORG=PS,LRECL=120),BLKSIZE=9600

Although I specifed RECFM=FB in Jcl, it shows FBA when I look at attributes of Z00838.PUTOUT. I need help?

1

There are 1 best solutions below

0
On BEST ANSWER

As detailed here IDCAMS has some requirements for the output-dataset of the PRINT statement that it enforces in a not too obvious way.

The default SYSPRINT is RECFM=VBA,LRECL=125, but as per above link

You can alter the defaults by placing other values in the DCB parameter of the SYSPRINT statement. You cannot, however, use a record format of F or fixed block (FB); those are changed to VBA.

Note the part after the semicolon: IDCAMS will automatically change all DCB-Parameters it does not like.

After playing around with the parameters it seems to be even more strict than stated above: Even RECFM=VB will be changed to VBA and all LRECLs less than 125 will be changed to 125.

P.S.: Do you really want to PRINT the dataset like this?

RECORD SEQUENCE NUMBER - 69   
//IKJEFT1A EXEC PGM=IKJEFT1A  
RECORD SEQUENCE NUMBER - 70   
//*                           

or do you want to REPRO it like this?

//IKJEFT1A EXEC PGM=IKJEFT1A
//*

P.P.S.: This behaviour will also affect preexisting datasets that have been allocated with DISP=SHR. The most interesting effect was when using a preexisting FB80-dataset that already has some contents and allocating it with DISP=MOD in the IDCAMS PRINT step. The step completed with returncode 0 but trying to read the dataset afterwards resulted in an I/O-error.