VARBUFMGT (Variable Buffer Management) keyword for ICF files

Use this record-level keyword to send or receive multiple or partial records using one record format per output operation.

On a send operation, you must specify the length of data to be sent using the VARLEN keyword. Otherwise, the length of the record format is used. On a receive operation, the length of data received is the length of the record format.

This keyword has no parameters.

VARBUFMGT is ignored at run time when a CANCEL, EOS, FAIL, NEGRSP, RSPCONFIRM, or RQSWRT keyword is in effect. These keywords must have option indicators when they apply to a record that has the VARBUFMGT keyword specified. If a CANCEL, EOS, FAIL, NEGRSP, or RQSWRT keyword with no option indicator applies to a record for which VARBUFMGT applies, an error message results and the VARBUFMGT keyword is ignored at create time.

Specify at least one data field (usage B or blank) for the user data in the record format.

You cannot specify the VARBUFMGT keyword:
  • When the TIMER keyword is used
  • On the same record format as the RECID keyword
  • On the RECID or INVITE default record formats

Option indicators are not valid for this keyword.

Example

The following example shows how to specify the VARBUFMGT keyword.

|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A          R MULTFMT1
00020A                                      VARBUFMGT
00030A            DATAFLD       32A
00040A          R MULTFMT2
00050A                                      VARLEN(&LENFLD);
00060A                                      VARBUFMGT
00070A            DATAFLD       32A
00080A            LENFLD         5S P

Suppose 42THIS RECORD WILL NOT FIT INTO ONE BUFFER was the data to be sent or received. The VARBUFMGT keyword on the first record format sends or receives the first 32 bytes of data. The second record format sends 10 bytes of data. The data length of 10 is set in LENFLD.