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

GET VLEN larger than 32756


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
speermb

New User


Joined: 27 Aug 2008
Posts: 30
Location: USA

PostPosted: Thu Dec 23, 2010 8:20 pm
Reply with quote

I am running an ICETOOL to find the length of records on a VSAM file. I actually just need the records that are at 625, I couldnt find out how to do that so I tried this way, which isnt working for me either.
SORTIN is a VSAM data set defined as a VB 625.
TOOLIN IS:
Code:
  DISPLAY FROM(SORTIN) LIST(SHOW) -                       
  INDENT(10) BETWEEN(5) -                                 
  HEADER('RECORD','NUMBER') ON(NUM,N15) -                 
  HEADER('RECORD','LENGTH') ON(VLEN,N05) -               
  HEADER(,'RDW IN HEX') ON(1,4,HEX) -                     
  TITLE('RECORD LENGTH REPORT') DATE -                   
  TOTAL('TOTAL') AVERAGE('AVERAGE') -                     
  MINIMUM('MINIMUM') MAXIMUM('MAXIMUM')


Output is:
Code:
 RECORD LENGTH REPORT        12/23/10                               
                                                                     
           RECORD     RECORD                                         
           NUMBER     LENGTH     RDW IN HEX                         
 ----------------     ------           ----------                         
                1          0               00000000                           
                2      61889            F1C1C4F0                           
                3      61889             F1C1C4F0   


What am I doing wrong cause how can the record length EVER be 61889.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Thu Dec 23, 2010 10:01 pm
Reply with quote

Hello,

Suggest you become comfortable with the "Code" tag which will preserve alignment and improve readability (your post has been "Code'd".

61889 is the decimal value of x'F1C1'.

What does a value beginning with 1AD0 represent - that is what is being mistakenly shown as the "rdw".
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Fri Dec 24, 2010 5:50 am
Reply with quote

If you process the VSAM records as TYPE V, DFSORT will add a 4-byte RDW at the beginning of the record before it processes it. Since you didn't specify VSAMTYPE(V), I suspect DFSORT is processing your records as F, not V, so VLEN didn't give you what you want. Try adding VSAMTYPE(F) to your DISPLAY operator. However, you'll get length+4 because of the added RDW.

However, if you just want to find the VSAM records that have a length of 625, I believe a DFSORT job like this will do it (note that I added 4 for the RDW that DFSORT adds):

Code:

//S1 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=...  VSAM input file
//SORTOUT DD SYSOUT=*
//SYSIN DD *
  OPTION COPY
  RECORD TYPE=F
  INCLUDE COND=(1,2,BI,EQ,+629)
/*
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 -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts How do I coding to file copy larger t... PL/I & Assembler 3
No new posts inserting lob column larger than 32k ... DB2 6
No new posts Force tablespace scan on larger table DB2 2
No new posts Comparison of two files of larger len... DFSORT/ICETOOL 13
No new posts XMITIP does not support data that is ... All Other Mainframe Topics 6
Search our Forums:

Back to Top