Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
This article explains that this error will occur if the PATH is set incorrectly in the environment file. Problem: An application comprises of ES/JCL/UDB for batch and TX series/ UDB/ MQ for the online part. The failing application is the TX series one. The RTS takes place when a transaction is triggered by the MQ monitor. The problem is the following results: Load error : file 'cobinterp.2.so' error code: 164, pc=0, call=1, seg=0 164 Run-Time subprogram not found Resolution: This error is the result of the way the PATH was set in the environment file: COBDIR=/opt/microfocus/cobol LIBPATH=$COBDIR/lib TXSeries does not expand the environment variables, therefore the RTS164 occurs. You need to expand the full environement variables, thus writing out the entire path names. Old KB# 13987
This article provides a possible solution if an error is received when running aslmfinstall from $COBDIR/aslmf. Problem: When trying to run aslmfinstall from $COBDIR/aslmf the following error messages were received: Installing AppTrack... exec(): 0509-036 Cannot load program ./aslmf/init2aslm because of the following errors: 0509-150 Dependent module libcobrts.2.so could not be loaded. 0509-022 Cannot load module libcobrts.2.so. 0509-026 System error: A file or directory in the path name does not exist. Apptrack installation complete Resolution: A suggestion may be to ensure the LIBPATH is set, as one user on AIX 5.3 kept getting this error because he was running as root. Although COBDIR was set (you must run the script from the $COBDIR directory) he had not set the LIBPATH. Once LIBPATH was set to $COBDIR/lib the
This article explains that compiler directive WRITETHROUGH / WRITETHRU is intended to write file records immediately upon running the application. Problem: When using Server Express 4.0 ServicePack 2 on RedHat ES 3, all programs are built as .gnt files and getting started via cobrun. Files to be used are defined as "line-sequential" and opened with "open extend with lock" phrase. It seems this physical "WRITE"ing into the files will only be done after a buffer is filled completely or reaching a "CLOSE" statement. Is it possible to write file records immediatly while the application runs? Resolution: Yes, compiler directive WRITETHROUGH / WRITETHRU is intended to do this. Refer to the documentation files for Server Express 4.0 also Server Express 5.0: http://supportline.microfocus.com/Documentation/books/sx40sp2/sx40indx.htm http://supportline.microfocus.com/Do
This article explains what to do when AppTrack's option 7 Current Users shows up blank but shows details in option 2 License Summary. Problem: AppTrack's option 7 Current Users shows blank even though application programs are currently running and option 2 License Summary shows current users in the "in use" column. Resolution: The first thing to check is whether a file named "apptrack.log" exists in /var/mfaslmf and has general write permissions. The AppTrack option 7 will not work unless this file exists. The file can be empty and could be created with: touch /var/mfaslmf/apptrack.log If the problem still occurs even when "apptrack.log" exists in /var/mfaslmf and has general write permissions, the problem can be resolved by rebooting the machine, which re-initializes shared memory (the ASLMF system uses shared memory for license tracking, and this problem could occur when shared memory becomes corrupted). Old KB# 13984#ServerExpress#Licensing#netexpress#COBO
This article explains how to examine executables, .int and .gnt files to determine the bitmode used to compile and run. Problem: I am installing and configuring a COBOL application on a new server and need to decide whether the default bitmode of the COBOL system should be configured to be 32-bit or 64-bit. How can I examine the existing application (executables, .int and .gnt files) to determine what bitmode it was compiled in and meant to run in? Resolution: Use the cobfile command. This is similar to the UNIX file command. This will reveal the bit mode, either 32 or 64, of an executable or object file, or of .int or .gnt or .so files, on machines and operating systems on which both modes are supported. Old KB# 13985
This article explains an unexpected Signal 4 Error RTS 115 when running a COBOL/SQL application. Problem: When running a COBOL/SQL application which uses Oracle 10G and Server Express, we are intermittantly receiving RTS 115 unexpected Signal Error. Why is this? Resolution: Animating the application revealed that the error occured in a SQL statement. Analysis of the core dump using dbx stack trace indicates the error occurred in SQLBEX, an Oracle api routine. Upgrading the Oracle Client to the exact level to match the Oracle server corrected the error. Note: For instructions on using the dbx trace refer to knowledgebase article 23886. Old KB# 13996
This article explains why, on HP/UX when trying to compile an application, the following error appears: # cob64 myapp.cbl. Problem: An RTS 115 error is returned against odbcecm when compiling an OpenESQL application on HP/UX: # cob64 myapp.cbl Server Express Embedded HTML Preprocessor Version 4.492 Copyright (C) 1984-2006 Micro Focus (IP) Ltd. All rights reserved aCC runtime: Use of "-mt" must be consistent during both compilation and linking. Execution error : file 'odbcecm' error code: 115, pc=0, call=1, seg=0 115 Unexpected signal (Signal 6) cob64: error(s) in compilation: myapp.cbl Resolution: This is an Operating System issue, which can be resolved by installing a patch to the C run-time (PHSS_34041, or the latest recommended patch which supercedes PHSS_34041). Old KB# 14017
This article explains how to analyze intermittent Signal 115 errors when using Oracle. Problem: How do you analyze intermittent unexpected Signal 115 errors when using Oracle? Resolution: Analysis of the core dump using dbx stack trace will indicate where the error is occuring. The steps taken to analyze the RTS 115 error using a core dump are as follows: The default action of the COBOL RTS is to catch the signal and report a 115 error to highlight an unexpected signal. When the core_on_error=2 runtime tunable is set in cob.cfg file, then the RTS does not catch the signal and a core file is produced instead. Create a cob.cfg file and enter: set core_on_error=2 export COBCONFIG=$Home/cob.cfg The core file is of no use without the original executable and all the shared objects it has loaded, so it must be analyzed on the same system and with the same environment variables under which the core file was produced. For example, if the application is compiled to
This article explains if there is a way to raise a trappable error when length parameter causes substring extraction to exceed the size of the source field. Problem: Compile and run the following program with COBCONFIG environment variable set to a file containing set memory_strategy=0x80000001 should cause an RTS 252 error, but the error did not occur. 01 FIELD-1 PIC X(80) VALUE ALL "*".with 01 FIELD-2 PIC X(80) VALUE SPACE. 01 SUB-1 PIC S9(04) VALUE 10. MOVE FIELD-1(75:SUB-1) TO FIELD-2. Is there a way to raise a trappable error in Micro Focus COBOL when the length parameter would cause substring extraction to exceed the size of the source field? The desire is to stop program execution if a parameter (SUB-1 in this example) would cause an invalid MOVE and hence possibly an invalid value in FIELD-2. Resolution: The memory_strategy config variable will only check overruns
This article explains why an RTS 114 error occurs when running Animator file=dispatch.gnt. Problem: We are receiving the following RTS error: Execution error : file '/opt/microfocus/cobol/dynload/animchr.lbr/dispatch.gnt' error code: 114, pc=0, call=1, seg=0 114 Attempt to access item beyond bounds of memory (Signal 11) Resolution: At this time the Animator under Server Express will not work if the machine has been started with the SMP kernel, it will only work with the normal kernel. Check the kernel with 'uname -a' . You will know that it's been started with the SMP kernel if the result looks like $ uname -a Linux cds-entw 2.4.21-32.ELsmp #1 SMP Fri Apr 15 21:17:59 EDT 2005 i686 i686 i386 GNU/Linux It should work okay if it looks like: $ uname -a Linux cds-entw 2.4.21-32.EL #1 Fri Apr 15 21:29:19 EDT 2005
This article explains how to resolve the RTS 153 error. Problem: Given an Array which uses OCCURS depending on the value of a numeric variable to determine the size of the array. The current subscript value is far less than the value last moved to the variable which controls the number of occurrences. 01 BIG-ARRAY PIC X OCCURS 0 TO 1500000 DEPENDING ON OCCURS-NUMBER. 01 SUBSCRIPTING-VARIABLE PIC 9(8). 01 OCCURS-NUMBER PIC 9(6). MOVE 1000000 TO OCCURS-NUMBER. MOVE 1 TO SUBSCRIPTING-VARIABLE. (Program terminates with RTS 153, subscript out of range). Resolution: OCCURS-NUMBER is too small to hold its maximum possible value, which is a seven-digit number. The statement MOVE 1000000 TO OCCURS-NUMBER actually overflowed the variable and was truncated. Therefore, the value of OCCURS-NUMBER is zero, due to the truncation rules for the MOVE statement. The solution
This article explains a resolution to an error during a sort operation. Problem: We are receiving an error with an application's internal SORT failing during execution. The error message is: Execution error : file 'extsm' error code: 114, pc=0, call=1, seg=0 114 Attempt to access item beyond bounds of memory (Signal 11) The COBOL syntax was SORT sort-file-name, USING data-file-name GIVING data-file-name. Resolution: In reviewing the application source code's SORT statement, there is a size difference between the USER-SORT-FILE and those of MY-FILEs. SORT USER-SORT-FILE ASCENDING KEY........ USING MY-FILE-IN, GIVING MY-FILE-OUT. The difference is that USER-SORT-FILE is 101 bytes and MY-FILEs are 105 bytes. This size difference is being trapped at runtime as the USING MY-FILE-IN is opened and it's data passed to the SORT record. This size difference causes an out-of-bounds error, a 114 abend, as it attempts to move it into the SORT record buffer. Acc
This article suggests a change of method when generating a COBOL application and receiving an RTS 200 logic error. Problem: Error code 200 runtime system internal logic error (in ldobj.c;9.1line 376) is received when COBOL application compiled and linked (cob -x), failing to run on the machine. The same application compiles and runs fine on another system. We understand that RTS 200 errors are usually memory related problems, but the machine is at 99% free and has 4 GIG of memory. Why are we getting this error message? Resolution: According to the suggestion found in the Server Express demo, sharemem, changing the method of generating this application by creating callable shared objects (-z) rather than static-linked executables (-x) should resolve the runtime error. Old KB# 14010
This article explains a simplified test case resulting in the 154 PERFORM nested too deeply error message. Problem: We received the following error when the program was compiled to .gnt or .so or .exe (not .int), and then only when the PROFILE compiler directive was used. Execution error : file 'b' error code: 154, pc=0, call=1, seg=0 154 PERFORM nested too deeply Following is a simplified test case: 000001 WORKING-STORAGE SECTION. 000002 01 WS98-COUNT PIC S9(4) COMP VALUE 0 SYNC. 000003 000004 PROCEDURE DIVISION. 000005 A-MAIN SECTION. 000006 A-00. 000007 PERFORM B-HANDLE-INSERT-MODE. 000008 PERFORM Z-FINISH. 000009 000010 B-HANDLE-INSERT-MODE SECTION. 000011 PERFORM 500 TIMES 000012 PERFORM F-GET-NEXT-ACCOUNT 000013 END-PERFORM. 000014 DISPLAY "F-EXIT 1 -- " WS98-COUNT. 000015 display " End 1st Loop ". 000016 PERFORM 500 TIMES 000017 PERFORM F-GET-NEXT-ACCOUNT 000018 E
This article explains why the rebuild command is generating a 191 Terminal type not defined error. Problem: The rebuild command in Server Express is a tool that can validate, recover, or convert data files. For a quick start using rebuild, enter rebuild on the command line, with no parameters. It will display a usage screen that summarizes the options. However when we did this, the following error occured: Execution error : file 'ADIS' error code: 191, pc=0, call=1, seg=0 191 Terminal type not defined Why is this? Resolution: Rebuild uses the ADIS module for screen I/O. ADIS requires that the TERM environment variable be set to a valid terminfo entry. The solution is to set (and export) the TERM environment variable to a value such as "vt100" or "ansi" or "vt220" or "xterm", or to a value that best represents the terminal emulation of the terminal window currently in use. If you are
This article briefly explains that 9/199 File Status Error means that the runtime system does not understand a status coming in from the operating system. Problem: 9/199 file status or RTS 199 A system call has returned an unexpected errno which is not expected. 9/199 errors are generated when a file handling call fails and the operating system returns an error that does not get translated to a file status value, as it is expected. How can the error number be determined and what does the error indicate? Resolution: Micro Focus COBOL file handle will handle expected values for errnos. The list of errnos is located in /usr/include/sys/errno.h. or /usr/include/errno.h depending on the platform. Errno.h is a table of error numbers and their meaning. Animator can be used to determine what statement is causing the error. File Status Error 9/199 is a legitimate error. It means
This article explains that an OBECT REFERENCE defined in working storage that is used by more than one thread, or passed between threads may cause this error. Problem: We are running an application with COBOL and JAVA and after a period of time the following runtime exception occurs: [java] Exception 24 not trapped [java] the class nilobject (object reference: 00000003) Does not understand: close Hit T to terminate program. Hit any other key to continue. This error happens as a threaded application. If it is run as a single thread, the error does not happen. Resolution: The most likely cause of the problem is an OBECT REFERENCE defined in working storage that is used by more than one thread, or passed between threads. If one thread finalizes the object and another thread then attempts to invoke a method on it, such as 'close' you will see the error that was enco
This article explains that increasing the kernel parameters for the HP/UX operating system will resolve the Animator load failure. Problem: When using Q C [Query Cursor] or Q E [Query Enter variable] the Animator window closes and the application receives the error Unable to load program: Load error: file 'XXXXXX' error code: 177 pc=0 call=1 seg=0 177 attempt to cancel active program This error occurred on a HP/UX UNIX platform. Why is this? Resolution: The issue regarding Animator load failure can be resolved by increasing the kernel parameters for the HP/UX operating system. A large executable which includes many database access modules might develop a large memory footprint, not only because of the large file I/O but because the database access routines are linked into the executable (even when the database is not accessed). Review the settings for data size and stack size. Configure t
This article explains how to redirect STDOUT and STDERR to the same LOG file when executing an application. Problem: How do you redirect STDOUT and STDERR to the same LOG file when executing an application? In this sample program, it writes on the STDOUT the display statements and it generates an error because of a not found program. What can be done to avoid this? PROCEDURE DIVISION. perform 2 times display "To Stdout" end-perform *> msg to STDOUT call "DOERROR" *> msg to STDERR Resolution: To redirect STDOUT and STDERR to the same LOG file, use the following: On UNIX: cobrun programname >ABC.log 2>>ABC.log OR programname >ABC.log 2>>ABC.log if linked program On Windows: set COBSW= S run programname >ABC.log 2>>&1 OR programname >ABC.log 2>>
This article explains how to resolve a cobrun error when accessing a CGI program. Problem: When executing the CGI example program 'pizza' we followed all the steps, and got to the "Hi. Welcome to the Server Side Persistence Demo" screen, as expected. However, when we press the Press here to start button, we get this message: cobrun: Permission denied Resolution: There are few possible causes for this error message, and they are: No usercgi.cfg exists in the same directory as the installed cobrun triggers. The user attempting to access the CGI program is not allowed access; that is, the user option in usercgi.cfg is set to "access=denied". The user attempting to access the CGI has root permissions, which is not allowed. Possible solutions include: Create a usercgi.cfg file. Set the correct user access option. User must log in under a different ID. Old KB# 13981
This article explains the various reasons why an RTS 115 Unexpected Signal (Signal n) might be generated. Problem: If the runtime system is not expecting the signal at this time, or never expects to catch the signal, then the default runtime system signal handler will produce the runtime error message (where n is the signal number): Execution error : file 'name' error code: 115, pc=p, call=c, seg=s 115 Unexpected Signal (Signal n) Resolution: The COBOL Runtime System posts signals handlers for various signals, including all signals whose Operating System default action is to cause the process to terminate. This allows us to clean up before the process terminates and allows us to achieve other COBOL functionality. When a signal is generated, it is processed using the list of prioritized posted signal handlers. If the Operating System default action is to cause the process to exit, t
This article explains what to do if an incompatible version of the system assembler is invoked. Problem: We are receiving a 114 error when running an executable build using the cob command. A truss trace of executable shows the error Incurred fault #6 FLTBOUNDS and the failing executable is a custom created version of the run time system: cob -e "" -x -o ./myrts This error occurs because an incompatible version of the the system assembler is being invoked. To ensure that the correct version of the 'as' command is being used, look at the file $COBDIR/docs/env.txt. In this file the expected assembler version is specified along with the command that can be used to get the version information. Compare the assembler version information on the failing system with the version identified in $COBDIR/docs/env.txt. In some cases there is more than one 'as' command on your system, therefore it is important to place the directory name for t
This article resolves an error by removing references to a previous product. Problem: We have recompiled an existing OCDS application with Server Express 4.0, and we are getting the following error: Execution error : file '' error code: 115, pc=0, call=1, seg=0 115 Unexpected signal (Signal 6) Resolution: Examination of the environment setting showed that there was still the OCDS product path in PATH, and the library path. Removing all references to the previous product will resolve this error message. Old KB# 13982
This article describes terminal emulation issues while editing a screenset created with the dialog systems utility (ds). Problem: While editing a screenset created with the dialog systems utility (ds), it failed with error 114 on file 'SSP'. Is the screenset itself corrupted, or there something else going on? Resolution: The problem is most likely caused by terminal emulation issues. The ds utility uses the ADIS module and full screen formatting. It depends on the TERM environment variable being set to a terminfo entry that matches the characteristics of the terminal emulator being used and contains correct entries describing the terminal capabilities. Check to see if TERM is set to "xterm" and if there is a version of "Putty" running as the emulator. The actual "xterm" terminfo entry does not contain sufficient or accurate capability descriptions to match the version of Putty. This can be resolved by using the PowerTerm emul
This article explains what to do if the message "The license key entered is not valid" occurs when installing a license key using mflmcmd. Problem: When trying to install a license key using mflmcmd, we received the error message "The license key entered is not valid" even though the final two characters with the plus sign were successfully entered (in this case, the "AI "), and even though the serial number and license key were valid. Why is this? Resolution: This error is caused by running ./lmfdbrecover from within $COBDIR/lmf and then starting the License Manager with ./mflmman within $COBDIR/lmf. Subsequently, ./mflmcmd will not accept licenses. The lmf subdirectory of COBDIR is not meant to be an official location for the License Manager. It exists only as a set of files, like a template, to be copied to an official location. The script lmfinstall in $COBDIR/lmf is supposed to perform these copies. You could get into trouble when trying to use $COBDIR/lmf a
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.