View previous topic :: View next topic
|
Author |
Message |
Gay251319
New User
Joined: 17 Jun 2009 Posts: 57 Location: Kochi
|
|
|
|
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 |
|
|
guptae
Moderator
Joined: 14 Oct 2005 Posts: 1208 Location: Bangalore,India
|
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6250 Location: Mumbai, India
|
|
|
|
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 |
|
|
Gay251319
New User
Joined: 17 Jun 2009 Posts: 57 Location: Kochi
|
|
|
|
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 |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
|
|
|
|
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 |
|
|
Corey Hardy
New User
Joined: 14 Apr 2010 Posts: 9 Location: Virginia
|
|
|
|
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 |
|
|
Gay251319
New User
Joined: 17 Jun 2009 Posts: 57 Location: Kochi
|
|
|
|
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 |
|
|
CICS Guy
Senior Member
Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
|
|
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 |
|
|
Ronald Burr
Active User
Joined: 22 Oct 2009 Posts: 293 Location: U.S.A.
|
|
|
|
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 |
|
|
Corey Hardy
New User
Joined: 14 Apr 2010 Posts: 9 Location: Virginia
|
|
|
|
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 |
|
|
Corey Hardy
New User
Joined: 14 Apr 2010 Posts: 9 Location: Virginia
|
|
|
|
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 |
|
|
Gay251319
New User
Joined: 17 Jun 2009 Posts: 57 Location: Kochi
|
|
|
|
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 |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6250 Location: Mumbai, India
|
|
|
|
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
. |
|
Back to top |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
Can we agree to not offer any more input on this topic until we get an official response from Syncsort? |
|
Back to top |
|
|
Corey Hardy
New User
Joined: 14 Apr 2010 Posts: 9 Location: Virginia
|
|
|
|
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 |
|
|
Alissa Margulies
SYNCSORT Support
Joined: 25 Jul 2007 Posts: 496 Location: USA
|
|
|
|
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 |
|
|
Alissa Margulies
SYNCSORT Support
Joined: 25 Jul 2007 Posts: 496 Location: USA
|
|
|
|
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 |
|
|
|