SYNCSORT - Why this INCLUDE condition fails !?



Support for NetApp SyncSort for z/OS, Visual SyncSort, SYNCINIT, SYNCLIST and SYNCTOOL

SYNCSORT - Why this INCLUDE condition fails !?

Postby ranga_subham » Wed Sep 10, 2008 4:11 pm

Hi,

We are using SYNCSORT FOR Z/OS 1.2.2.1R. I am running below given job to pull the generations from a GDG after listing them using the IDCAMS. I am using SORT with include condition but it fails......... :(

//STEP01   EXEC PGM=IDCAMS
//SYSPRINT DD DSN=&TEMP1,
//            DISP=(NEW,PASS,DELETE),         
//            SPACE=(TRK,(1,1),RLSE),         
//            UNIT=SYSDA,                     
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSOUT   DD SYSOUT=*                         
//SYSIN    DD *                               
  LISTCAT ENT('XXXXX.XXXXT.XXXD.XXXXXM.XXXS') 
/*                                             
//*                                           
//STEP02   EXEC PGM=SORT             
//SORTIN   DD DSN=&TEMP1, 
//            DISP=(OLD,DELETE,DELETE)               
//SORTOUT  DD SYSOUT=*               
//SYSOUT   DD SYSOUT=*               
//SYSIN    DD *                       
 SORT FIELDS=COPY                     
 INCLUDE COND=(5,7,CH,EQ,C'NONVSAM') 
/*
//*


After running the above job it fails with the below error:

SYSIN :                                                           
 SORT FIELDS=COPY                                                 
 INCLUDE COND=(5,7,CH,EQ,C'NONVSAM')                             
WER276B  SYSDIAG= 155729, 786256, 786256, 1196340                 
WER164B  6,904K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
WER164B     0 BYTES RESERVE REQUESTED, 1,012,824 BYTES USED       
WER146B  12K BYTES OF EMERGENCY SPACE ALLOCATED                   
WER108I  SORTIN   : RECFM=VBA  ; LRECL=   125; BLKSIZE= 27998     
WER110I  SORTOUT  : RECFM=VBA  ; LRECL=   125; BLKSIZE= 27998     
WER055I  INSERT          0, DELETE          1                     
WER250A  INCLUDE/OMIT FIELD BEYOND RECORD                         
WER449I  SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE                     


I have really NOT understood few things here.....I don't know why it shows 125 as LRECL for SORTIN, whereas I used 80 in STEP01. Also, it shows VBA as Record Format whereas it should have been FB.

Please help.

Thanks.
ranga_subham
 
Posts: 279
Joined: Fri Jul 18, 2008 7:46 pm
Has thanked: 0 time
Been thanked: 1 time

Re: SYNCSORT - Why this INCLUDE condition fails !?

 

Re: SYNCSORT - Why this INCLUDE condition fails !?

Postby dick scherrer » Wed Sep 10, 2008 10:12 pm

Hello,

I believe idcams does what it wants with the sysprint - it ignores your parameters because it "knows" how it wants to format the printout.

It may help if you change the &temp1 dataset to a "real" dataset so that you can view the content.

You should see some "short" records in the printout which are the cause of the "WER250A INCLUDE/OMIT FIELD BEYOND RECORD " error. There will also be a "carriage control" byte as the first byte in the file that you will need to allow for.
Hope this helps,
d.sch.
User avatar
dick scherrer
Global moderator
 
Posts: 6304
Joined: Sat Jun 09, 2007 8:58 am
Has thanked: 3 times
Been thanked: 91 times

Re: SYNCSORT - Why this INCLUDE condition fails !?

Postby ranga_subham » Thu Sep 11, 2008 3:34 pm

Alissa, would you please provide me a solution to this problem?

Thanks.
ranga_subham
 
Posts: 279
Joined: Fri Jul 18, 2008 7:46 pm
Has thanked: 0 time
Been thanked: 1 time

Re: SYNCSORT - Why this INCLUDE condition fails !?

Postby Alissa Margulies » Mon Sep 15, 2008 9:53 pm

ranga_subham wrote:Alissa, would you please provide me a solution to this problem?

Thanks.

Sorry for the delayed response - I was out of the office last week.

I am assuming that your default option is VLTESTI=0, which instructs SyncSort to terminate if a record does not completely contain all INCLUDE or OMIT fields... hence, the WER250A.

You can override this value at runtime by specifying PARM='VLTESTI=1' or PARM='VLTESTI=2' on the EXEC statement.

As documented in the SyncSort for z/OS Programmer's Guide:

When VLTESTI=1 is specified, a record that does not completely contain all INCLUDE/OMIT fields is treated as having failed the comparison. SyncSort will omit the record if INCLUDE is being used or include the record if OMIT has been specified.

When VLTESTI=2 is specified, SyncSort will treat comparisons to fields not completely
contained within the record as false and decide a record’s status for inclusion or omission
from fields that are available. If all fields are not present, the record will be processed as
having failed the comparison. SyncSort will omit the record if INCLUDE is being used or
include the record if OMIT has been specified.

Hope this helps. Let me know if you have any further questions regarding ths issue.
Alissa Margulies
Syncsort Mainframe Product Services
201-930-8260
zos_tech@syncsort.com
Alissa Margulies
Global moderator
 
Posts: 369
Joined: Tue Feb 26, 2008 11:15 pm
Location: USA
Has thanked: 1 time
Been thanked: 1 time

Re: SYNCSORT - Why this INCLUDE condition fails !?

Postby ranga_subham » Mon Sep 15, 2008 10:42 pm

Hi, Alissa.

Excellent tip.....I was able to copy the input to output after using PARM='VLTESTI=1' or PARM='VLTESTI=2'. It worked.

Now, I have only one complaint. Though PARM='VLTESTI=1' was specified, It does not allow me to write the output to a 80 byte output file with record format of FB. :!: :?: So, I had to change the output file as follows:

//SORTOUT  DD DSN=XXXXX.XXXXF.XXX2,             
//            DISP=(NEW,CATLG,DELETE),           
//            UNIT=SYSDA,                       
//            SPACE=(TRK,(1,1),RLSE),           
//            DCB=(LRECL=125,BLKSIZE=0,RECFM=VBA)


I think, will have to use some mechanism to convert this VBA file to FB file of 80 bytes :? :o :shock:

Any tips please?

Thanks.
ranga_subham
 
Posts: 279
Joined: Fri Jul 18, 2008 7:46 pm
Has thanked: 0 time
Been thanked: 1 time

Re: SYNCSORT - Why this INCLUDE condition fails !?

Postby Alissa Margulies » Tue Sep 16, 2008 12:07 am

So you want to truncate the end of each record, only writing out the first 80 bytes of data?
If this is correct, then you can specify the following:

//SYSIN DD *
   SORT FIELDS=COPY                     
   INCLUDE COND=(5,7,CH,EQ,C'NONVSAM') 
   OUTREC FIELDS=(5,80),CONVERT
/*

Also, do not code the DCB in the JCL for SORTOUT.

Give this a try and let me know if you run into any problems.
Alissa Margulies
Syncsort Mainframe Product Services
201-930-8260
zos_tech@syncsort.com
Alissa Margulies
Global moderator
 
Posts: 369
Joined: Tue Feb 26, 2008 11:15 pm
Location: USA
Has thanked: 1 time
Been thanked: 1 time

Re: SYNCSORT - Why this INCLUDE condition fails !?

Postby ranga_subham » Tue Sep 16, 2008 6:37 pm

Alissa, thank you very much for your quick reply.

It produced FBA file but maintained LRECL of 80. Shouldn't it be FB file?

Thanks.
ranga_subham
 
Posts: 279
Joined: Fri Jul 18, 2008 7:46 pm
Has thanked: 0 time
Been thanked: 1 time

Re: SYNCSORT - Why this INCLUDE condition fails !?

Postby Alissa Margulies » Wed Sep 17, 2008 2:04 am

Since SORTIN was VBA, your converted SORTOUT will be FBA. If you want SORTOUT to be FB, then code DCB=(RECFM=FB) on the SORTOUT DD statement. That should give you the desired results. Let me know if you still have any questions about this.
Alissa Margulies
Syncsort Mainframe Product Services
201-930-8260
zos_tech@syncsort.com
Alissa Margulies
Global moderator
 
Posts: 369
Joined: Tue Feb 26, 2008 11:15 pm
Location: USA
Has thanked: 1 time
Been thanked: 1 time

Re: SYNCSORT - Why this INCLUDE condition fails !?

Postby ranga_subham » Wed Sep 17, 2008 8:25 pm

Wow. :D

The coding of DCB with RECFM of FB has solved the problem. 8-) Thank you very much Alissa.

Bye.
ranga_subham
 
Posts: 279
Joined: Fri Jul 18, 2008 7:46 pm
Has thanked: 0 time
Been thanked: 1 time


Return to Syncsort/Synctool

 


  • Related topics
    Replies
    Views
    Last post