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

File write status 44


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
shanudarling
Warnings : 1

New User


Joined: 20 Dec 2006
Posts: 55
Location: noida

PostPosted: Wed Jul 10, 2013 10:20 am
Reply with quote

Hi,

I have an existing variable block sequential file which has a record length of 300 bytes.
Earlier only 200 bytes of data was being written to the file. Now I am updating this file and i am adding additional 100 bytes i.e. now i am using the complete 300 bytes.

When I am issuing the rewrite statement, it gives 44.


FD -
BLOCK CONTAINS 0 CHARACTERS
RECORD IS VARYING IN SIZE
LABEL RECORDS STANDARD.
file-rec pic x(300).


Any idea what needs to be done to resolve this issue?

Thanks
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Wed Jul 10, 2013 11:31 am
Reply with quote

If you look at one of the "stickies" in the COBOL forum you'll find an explanation of the file-status codes. A 44 is:

Quote:
A boundary violation exists because an attempt was made to rewrite a record to a file and the record was not the same size as the record being replaced, or an attempt was made to write or rewrite a record that was larger than the largest or smaller than the smallest record allowed by the RECORD IS VARYING clause of the associated file-name.


Note, all that an LRECL of 300 says for a dataset is that the maximum length a record can be is 300 bytes (296 bytes of data and four bytes of "control information", the RDW).

You read your existing 200 byte-record (which actually has 204 bytes) and then you try to REWRITE it as 300 bytes (actually 304). Before the 304 can cause you a problem (if it were going to, there is room for mis-description in what you have said) the system carefully notes that you are trying to REWRITE a different length from the record that you READ.

To many, including me, it is a bad idea to update sequential datasets. Much better to just read, and then output a new dataset. Simplifies the JCL, simplifies the COBOL program, and you never get this situation, where you find only at this point that you didn't know enough about how it operates to realise that your file nedded "conversion" to the new-sized records.
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: Wed Jul 10, 2013 7:40 pm
Reply with quote

Hello,

Not only is updating a sequential file problematic, it is banned in every organization i've supported.

It is one of those "things" you can do, but should not do . . .
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 -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts Compare 2 files(F1 & F2) and writ... JCL & VSAM 8
No new posts FTP VB File from Mainframe retaining ... JCL & VSAM 8
No new posts Extract the file name from another fi... DFSORT/ICETOOL 6
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts Extracting Variable decimal numbers f... DFSORT/ICETOOL 17
Search our Forums:

Back to Top