Error: No free channels. Insufficient RAM for COMMAND.COM

Solution or Workaround

Product: PC ARC/INFO
Platform: PC


&SYSTEM in an SML with several nested SML calls produces the message:

"No free channels
Insufficient RAM for COMMAND.COM"

This is from ARCPLOT after &SYSTEM.

1) Not enough memory present for the ARCPLOT session.
Try the following as a test:
Start ARCPLOT and perform 'DISPLAY 4'

This is the amount of memory available for running commands outside ARCPLOT. This is very low. If there is not enough memory for COMMAND.COM, which is the DOS command processor, there is less than 18K left and isn't enough to run a program.

If there is a shortage of memory, the memory management features of DOS 5.0 or 6.0 get more memory by loading various programs into high memory, such as mouse drivers. DOS 6.0, can free at least 600K RAM.

Try the following options:

--Get another memory manager, such as QEMM.

--Determine the GSS video driver that is used. Certain drivers use more memory than others. Try switching to one that uses less memory. It is also recommended that penplotter or printer drivers are not loaded prior to entering ARCPLOT. Configure the video driver only; it saves considerable memory. If a hardcopy is needed, save the results to a map composition or a plot file. After leaving ARCPLOT, use CON-CGI to switch to a plot or printer driver and use DRAW.

DRAW is a much smaller program that requires only about 350K, it can be loaded into a much larger printer/plotter driver.

2) ARC/INFO has a generic buffered I/O file system called MFILE. It is used in all versions of ARC/INFO to speed up I/O, and engages 'channels'.

A channel is used when opening the ARC files, and the channel is closed when done. The channel holds information about the opened file. When the file is closed, the channel is freed for another file.

There are 15 channels in PC ARC/INFO. Most ARCPLOT commands that open a channel, close them before the command ends. There are a few that don't close channels, such as map composition, JOIN, and the selection handler. The SML processor leaves a file open for each level but uncompiled SMLs do not use the MFILE system. A compiled SML uses one channel for each compiled SML application.