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

Getting OUTREC=Short record


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Gay251319

New User


Joined: 17 Jun 2009
Posts: 57
Location: Kochi

PostPosted: Mon May 03, 2010 6:02 pm
Reply with quote

Hi,

When trying to use outrec fields in the VB file , Iam getting OUTREC=Short record , I tried giving innrec fields, Can anyone help for the same .

Code:
 SORT FIELDS=COPY                                                     
     OUTREC FIELDS=(1,4,5:5,1996)                                         
 WER276B  SYSDIAG= 248239, 462921, 462921, 806100                         
 WER164B  8,892K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,       
 WER164B     0 BYTES RESERVE REQUESTED, 2,316,144 BYTES USED               
 WER146B  4K BYTES OF EMERGENCY SPACE ALLOCATED                           
 WER108I  SORTIN   : RECFM=VB   ; LRECL=  2000; BLKSIZE= 27998             
 WER237I  OUTREC RECORD LENGTH =  2000                                     
 WER110I  SORTOUT  : RECFM=VB   ; LRECL=  2000; BLKSIZE= 27998             
 WER410B  7,864K BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16MEG LINE, 
 WER410B     0 BYTES RESERVE REQUESTED, 2,168,688 BYTES USED               
 WER244A  OUTREC - SHORT RECORD                                           
 WER211B  SYNCSMF  CALLED BY SYNCSORT; RC=0000                             
 WER449I  SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE 

Thanks,
Gay251319

Edited: Please use BBcode when You post some code/error, that's rather readable, Thanks... Anuj
Back to top
View user's profile Send private message
guptae

Moderator


Joined: 14 Oct 2005
Posts: 1208
Location: Bangalore,India

PostPosted: Mon May 03, 2010 6:18 pm
Reply with quote

Hello there,

Please check below link

www.ibmmainframes.com/viewtopic.php?t=14468&highlight=short+record

It might work with syncsort as well
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Mon May 03, 2010 6:19 pm
Reply with quote

Code:
WER244A  OUTREC - SHORT RECORD
SHORT RECORD means, a variable length record was too short to contain all the fields specified on the control statement so either you can choose to check the values you provide in INREC statement of your sort JCL or try using Program HISTOGRM, from SyncSort, to determine the length of the shortest record in the input file.

You might alos use VLSHRT, but then decide on that you really want to choose such a short record.
Back to top
View user's profile Send private message
Gay251319

New User


Joined: 17 Jun 2009
Posts: 57
Location: Kochi

PostPosted: Mon May 03, 2010 6:52 pm
Reply with quote

Hi all,

Can anyone tell why this Short record error is coming even after giving VLSHRT

Code:
SYNCSORT LICENSED FOR CPU SERIAL NUMBER 464FF, MODEL 2097 607             LIC
SYSIN :                                                                     
    SORT FIELDS=(5,1996,CH,A)                                               
    OUTREC FIELDS=(1,4,5,1996)                                               
    OPTION VLSHRT                                                           
WER276B  SYSDIAG= 301415, 516237, 516237, 806175                             
WER164B  1,028K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,           
WER164B     0 BYTES RESERVE REQUESTED, 1,020K BYTES USED                     
WER146B  4K BYTES OF EMERGENCY SPACE ALLOCATED                               
WER108I  SORTIN   : RECFM=VB   ; LRECL=  2000; BLKSIZE= 27998               
WER237I  OUTREC RECORD LENGTH =  2000                                       
WER110I  SORTOUT  : RECFM=VB   ; LRECL=  2000; BLKSIZE= 27998               
WER036B  G=338,B=18100,SEGLEN=2004,BIAS=00                                   
WER147I  CONTROL FIELD GT REC LEN, POSSIBLE OUT OF SEQ REC                   
WER162B  0 PREALLOCATED SORTWORK TRACKS, 150 DYNAMICALLY ALLOCATED,         
WER162B     0 ACQUIRED IN SECONDARY EXTENTS, 0 RELEASED, TOTAL OF 3 TRACKS US
WER045C  END SORT PHASE     

OUTREC - SHORT RECORD                           
SYNCSMF  CALLED BY SYNCSORT; RC=0000               


Thanks
Gay251319
Back to top
View user's profile Send private message
expat

Global Moderator


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

PostPosted: Mon May 03, 2010 6:57 pm
Reply with quote

Search the forum as this has been discussed before for SYNCSORT, but I can not recall the solution off the top of my head.
Back to top
View user's profile Send private message
Corey Hardy

New User


Joined: 14 Apr 2010
Posts: 9
Location: Virginia

PostPosted: Mon May 03, 2010 7:08 pm
Reply with quote

Try adding the following parm card:


Code:

//PS001    EXEC PGM=SORT,PARM='VLTESTI=1'



For an explanation and to decide which option is best for you, please search the sort manual for VLTESTI=1 & VLTESTI=2.
Back to top
View user's profile Send private message
Gay251319

New User


Joined: 17 Jun 2009
Posts: 57
Location: Kochi

PostPosted: Mon May 03, 2010 7:16 pm
Reply with quote

Hi Cordey,

Am getting the same error even after giving that PARM='VLTESTI=1'


