The Question is:
When starting a batch process I receive the following error
creating space for command interpreter symbol table
Is this a process specific error or something controlled on a system wide basis ?
I there a searchable database for for VMS error messages somewhere ?
The Answer is :
I expect this error is due to a system wide non-zero value for
sequential disk multibuffer counts. See SHOW RMS:
MULTI- | MULTIBUFFER COUNTS | NETWORK
BLOCK | Indexed Relative Sequential | BLOCK
COUNT | Disk Magtape Unit Record | COUNT
Process 0 | 0 0 0 0 0 | 0
System 16 | 0 0 5 0 0 | 8
Prolog Extend Quantity
Process 0 0
System 0 0
In this case it's 5. The reason this affects batch jobs only is
SYS$OUTPUT points to a process permanent file. Since it's a sequential
disk file, it inherits the system setting, but the buffers must be
process permanent, so they need to be allocated from the limited process
permanent memory pool (see SHOW PROCESS/MEMORY), rather than much
larger volatile memory regions used for "ordinary" files.
So given a high enough MBC, there isn't enough space in the process
memory pool for other things that live there, such as the CLI symbol
table. If the MBC is high enough, the error will be "RMS-F-DME, Dynamic
Memory Exhausted", indicating that there isn't enough room for even the
Consider that the global allocation of buffers for ALL sequential disk
files across the system is of questionable value. Most accesses to such
files are probably read from beginning to end, so any buffering is
overhead. It's probably better to selectively give non-zero MBCs to
specific files which would benefit. If you MUST set a system wide
value, set it per process in SYLOGIN.COM. For example:
$ SET RMS_DEFAULT/DISK/BUFFER_COUNT=n
This will allow BATCH jobs to create SYS$OUTPUT without applying the
MBC count, but all other files will be created with the non-zero value.
A consequence of this is, you will limit the number of Process
Permanent Files which can be opened.