Created On:  23 September 2011

Problem:

An application compiled with Net Express accesses files on a Novell Netware drive without a problem.  After converting the same application to Visual COBOL, any OPEN of a file on the Netware drive results in a file status 9/181 being returned.  File status 9/181 indicates a parameter error in a call.  Why is this happening?

Resolution:

In Visual COBOL we changed the default values for the following two file handler configuration options so that 64-bit file handling would be supported by default.

In Net Express the default was to use 32-bit file handling.

IDXFORMAT   = NX=4 - VC=8
FILEMAXSIZE = NX=4 - VC=8

So in Visual COBOL when a file is opened, a 64-bit flag is being passed to the CBL_OPEN_FILE run-time routine whereas in Net Express a 32-bit flag is passed.

Novell Netware drives behave like 32-bit drives and can therefore only handle files up to 4GB in size.

So when Visual COBOL attempts to open a file using 64-bit flags on a Novell Netware drive the operation fails with a file status 9/181 which means invalid parameter. (the 64-bit flag)

So in order to access files on a Novell Netware drive in Visual COBOL you will need to set the following two options in the file handler configuration file.

[XFH-DEFAULT]
IDXFORMAT=4
FILEMAXSIZE=4