What to do in this case ?

Thanks ,
Gayathiri
Back to top
View user's profile Send private message
CICS Guy

Senior Member


Joined: 18 Jul 2007
Posts: 2146
Location: At my coffee table

PostPosted: Mon May 03, 2010 8:20 pm
Reply with quote

Quote:
WER147I CONTROL FIELD GT REC LEN, POSSIBLE OUT OF SEQ REC
An input record is shorter than your sort control field, why?
Back to top
View user's profile Send private message
Ronald Burr

Active User


Joined: 22 Oct 2009
Posts: 293
Location: U.S.A.

PostPosted: Mon May 03, 2010 9:45 pm
Reply with quote

If you really DO want to accept "short" records, then try running with the parm set to VLTEST=2. According to the manual, it "should" work.
Back to top
View user's profile Send private message
Corey Hardy

New User


Joined: 14 Apr 2010
Posts: 9
Location: Virginia

PostPosted: Tue May 04, 2010 3:00 am
Reply with quote

Try this -

Code:

//*                                                       
//PS001    EXEC PGM=SYNCSORT                             
//SYSIN    DD *                                           
 SORT FIELDS=(COPY)                                       
 OUTFIL FILES=1,VLTRIM=X'40',                             
        OUTREC=(0001:001,0004,                           
                0005:005,1996)                           
//SORTIN   DD DSN=VB.INPUT,                               
//            DISP=SHR                                   
//*                                                       
//SORTOF1  DD DSN=VB.OUTPUT,                             
//            DISP=(NEW,CATLG,DELETE)                     
//*                                                                                       
Back to top
View user's profile Send private message
Corey Hardy

New User


Joined: 14 Apr 2010
Posts: 9
Location: Virginia

PostPosted: Tue May 04, 2010 3:12 am
Reply with quote

Sorry, I posted an error - this is tested and works

Code:

OUTFIL FILES=1,VLFILL=X'40',VLTRIM=X'40', 
       OUTREC=(0001:001,0004,             
               0005:005,1996)             


Note:

VLFILL will get you past the input file error and VTRIM will suppress trailing spaces and recalculate the RDW for the output file.
Back to top
View user's profile Send private message
Gay251319

New User


Joined: 17 Jun 2009
Posts: 57
Location: Kochi

PostPosted: Tue May 04, 2010 9:57 am
Reply with quote

Hi all,

Now too am getting OUTFIL statement syntax error


Code:
SYNCSORT LICENSED FOR CPU SERIAL NUMBER 464FF, MODEL
SYSIN :                                             
  SORT FIELDS=(COPY)                                 
  OUTFIL FILES=1,VLFILL=X'40',VLTRIM=X'40',         
    OUTREC =(0001:001,0004,0005:005,1996)           
    *                                               
WER268A  OUTFIL STATEMENT  : SYNTAX ERROR           
WER211B  SYNCSMF  CALLED BY SYNCSORT; RC=0000       
WER449I  SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Tue May 04, 2010 4:23 pm
Reply with quote

Gay251319 - you've just copied what Corey (Hardy) has posted. You should have changed that as per your need. Unless, I'm mistaken Corey used that just for example to give you an idea. (please correct if needed)

Do you also have the DDname as "1", as you have used
Code:
OUTFIL FILES=1
.
Back to top
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Tue May 04, 2010 4:35 pm
Reply with quote

Can we agree to not offer any more input on this topic until we get an official response from Syncsort?
Back to top
View user's profile Send private message
Corey Hardy

New User


Joined: 14 Apr 2010
Posts: 9
Location: Virginia

PostPosted: Tue May 04, 2010 6:10 pm
Reply with quote

In looking at your example there appears to be a space after OUTREC

You have OUTREC =
You should have OUTREC=

Try removing the space after OUTREC and it should work...I tested this and it worked fine for me.
Back to top
View user's profile Send private message
Alissa Margulies

SYNCSORT Support


Joined: 25 Jul 2007
Posts: 496
Location: USA

PostPosted: Tue May 04, 2010 7:49 pm
Reply with quote

First of all, it appears that you are writing out the entire record, so why even code an OUTREC statement at all? Second, if you need to code an OUTREC statement for some other reason, try this:
Code:
OUTREC FIELDS=(1,4,5)

For VB data, you do not need to code the length portion of the variable field.
Back to top
View user's profile Send private message
Alissa Margulies

SYNCSORT Support


Joined: 25 Jul 2007
Posts: 496
Location: USA

PostPosted: Tue May 04, 2010 7:52 pm
Reply with quote

Corey Hardy wrote:
Try adding the following parm card:
Code:

//PS001    EXEC PGM=SORT,PARM='VLTESTI=1'

For an explanation and to decide which option is best for you, please search the sort manual for VLTESTI=1 & VLTESTI=2.

Please note, VLTESTI is only applicable for INCLUDE/OMIT statements. It would not help in this case.
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 -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts FINDREP - Only first record from give... DFSORT/ICETOOL 3
No new posts To find whether record count are true... DFSORT/ICETOOL 6
No new posts Validating record count of a file is ... DFSORT/ICETOOL 13
Search our Forums:

Back to Top