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

BDW in VB datasets


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

New User


Joined: 14 Jun 2005
Posts: 65

PostPosted: Sat May 28, 2016 9:46 am
Reply with quote

I have a VB dataset that has a block size equivalent to 15 LRECLs
Yet when dump the dataset using IDCAMS PRINT I do not see BDWS after each 15th record. I only see them each 34th record or so. Could some one help me understand why ?
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 870
Location: The Universe

PostPosted: Sat May 28, 2016 10:46 am
Reply with quote

You see one BDW for each physical record.

The reason for a data set with variable length records is the records may be shorter than the declared LRECL. This means more logical records per physical record.

For example, consider this data set -
Code:
listd diskcomp.lpt
 XXXXXX.DISKCOMP.LPT
 --RECFM-LRECL-BLKSIZE-DSORG
   VB    4100  27998   PS
 --VOLUMES--
   XXXX23
If, in fact, the records were 4100 bytes you would expect to see 6 logical records in one physical record. In fact, most of the logical records are around 135 bytes, so most of the blocks would have around 200 logical records. I dumped the most recent version of the data set and found it had 1 physical block. Its BDW showed a record length of 2D22 (11,554) bytes. The first RDW showed a record length of 88 (136) bytes, the next RDW showed 71 (113) bytes, then 77 (119) bytes, 86 (134) bytes, and so on.The original plan for the program that would have required longer records never materialized, but the DCB attributes were never changed, especially since it did not matter as the system fills each physical record with as many logical records that will fit in the record.
Back to top
View user's profile Send private message
harisukumaran

New User


Joined: 14 Jun 2005
Posts: 65

PostPosted: Sat May 28, 2016 6:58 pm
Reply with quote

Steve, thank you so much for clarifying this. I think I need to read some more and understand how records are allocated. Is there any documentation online explaining it ? Are physical records the same as blocks ? I am supposed to be sending this dataset to an AIX box without translation, where they are going to read it using ab initio. I had just told them to look for the 4 byte RDW before each record. So they did not code for the occasional BDW. They cannot exp BDWs to occur after a fixed number of bytes or records, right? Every day I realize how little I know.
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 870
Location: The Universe

PostPosted: Sat May 28, 2016 8:00 pm
Reply with quote

harisukumaran wrote:
... Is there any documentation online explaining it ? ...
Yes, publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/DGT2D4A0/3.1.3.1?SHELF=dgt2bkb2&DT=20110606092005
Quote:
... Are physical records the same as blocks ?
Yes.
Quote:
... I am supposed to be sending this dataset to an AIX box without translation, where they are going to read it using ab initio. I had just told them to look for the 4 byte RDW before each record. So they did not code for the occasional BDW. ...
Probably incorrect. When you say "without translation" I presume you are using FTP and sending the data set as a "image" or "binary" data. When you send a VB formatted data set this way the BDWs and RDWs are not sent. You just have a stream of data.

You can send VB data as "text" or "ASCII" data without problem because FTP inserts a Unix style NL byte after each logical record.

Data intended for IBM "advanced function" printers can be sent this way because there is supplementary length information in the data, but that is a special case.

I believe there is an option in the newer z/OS releases to persuade FTP to send the RDWs, but I don't have the docs immediately st hand.
Back to top
View user's profile Send private message
harisukumaran

New User


Joined: 14 Jun 2005
Posts: 65

PostPosted: Sat May 28, 2016 8:30 pm
Reply with quote

I sent the data using connect:direct with Recfm=u on the FROM side of copy step, although recfm=vb. So the rdw and bdw do reach the destination server. They have process that is expecting rdws but not the bdw s so that process fails to read the file properly. They wrote the process to weed out some invalid characters in the EBCDIC file and then to do the translation by themselves, instead of allowing it to happen during NDM.
I will read the documentation and try to provide the aix application the changes they would need to make to account for the BDWs. Thank you so much for helping me understand this.
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 870
Location: The Universe

PostPosted: Sun May 29, 2016 9:53 am
Reply with quote

Look over this -
Code:
RECFM=VBA, LRECL=125, BLKSIZE=27998               
        RECORD  LOGICAL   SUM OF  SMALLEST  LARGEST
RECORD  LENGTH  RECORDS  RDW LENS  RECORD    RECORD
    1    27946     321    27942       18       125
    2    27924     310    27920       18       125
    3    27991     310    27987       18       125
The record length is the length in the BDW. Logical records is just the number of records in the block. Sum of RDW lens is the sum of the record lengths in the RDWs; it should be 4 less than the record length because the BDW uses 4 bytes. Smallest record and Largest record are self explanatory.
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 Compare Two datasets and Override Mat... DFSORT/ICETOOL 7
No new posts Compare Two datasets and get the 1st ... DFSORT/ICETOOL 7
No new posts Need a Macro to compare datasets and ... All Other Mainframe Topics 2
No new posts Mainframe datasets without any last r... All Other Mainframe Topics 1
No new posts ADRDSSU BY(REFDT... not selecting cor... IBM Tools 3
Search our Forums:

Back to Top