Limitations Under MS-DOS and MS-DOS Networks

File Naming

File names under MS-DOS Networks are limited to upper case only. MS-DOS converts lower case file names to upper case. If you are porting software from another system that does not have this limit, be careful that no two files have the same name when all names are converted to upper case.

Files referenced in PRO/5 on MS-DOS Networks in upper or lower case always refer to the same file, except when the reference is to an aliased device. In this case, the name given must always exactly match that given in the ALIAS entry.

If you are planning to transport application code developed under PRO/5 on MS-DOS Networks, care must be used in the application so that all files are named in the same manner; either all upper case or all lower case. This will minimize problems and code modification after porting. Lower case is generally more portable between MS-DOS and UNIX systems.

Additionally, be careful to ADDR files using exactly the same name as is used in the CALL. While MS-DOS does not compare the case of the characters in the file name, PRO/5 does. If you ADDR a file in lower case and call it in upper case, PRO/5 will not match the file names and will load the file from the disk.

As MS-DOS does not provide a method of detecting the case of opening a file under multiple names, the programmer should be careful to avoid this situation.

If you open and lock a file on one channel of a single-user system, MS-DOS will allow opening and locking the file on another channel. In that situation PRO/5 will destroy data in the file.

Network Limitations

In order to support file and record locking on a network your system must support the MS-DOS locking calls. The only current exception to this is Novell NetWare, where PRO/5 will use the Novell Locking calls. If you want to always use the Novell locking functions rather than the MS-DOS locking functions, you may specify NOVELL_LOCKS in the PRO/5 configuration file if you are using the MS-DOS 386 for Novell NetWare version of PRO/5.

PRO/5 cannot increase the number of file handles available on the server. Be sure that you allocate a proper number of file handles when installing the network software. This is particularly critical when you have enabled file handle caching, as it substantially increases the number of file handles and lock entries used by PRO/5.

User Limits and User Numbers

PRO/5 for MS-DOS networks and multi-user environments has a user limit, but is unable to use the "slot" approach described in Limitations Under the UNIX Operating System. Instead, it always uses the "Network Lock" locking scheme. Its INFO() function will not report total slots or free slots, because the slot approach is not used.

Problems With MS-DOS Files

Dynamic files under uncontrolled MS-DOS systems can cause severe programming problems. MS-DOS does not update disk directory information (including file length) until a file is closed by the application. This means that a file that has grown in the course of writing to the file is in an unsafe state until MS-DOS updates the file information.

In the MS-DOS versions of PRO/5 you may force this update by using the SETOPTS option. This will make PRO/5 force MS-DOS to update the file size information of an MKEYED file following any growth of the file. Using this feature will decrease the risk of file damage in the MS-DOS environment, but cannot remove it entirely.

For maximum protection the computer hardware should be protected by a battery-backed power supply and the user trained to not switch off the power or reset the system until in a "safe" position in the system. The safest course is to disallow resetting the system until the user is returned to the MS-DOS prompt.