The Question is:
I'm trying to read a indexed file on another node with large records (24029
bytes). When I issue the DCL read command I get the following error:
%RMS-E-NETBTS, network buffer too small for 24029 byte record
How do I expand the network buffer size to accomodate this record length?
The Answer is :
From the OpenVMS HELP/MESSAGE utility:
NETBTS, network buffer too small for 'size' byte record
Facility: RMS, OpenVMS Record Management Services
Explanation: The network buffer is too small for an attempted $GET, $PUT,
or $UPDATE operation on a remote file. For a $GET, no record
is returned to the user's record buffer; however, the next
record pointer is properly advanced to the next record in
the remote file, if there is one, or to the end-of-file. The
status value (STV) in the RAB contains the size of the record
that is too large for the network buffer.
User Action: Increase the size of the network buffer to accommodate the
maximum record size in the remote file. The default system
setting for the SYSGEN RMS_DFNBC (network block count)
parameter is 8, which becomes the process default if it is
not overridden by the process.
Determine the size of the largest record in the file. Either
use the DCL command DIRECTORY/FULL or ANALYZE/RMS_FILE or,
from within the program, examine the contents of the XABFHC
field XAB$W_LRL after opening the file with the XABFHC chained
to the FAB.
Increase the network buffer size for the process. Either
execute the DCL command SET RMS_DEFAULT/NETWORK_BLOCK_COUNT=n
on the local node or, from within the program, set the XABITM
item XAB$_NET_BLOCK_COUNT to 'n' when opening the file with
the XABITM chained to the FAB. Determine the value of 'n' as
o For a remote file opened from an image:
n = maximum record size in blocks
Example: For a maximum record size of 4112 bytes, n = 9.
4112 divided by 512 = 8.03
Example: For a maximum record size of 2048 bytes, n = 32.
2048 divided by 512 = 4 x 8 = 32