Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Problem: Customer has both the development product and Application Server on the same machine, installed in two separate locations (cobol and cobolas) They have five development licenses and two hundred Application Server licenses installed, but process is running out of available licenses and failing with an A147 system abend. Resolution: Application Server licenses are recorded against a specific installation path. The mfaslmf userlog showed that the application was trying to use the five development licenses rather than the Application Server licenses. This was ascertained by examining the error messages in the userlog: No license AS /usr/lib/cobol This showed that the environment was pointing to the development product (cobol), rather than the Application Server installation (cobolas). Firstly check that COBDIR, PATH and LD_LIBRARY_PATH/LIBPATH/SHLIB_PATH are pointing to the correct product location. Check any .profi
Problem: Using Informix File handler for Informix files instead of the Micro Focus file handler. Basically, the number of open files increases to a stage where some processes hangs and when it reaches the open file limit, it crashes. Common files are not closing, while all the other files are closed, which causes the number of open files to increase. eg: 1. Program 1 opens files A, B, C and D 2. Then Program 1 calls Program 2 which open files X, Y, A and B. 3. Program 2 finishes it process, close files X, Y, A and B and exit program. 4. Program 1 continues it's process, at this moment Files A and B are opened twice in the system. 5. When this happens several times, the number of files opened by a process exceed the limit and the program crashes with Informix error 24. Resolution: Try the following tunable: multi_close_limit Syntax: set
Problem: Installing Server Express v2.2, gets message about AIX version saying 'product was built on AIX 4.3.3 but you are running AIX 5.2.0, please confirm you want to continue'. Should he continue? Resolution: Yes. This is normal and expected in this case, he was installing the 32-bit version of Server Express v2.2. Old KB# 7213
Problem: The behaviour of VARCHAR2 host variables have changed in Pro*COBOL v8.0 You have VARCHAR2 host variables defined as PIC X(n) and are having problems with tests/compares in your WHERE clause after upgrading your version of Oracle. Resolution: Oracle have a configuration option for Pro*COBOL to revert back to the old behaviour. In the $ORACLE_HOME/precomp/admin/pcbcfg.cfg file, add the following: PICX=VARCHAR2 From now on by default, PIC X(n) host variables will no longer have the trailing spaces truncated unless you have this configuration option. Old KB# 7280
Problem: When using the directive OUTDD(file n) where n is a value less than 95, for example 80, and when using DISPLAY string UPON SYSOUT, the contents of string are split into several lines, where each line length is much less than the value of n and keeps varying (decreasing). Resolution: This issue has been fixed with the latest fixpack for Server Express 4.0 SP1. There is also a workaround: OUTDD($SYSOUT 95 L A) or OUTDD($SYSOUT) - the default values are 132 L A. If you really need the lines split at 94 or less (80 for example), generate the file so no line is split by defining the record length to the maximum value that can be found, and it should be very easy to write a little program that splits them to 80: ... fd sysoutfile. 01 sysoutline pic x(maxlinelength). fd sysout80file. &n
Problem: When migrating from Object COBOL Developer Suite (OCDS) to Server Express, linking a Character Dialog program, some objects cannot be found. Like for example: DSC.o DSCOMP.o DSCRUN.o DSCVALRN.o DSDLGINI.o DSERRHAN.o DSFLD.o DSGETSS.o DSLCONV.o DSNLSRTN.o DSRUN.o DSTERM.o DSTRACER.o DSUSRCAL.o DSUXSYSP.o DSVRSCRN.o (These files were in $COBDIR/src/dialog under OCDS). Resolution: On Server Express these files are not needed (they are built into the runtime). All you have to do is to remove all references to those files, and to relink. Old KB# 7218
Problem: After migrating an application from VAX to Solaris UNIX and Server Express, one may notice that the last byte in some data items in his output files appeared differently than it did when the program was run on the VAX. Resolution: For numeric data items of usage DISPLAY, the sign is encoded in the last byte (unless the SIGN TRAILING SEPARATE clause is specified for the item). There are two popular conventions for encoding the sign in the last byte: the ASCII convention and the EBCDIC convention. Micro Focus uses the ASCII conventin by default, and apparently VAX COBOL uses the EBCDIC convention. The compiler directive named SIGN can be used to change Server Express's behavior in this regard. For compatibility with the VAX, the following option can be specified on the "cob" command used to compile the programs: -C SIGN=EBCDIC Old KB# 7221
Problem: What is the guideline of using mfsort or mfsort 64 ? My application is built as 32Bit mode but it is possible to run mfsort under COBMODE=64. Does mfsort64 have more capacity or performance than mfsort with COBMODE_32 ? Resolution: There is no difference between mfsort and mfsort64, other than one being 32-bit and the other 64-bit. Old KB# 7244#AcuCobol#netexpress#RMCOBOL#ServerExpress#COBOL
Problem: The client/server binding demo at $COBDIR/demo/csbind is coded so the file that is read by the client is always saved at the server with a fixed file name, "netxcpfl.dat". Because of this limitation, only 1 client can be run at the same time and successfully create the corresponding output file in the server. Resolution: The version of netxcli.cbl and netxserv.cbl attached have been altered slightly so if the user enters the name of the output file at the client, it is sent to the server and used, otherwise the default name "netxcpfl.dat" is used. Also, when the file has been read completely and the server is still running, there is a new pause in the client. Attachments: netxdemo.zip Old KB# 7251
Problem: After installing a new version of our COBOL compiler the breakpoints in Animator between starts of the anim. gets lost Resolution: This is normal behaviour with Server Express as per the documentation, in Server Express an aif file is not created if you use COBSW= A. To preserve the aif file you must use the COBAIFNAME environment variable. export COBAIFNAME=myprog Old KB# 7232
Problem: The new HOSTARITHMETIC compiler directive available in Server Express can guarantee decimal truncation when ON SIZE ERROR is not specified. Resolution: Does 9 1 = 0? If a data item can hold only one digit (PIC 9), and currently has the value 9, what should be the result of adding 1? If the resulting value of an arithmetic expression is larger than the maximum value the target item can store, then a "size error" condition exists. If the ON SIZE ERROR clause is present, then no value is stored in the target, and the imperative statement(s) in the clause are executed. If no ON SIZE ERROR clause is present, then the arithmetic results are undefined. This rule is documented in the ANSI standard, as well as in Micro Focus and IBM documentation. Thus, the result of the following code fragment is undefined, and it is a programming error to rely on any specific result: 01 num-ws pic 9 value 9. add
Problem: Problems converting a fixed length line sequential file to variable length idxformat4. The input file is LSEQ 662, fixed length. The output file is mf4 format variable length 662-4089. Using the command: rebuild infile, outfile -o:LSEQ,IND -t:mf4 -k:1-48 -r:v662-4089 getting the error message 'REBUILD aborted - Invalid key specification - key not contained in record'. The -r option specifies the record format. However, the input file is fixed 662 and the output file is variable. How do I specify the input and output record formats in the same command? Resolution: Sequential files do not have header information so the organization and record length must be specified. There is only one keyword for record length (-r) and it is not possible to specify a different record length on the input and output files. To get around this, run the conversion in two steps: Try running the conversion from lseq to
Problem: If you have installed Net Express 4.0 or Server Express 4.0 with the Enterprise Server option, then the CCITCP2 program will have been replaced by a trigger program that calls the Micro Focus Directory Server (MFDS) program. As far as CCI users are concerned, the Directory Server serves the same purpose as CCITCP2 and they behave in exactly the same way. Each machine that runs the Enterprise Server option must have the Directory Server program running on it. MFDS is a complete replacement for CCITCP2, is backwardly compatible with CCITCP2 and supports all the same command line options and syntax and all other functionality. Resolution: There are two types of servers controlled by the Directory Server Micro Focus Enterprise Server This is a server that provides an execution environment for COBOL programs running in response to service requests issued by several different client types. Micro Focus CCI Server This is a server that
Problem: How to modify the default behaviour for LINE SEQUENTIAL files. Resolution: Various aspects of the File Handler's behaviour are configurable. You can alter the behaviour by setting various options in the File Handler configuration file (EXTFH). By Default the File Handler truncates trailing spaces from Line Sequential and Line Advancing Files. The behavior of truncating spaces can be altered by using the following File Handler option. STRIPSPACE When performing WRITE or REWRITE operations on line sequential or line advancing files, the STRIPSPACE option determines whether to remove trailing space characters. STRIPSPACE={ON|OFF} Default: ON Old KB# 7243#COBOL#RMCOBOL#AcuCobol#ServerExpress#netexpress
Problem: A situation can exist where it is not possible to create an executable using "cob -x". The error occurs even when testing one of the simple demonstration programs that are furnished with the product, for example: mkdir /tmp/test cp $COBDIR/demo/debug/pi.cbl /tmp/test cd /tmp/test cob -x pi.cbl The system linker "ld" reports not being able to find a library named "cobstat" or "-lcobstat". The exact wording of the error message depends on the bit mode (whether 32 or 64), but always mentions "cobstat". This problem is specific to HP/UX and does not occur on other UNIX variants. Resolution: This problem is caused by the environment variable LDOPTS being set as follows: LDOPTS="-a shared" This causes the system linker to search only for shared libraries (.sl),
Problem: cobscan64 runs the Scan64 utility. The Scan64 utility enables you to check programs for pointer violations. You use Scan64 to help you migrate applications from 32-bit to 64-bit COBOL systems. If you have developed COBOL programs using the Server Express 32-bit development environment that you want to migrate to the Server Express 64-bit development enviroment, you should run Scan64 before compiling and running them with the 64-bit system development environment. Resolution: Note: Scan64 cannot detect invalidly-sized data items provided to prototyped CALL statements that require pointers. You can only use Scan64 on applications that have been compiled to intermediate code. The format of the command is: cobscan64 [-v] [-m] [-ttfile [-ltlist]] filename where the parameters are: -v Internal addressing information is displayed. This can be useful to our support  
Problem: After copying executables from a server which was running Object Cobol Developers Suite to a new server with Server Express the application got this library error 0509-150 Dependent module libcobol.2.0.a(shr.o) could not be loaded. 0509-022 Cannot load module libcobol.2.0.a(shr.o). 0509-026 System error: A file or directory in the path name does not exist. Resolution: There are a number of libraries which were used under OCDS which are missing completely from the Server Express product. Some of the missing libraries are: $(COBDIR)/coblib/libcobol.a $(COBDIR)/coblib/libscreen.a $(COBDIR)/coblib/libosx.a $(COBDIR)/coblib/libasmcrtn.a $(COBDIR)/coblib/libsupp.a $(COBDIR)/coblib/libcobstat.a One of the differences between OCDS and Server Express is that Server Express has a completely different product shape. The names of the libr
Problem: Server Express error message: dependent module libcobol.2.0.a can not be loaded - problem occurs after migrating from Object COBOL Developer V4.1 to Server Express. Resolution: Here is an more complete explanation of the errors: 0509-150 Dependent module libcobol.2.0.a(shr.o) could not be loaded. 0509-022 Cannot load module libcobol.2.0.a(shr.o). 0509-026 System error: A file or directory in the path name does not exist. There are a number of libraries which were used under Object COBOL which are missing completely from the Server Express product. Some of the missing libraries are: $(COBDIR)/coblib/libcobol.a $(COBDIR)/coblib/libscreen.a $(COBDIR)/coblib/libosx.a $(COBDIR)/coblib/libasmcrtn.a $(COBDIR)/coblib/libsupp.a $(COBDIR)/coblib/libcobstat.a One of the differences between Object COBOL and Server Express is that Server Express has a completely different product shape. The names of the libraries shipped with the product have c
Problem: You may encounter a File Status error 9/068 (record locked) on reads of records in an INDEXED file that you know are being read by other processes but you are certain are NOT being LOCKed. For example, assume several processes are all running the same program. The program has LOCK MODE MANUAL set in the SELECT clause. It opens the file I-O, sets the record pointer using START NOT LESS THAN and then READ's NEXT through the file with out any locking on the reads. Provided there is not a different program accessing that file there should NOT be any record locking take place, but it can. Resolution: Specify the NODETECTLOCK compiler directive. NOTE: This error does not occur if the file is opened INPUT This did not behave in this manner in Object COBOL Developer Suite The lock
Problem: Compiler directive HOSTARITHMETIC guarantees decimal truncation on arithmetic overflow when ON SIZE ERROR is not specified. Does 9 1 = 0? If a data item can hold only one digit (PIC 9), and currently has the value 9, what should be the result of adding 1? If the resulting value of an arithmetic expression is larger than the maximum value the target item can store, then a "size error" condition exists. If the ON SIZE ERROR clause is present, then no value is stored in the target, and the imperative statement(s) in the clause are executed. If no ON SIZE ERROR clause is present, then the arithmetic results are undefined. This rule is documented in the ANSI standard, as well as in Micro Focus and IBM documentation. Thus, the result of the following code fragment is undefined, and it is a programmatic error to rely on any specific result: 01 num-ws pic 9 value
Problem: What is the purpose of .hnf files, which can be found in $COBDIR/demos. Resolution: The files are for use with Hyhelp, the Micro Focus help system. The ones supplied are used within Editor and Animator. Old KB# 7261
Problem: Two programs use the same file . The first opens the file only to read , the second opens the file to read and write . Some times the second displays the file-status 9/65 , and the first program runs always fine Resolution: If the program uses the verb : OPEN INPUT FIC1 To share this file , it is necessary to put into the file of the configuration of the file handler ( extgh.cfg) the following line : OPENINPUTSHARED=ON Old KB# 7234#ServerExpress#netexpress#RMCOBOL#AcuCobol#COBOL
Problem: The Object COBOL Developer Suite (OCDS) manual states that if the HOST-NUMCOMPARE compiler directive is used it MUST have a value setting of 1 or 2. (e.g $set HOST-NUMCOMPARE"1"). What is not stated is that if no value is set (i.e. $set HOST-NUMCOMPARE) it assumes the same behaviour as if HOST-NUMCOMPARE"1" were set. The Server Express manual make no mention of the values 1 or 2 being required. It states that the allowable settings are either NOHOST-NUMCOMPARE (default) or HOST-NUMCOMPARE. However, the behaviour for the setting $set HOST-NUMCOMPARE (without 1 or 2 set) differs in that in Server Express it assumes the same behaviour as if NOHOST-NUMCOMPARE were set. Resolution: To get the same behaviour in Server Express as in Object COBOL Developer Suite for the setting: If you have the following set in Server Express: $set HOST-NUMCOMPARE you should try the setting: $set HOST-NUMCOMPARE"1" e
Problem: When using Rebuild, you may get the following error: Error during sort operation: 9/007 Resolution: The error code 9/007 is an extended file handler error code informing you that the disk space was exhausted during the build. Rebuild uses a series of temporary files during the process, the exact number of which is determined by the complexity of the index. The error you received is simply stating that you have run out of room on that particular drive. What you can do is use the TMPDIR environment variable to specify another location with sufficient space as the work area for temporary files. Old KB# 7237#RMCOBOL#AcuCobol#ServerExpress#netexpress#COBOL
Problem: Customer saw references to both extsm and extsmlfs in the Knowledge Base and wanted to know what the difference was between them. Resolution: extsm is the 'default' module; extsmlfs module was first introduced with Object COBOL Developer System. With that product Micro Focus did not make large file support the default, and so we provided a second version of the external sort module which supported large files. See the extract from the Programmer's Guide to File Handling from OCDS 4.2: "10.1.3.1 Large Indexed Files By default, the file handler can handle files that are up to a maximum of 2 Gigabytes in size. However, if you need to create larger indexed files, you can use the IDXFORMAT Compiler directive to create IDXFORMAT"8" files. These files comprise a single file (as opposed to the usual .idx and .dat files). Even with IDXFORMAT"8" files, however, the COBOL run-time system currently imposes a limit on file size of 2 Gigabytes. To enable you to
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.