Where are you getting REQ-RECORD-LENGTH?
EDIT: The reference you point to in the manual states that you can do it, and it is for the sort of thing you are trying to do. The message for your 44 is a little unclear. It first says you can't do it, which you can't for an ESDS, and then "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." You don't have RECORD IS VARYING. There is nothing I can find for any "default" value without that, so maybe you could try to include that? I don't know if it should help, because with the ODO Cobol should already know the records can vary. I don't imagine that your VSAM definition is the problem, even though we haven't seen it yet, because you are way away from the maximum. Are you definitely sure you have 120 when you do the re-write, not some ludicrous low or high count in there?