Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
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: 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: 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: When trying to link a program with Server Express on Solaris a number of messages are printed: ld: warning: global symbol '' has non-global binding: (file /opt/lib/cobol/lib/libcobrts.so value=LOCL); ld: warning: global symbol '' has non-global binding: (file /opt/lib/cobol/lib/libcobcrtn.so value=LOCL); ld: warning: global symbol '' has non-global binding: (file /opt/lib/cobol/lib/libcobmisc.so value=LOCL); Resolution: These warnings can be safely ignored. When Micro Focus creates libcobrts it is necessary to "hide" symbols. Solaris does not provide options to do this so the attributes of symbols are changed in the dynamic symbol table. The symbol names are NULL, hence the '' in the error message. Old KB# 7231
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: 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: Assembler messages: Error: Can't open Z for reading. Z: No such file or directory Z:0: Error: Can't open DA1.1 for reading. Z:0: DA1.1: No error cob32: error(s) in assembling /var/tmp/cobAAAa29655/ldtab.s Resolution: Check to see if you have the Operating System's ANSI C compiler and GCC compiler installed. The GCC compiler also installs its own assembler and will reference some of its own header files for C instead of using the Operating System's. So ensure that it uses the right assembler, the Operating System's assembler, either by un-installing the gcc components or ensure that the gcc components are at the end of PATH searches and that it looks for the Operating System's ANSI C compiler first. Old KB# 7214
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: 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: AIX customer upgraded to Server Express 4.0 and got this error when running a CICS application. The actual error is caused by a STRING...DELIMITED BY <literal> statement. This does not happen when the program is compiled to .int, only .gnt and executable. Resolution: A STRING statement is optimised to use the system commands memmove, memcmp and memcpy. However these are not picked up automatically in Server Express 4.0 and 4.0 SP1. The solution is to add entries in the liblist for executable programs (which Micro Focus did in SP1) and to rebuild the runtime, adding the appropriate programs with the -I (upper case letter between 'H' and 'J'), e.g. -I memmove -I memcpy -I memcmp. Unfortunately this isn't the whole story! As CICS works by demanding that everything is compiled into it, you also need to edit the cicsmkcobol script and run it. This rebuilds CICS and the Micro Focus runtime so that they work together. Micro Focus ca
Problem: A customer encountered this error when trying to open a relative file. There was an open on an I/O relative file and then in a subsequent subprogram a further open on it which results in it being already locked hence the 9/065 (or 9A). The customer then pointed out that this worked without problems in OCDS so why not in Server Express? Resolution: File locking in OCDS did not take into account the fact that you might have two opens on the same file and so did not handle locks between the two opens. Under Server Express this is correctly handled. However, you can put the incorrect OCDS locking back in. For compatibility with OCDS you can use the same_proc_excl_detection tunable. same_proc_excl_detection The same_proc_excl_detection tunable has been superseded by the intra_process_record_locking tunable. However, it can still be used for backward compatibility purposes. Note that we recommend that you
Problem: If you are migrating from an Object COBOL Developer Suite (OCDS) v4.1 release to a Server Express v2.x release, then there are some points you should have keep mind. Resolution: Source Code from OCDS should compile cleanly with Server Express. So, you should only need to move over your source files, recompile, and re-link your application. However, as you can no longer link your application as a static executable, you might need to change how your application is built. The following describes some of the changes pertinent to those moving applications from OCDS to Server Express. Cob flags now obsolete in Server Express: There are some cob flags that are no longer supported with in the Server Express product. These are: Cob flag Description -B mode[=lib] Select the system linker binding mode B mode[=lib] Select the system linker binding mode and pass to system linker after COBOL libraries -F Create an RTS quickly F
Problem: It would be useful if there were a way for Micro Focus COBOL to retrieve the user-id from the UNIX operating system -- the same user-id that the UNIX "id" command would show. Resolution: Micro Focus COBOL can call C routines directly, if the C routines have been linked with the COBOL run-time system. A programmer would use the CALL statement, and put the name of the C routine in quotes. The UNIX system library "libc.a" (or "libc.so") has already been linked with the run-time system, so COBOL can directly call any of the UNIX system calls contained in "libc". On most platforms, the intro(2) man page shows a complete list of these calls. getuid(2) is a system call contained in "libc", so COBOL can call it directly. Consider the following program: 01 uid-ws pic 9(8) comp-5. &nb
Problem: Programs that accept data from command line return different results when run from cobrun or cobjrun. ex. cobrun proga parm1 With cobrun, 'parm1' is returned when doing an ACCEPT ws-var FROM COMMAND-LINE. with cobjrun, 'proga parm1' is returned instead. Resolution: This is the expected behavior...The problem is that when using cobrun, the command line is being passed directly to the COBOL run-time system. When using cobjrun, the command line is passed to the JAVA Virtual Machine. In this case, the JVM turns around and creates a new command line to invoke the COBOL run-time system. When using cobrun, argument 0 is the program name itself and your command line parameters start with argument 1 to argument n... When using cobjrun, argument 0 becomes the cobrun command inserted there by the JVM to invoke your COBOL program, argument 1 becomes the program name and your command line parameters start with argumen
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: 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: 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: When Animating a program, a 191 error ('Terminal type not defined') error occurs when making a call to something like ADIS, even though the terminal type has been defined (by setting TERMINFO) Resolution: This error only occurs if a customer is using a different terminfo directory or has deleted some files from the Micro Focus provided one. When a process is being debugged by Animator, if the application then has to display a screen, there are of course two screens running; these are referred to as the 'Animator' and 'debuggee' screens. If they share the same terminal, then the TERM setting of the debuggee process is set to "mfdebug". The application will, therefore, search for an 'mfdebug' terminfo; if the m/ folder and/or the files below it cannot be found in the terminfo structure, this error will occur. Solution: if you are using a different terminfo, copy the m/ directory and its contents into it
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: Setting a external runtime switches that can be used within COBOL applications. Resolution: The COBOL program would be coded as follows: IDENTIFICATION DIVISION. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. switch-0 ON is test-switch-0 switch-1 ON is test-switch-1 switch-2 ON is test-switch-2. DATA DIVISION. WORKING-STORAGE SECTION. PROCEDURE DIVISION. 100-process. &nbs
Problem: When migrating from Object COBOL Developer Suite to Server Express you may encounter a compilation error where there is a 77-level field with subordinate level entries. Eg 77 entry-field. 05 entry-field-1 pic x(10). 05 entry-field-2 pic 99. In some versions of Object COBOL this did not return a compilation error but will in all versions of Server Express. This form of entry is strictly not legal in COBOL. By definition a 77-level entry is a single level elementary field with no subordinate level entries. Resolution: Change the 77-level entry to a 01-entry. Eg 01 entry-field. 05 entry-field-1 pic x(10). 05 entry-field-2 pic 99. This will have no impact on the data field or any associated code. Old K
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: 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
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.