View previous topic :: View next topic
|
Author |
Message |
harisukumaran
New User
Joined: 14 Jun 2005 Posts: 75
|
|
|
|
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 |
|
|
steve-myers
Active Member
Joined: 30 Nov 2013 Posts: 917 Location: The Universe
|
|
|
|
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 |
|
|
harisukumaran
New User
Joined: 14 Jun 2005 Posts: 75
|
|
|
|
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 |
|
|
steve-myers
Active Member
Joined: 30 Nov 2013 Posts: 917 Location: The Universe
|
|
|
|
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 |
|
|
harisukumaran
New User
Joined: 14 Jun 2005 Posts: 75
|
|
|
|
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 |
|
|
steve-myers
Active Member
Joined: 30 Nov 2013 Posts: 917 Location: The Universe
|
|
|
|
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 |
|
|
|