Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
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 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 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 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 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 how to find where in the application an error may be occurring. Problem: When running an application the error 153 Subscript out of range is received. Is it possible to find out where in the program is the error occurring? Resolution: A subscript which you have used in your program is out of the defined range, that is, it is either less than one or it is greater than the number of occurrences of the item. The resolution is to recode the program, although it is difficult to isolate where the error is occurring. Look at the example program below: subscript.cbl working-storage section. 01 ws-1 pic x(5) occurs 20. 01 ws-2pic 99. procedure division. move 21 to ws-2. move "hello" to ws-1(ws-2). stop run. Notice that ws-1 occurs 20 times, but the program is trying to move "hello" to the 21st occurrance, hence the 153 error. The easiest way to find the error is to compile the program for ani
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
This article explains how to identify a problem statement in a program. Problem: When running a production program the following error occurs: execution error : file '/home/prd/bin/appgm.int' error code: 163, pc=328c, call=1, seg=0 163 Illegal character in numeric field Is there a way to identify the problem statement in the program? Resolution: To find the area in the program where the error is occurring make sure that the program has a corresponding .idy file. The .idy is produced at compile time when the -a flag is used for .int's or -g for all other formats (for example, .gnt, .o, -so, executable). To create a listing with a cross-reference showing the offsets run the cobfflst command for the COBOL program involved. To get this output go to the directory containing the .idy file for the program and run the cobfflst command. Syntax: cobfflst <infile>[.int] [<listfile>] For example if the program getting the error is test163.c
This article explains the message "LMF 006 You are not licensed to use this product or version". Problem: After new licenses were installed we received the error message "LMF 006 : You are not licensed to use this product or version" at compile time. There is definite proof that the licenses are installed. Why are they not being found? Resolution: This situation can occur if there are multiple mflmf directories. Best practice is to have only one license directory that is not underneath any COBDIR. The latest version of the LMF software will always run older versions of the product. If a new version of Server Express is installed, that version's License Manager should be used. Either overlay the existing mflmf directory or create a new directory and enter all old and new keys, then remove the old mflmf directory. Ensure that all licenses are installed in the mflmf directory that is pointed to by the start-up script /etc/mflmrcscript. To find this directory: Is
This article explains how a Net Express revoke key is generated to deactivate the product. Problem: How is a Net Express revoke key generated in order to deactivate the product? Resolution: From the Windows Start menu, click ALL Programs > Micro Focus Net Express > Configuration > License Management System. The License Management System Configuration window should appear. Check your product and its components. Click Revoke license. Using the generated license key, go to the Licensing Solution web pages at http://supportline.microfocus.com/licensing/LicensingHome.asp to generate your own product revoke/deactivation key.Old KB# 13967#COBOL#netexpress#Licensing
This article explains what is involved in transferring an Application Server license from one computer to another. Problem: What is involved in transferring an Application Server license from one computer to another? Resolution: Transferring an Application Server license from one computer to another depends on the setup access to runtime and\\or licenses. If the license database is installed on a server, you need to point a client to it, setting ASLMFNET=\\\\server\\sharename pointing to the server where the license resides. If the runtime and license is installed directly on a users machine, then it must be uninstalled from the old machine and reinstalled on the new machine before running APPTRACK to install the license number. However, if you are running static EXEs and just need the license on a client machine, simply create a directory and put the following files in it (these can be copied from the Application Server CD): prodfile semfile apptra
This article explains how to resolve the error message "Unable to add licenses to the security key" in License Server 4.0. Problem: When inserting a Response key into the License Server, we received the error message "Unable to add licenses to the security key". How is this resolved? Resolution: A possible reason for this error is that the IUSER_servername (where servername is the actual name of the machine) entry in the server Admin group is not set to Power User (or even better, Administrator). This is required because Microsoft IIS needs to have at least Power User privileges to be able to add its entries to the registry since Microsoft has tightened up on the registry access in Windows. The steps below should resolve the matter: Log on with full administrator privileges. Go to Control panel. Double click the administrative tools icon. Double click the computer management icon. Expand the "Local users and groups" entry. Expand the us
This article explains how a Net Express reset key is generated to reactivate the product after a problem. Problem: How can a Net Express reset key generated to reactivate the product after a problem? Resolution: Within a DOS command window, navigate to the product's \\base\\bin directory. Enter the command PROTCFG /FORCE_RESET. The License Management System Configuration window appears. In the License Management System window, click the appropriate check box to select your product and components. Click REQUEST RESET License. Using the generated license key, go to the Licensing Solution web pages at http://supportline.microfocus.com/licensing/LicensingHome.asp to generate your own product reactivation key. This will provide the ability to reset the product license within 30 days. Use the response key generated from the License Solution web pages to activate the product. Reactivate the product. Old KB# 13968#Licensing#netexpre
This article explains how to set directives specifically for individual build types. Problem: Is there a way to set directives specifically for individual build types? In other words, how to set directives specifically for Release and others for Debug? Resolution: Here are the steps to accomplish this: Go to Project | Types of Build... Select Debug under Types. Click on the Change button. Add directives to Build directives field by leaving a space between them. Click on the OK button. Select Release under Types. Repeat steps 3 through 5. Click on the Close button. Note: The above settings are per project. Old KB# 13957
This article addresses whether there is any effect on a Net Express license after renaming a server post-migration from Windows 2000 to 2003. Problem: We are migrating from Windows 2000 to a Windows 2003 server, and want to know if CLU09ALL is applied, will renaming the server cause the license to be corrupted when it is in evaluation mode or full license mode? Resolution: For development products released before 2006 you need to have CLU09ALL applied before renaming machine. For development products using Microsoft Install shield no updates are required. Old KB# 13960
This article explains how to move a Net Express license from one machine to another. Problem: How can a Net Express license be moved from one machine to another machine? Resolution: In order to move a Net Express license from one machine to another, the product license on the old machine must be revoked. This is done automatically when the product is uninstalled. To generate a manual revoke key, follow these steps: From the Windows Start menu, click Programs > Net Express > Configuration > License Management System. The License Management System Configuration window should appear. Check your product and its components. Click Revoke license. Using the generated license key, go to the Licensing Solution web pages at http://supportline.microfocus.com/licensing/LicensingHome.asp to generate your own product revoke/deactivation key. After installing the product on the new machine, the product must be activated using a request key. To generate
This article explains how to resolve an ASLM semaphore failure 1002 after installing Net Express 5.0 on Vista. Problem: When trying to start an application via Net Express 5.0 IDE installed on a single Vista machine we received the following messages: ASLM: Semaphore failure. It is probable that licensing home location is not correctly set up. If using ASLMFNET check that it is set to a valid path, otherwise check that the location in the registry is valid (run aslmpclocate) and that the location exits and has appropriate access permissions. ASLM: Errno 1002 Resolution: Check the environment variable COBDIR first and to ensure that the installation path ..\\Net Express 5.0\\Base\\bin is included as well. Note: Depending on the application it may also need: ..\\Net Express 5.0\\Unix\\DSCHAR\\BIN or ..\\Net Express 5.0\\DialogSystem\\BIN On a Net Express 5.0 command prompt >set COBDIRwill provide an overview of which paths are included. COBDIR should not point to paths along wi
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.