Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
This article provides a resolution to the RTS 164 error. Problem: RTS 164 load error file cobdirect64.so.2 error code 164 pc=0 seg=0 cobdirect64.so.2 resides in $COBDIR/lib COBMODE=64 LD_LIBRARY_PATH and LD_LIBRARY_PATH_64 set to $COBDIR/lib Resolution: Unset LD_LIBRARY_PATH_64 Old KB# 14033
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 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 how to create a multi-threaded runtime Problem: How does one create a multi-threaded runtime? Resolution: To create a multi-threaded runtime, include the -t flag when you build the RTS. For example, to create an RTS with an open entry point: cob -xvte "" -o MyThreadedRts Note: There is one already supplied with the product. Use cobrun_t progname to use it. Old KB# 13990
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 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 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 describes various temporary files created by RTS to provide certain functionality. Problem: The RTS creates various temporary files to provide certain functionality. These files are created in $TMPDIR (if set) or /tmp, /usr/tmp or /var/tmp depending on the UNIX platform. If any temporary files are left lying around then it is because the RTS could not run its cleanup code, for example, if kill -9 is used or when exiting early from a C debugger. Temporary files created by the RTS have the following prefixes: cobdi Created during compilation cobhp CBL_VFILE_ heaps - mainly used by the checker cobru CBL_EXEC_RUN_UNIT inheritance information - removed by child cobsm Shared memory lock cobxi Embedded source code file names - created during compilation and removed by cob/editor/cmenu cobdb/cobdc Debugging cobdf/cobdt Mixedlangdebug debugging cobcg/cobsv Cross session debugging coban Created (and removed) by cobanim Reso
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 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 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 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 an error that occurs when attempting to execute an application. Problem: When attempting to execute an application, the following error message was received: Dependent module libfhutil.2.0.a(shr.o) could not be loaded Resolution: The error libfhutil.so.2.0: open failed is normally due to the fact that this library file, used in the old file handling utility (fhutils), was dropped in OCDS 4.1.40 and support for it was removed in all successive versions of the product and all versions of Server Express. It was replaced by the Rebuild utility which is capable of the same functions with better performances and the ability to handle larger files. Having been replaced with the Rebuild utility, it will be necessary to recompile and relink all the object and executable files. This error message may indicate that there is an executable that was built using Object COBOL V4.1.xx and that you are attempting to run the executable using a Server Express
This article describes an error caused by the SMP kernel when debugging Server Express 4.0. Problem: When debugging in Server Express 4.0 (up to ServicePack2) running Linux RedHat, the following errors occur as a result of the SMP kernel. How can this be resolved: Execution error : file '/usr/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: Using a non-SMP kernel will work, however, this problem has been solved in FixPack 40.03_62 for Server Express 4.0 SP2 running Linux which was released 16 July 2006. Old KB# 13979
This article provides a solution for Server Express File Handler reading one byte at a time. Problem: When reading from a pipe, Server Express File Handler reads only one byte at a time. Resolution: The following functionality is added with Server Express WebSync 3 product level: pipe_buffer_size Set the size of the buffer used by the run-time system when reading information from a pipe. Syntax: >>-----set pipe_buffer_size=---integer------><> Parameters: integer Any positive integer value indicating the size of the pipe buffer maintained by the run-time system. Properties: Default: 0 Setting: None Old KB# 14016
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 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 why the RTS 173 error on 'cdi2' ocurrs when trying to run cobprof. Problem: In Server Express v5.0, you might get the following error when trying to run the Profiler (cobprof): Load error : file 'cdi2' error code: 173, pc=0, call=1, seg=0 173 Called program file not found in drive/directory Resolution: This is a known issue and is fixed in Server Express v5.0 Websync 4 (WS04) Old KB# 14004
This article provides information on how to improve the performance of mfsort. Problem: The results from testing mfsort with the same input data over many successive runs shows variance in the sort times. The data records in the test are large, circa 3K. How can the performance be improved and the results stabilised? Resolution: Mfsort works by storing only the key data up to 1K of data in a structure which is then sorted. If SORTSPACE is large enough, this structure is held in memory rather then paged to disk, improving overall perfomance. As sort only stores key data 1K record data, for larger records the original data needs to be accessed when returning data from the sort, resulting in slower performance. More data can be forced into memory by adding an additional key to the sort. As a guide, this additional key must be "record length - 1024 bytes" in size to ensure the whole record is held. The benefit of this approach will
This article explains how to recover an AppTrack password. Problem: We are unable to get into the $COBDIR/aslmf/apptrack utility. The password is unknown. What should we do? Resolution: Micro Focus SupportLine can recover the AppTrack password. Follow these steps: Open a SupportLine incident at supportline.microfocus.com Change directory to /var/mfaslmf, using the command "cd /var/mfaslmf" Then issue the command "tar -cvf mfasdb.tar mfasdb". This will create a file mfasdb.tar. Transfer the tar file via binary to the PC then attach it to the incident. The password will be returned by return email or telephone depending on the urgency. Old KB# 14000#COBOL#Licensing#ServerExpress#netexpress
This article explains how to share files in the same run unit using COBOL. Problem: My application is made with COBOL modules that open the same physical file and all modules are included in a same run unit. For some reason, the file status 9/065 is displayed during the running of some modules. Why is this? Resolution: This is happening because it is necessary to modify the values of options on the File Handler Configuration file. echo "[XFH-DEFAULT]" > my.cfg echo "RUNITLOCKDETECT=OFF" >> my.cfg echo "OPENINPUTSHARED=ON" >> my.cfg EXTFH=./my.cfg export EXTFH Old KB# 13988#COBOL#netexpress#AcuCobol#ServerExpress#RMCOBOL
This article explains how to remove a license from the Server Express development license database. Problem: How do you remove a license key from the Server Express development license database (LMF)? Resolution: To uninstall a Server Express development license, follow these steps: Change directory to the /opt/microfocus/mflmf directory. Note: Your mflmf may be in a different path Use the command ./mflmadm to start the License Management utility. Enter /2 to bring up the license entry screen. Put the serial number on the first line up to and including the "AI " Tab to the next line and enter the full license key. Note: The fields are not case sensitive and you may enter the spaces or not as you choose. Press /4 to un-install the license. Press /7 to refresh the license database. Press Esc then "y" to exit. Old KB# 14025#ServerExpress#COBOL#Licensing
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 how to keep AppTrack from continually asking for a password. Problem: When running AppTrack for the first time, a password wasI established. Subsequently, AppTrack is asking for the password every time it is used. How can this be avoided? Resolution: With Server Express version 4.0 or higher, you can remove AppTrack and do a fresh install of the AppTrack system and the Application Server licenses. Before beginning, you should have your Application Server licenses available (both the serial numbers and the license keys) because you will need to re-enter them. This procedure can be completed easily within a few minutes. Log in as root. Set the COBDIR environment variable to the location where the COBOL product is installed, and make sure it is exported. Change directories to $COBDIR/aslmf: cd $COBDIR/aslmf Run the script "aslmdbrecover": ./aslmdbrecover At the end of this script, you will be taken into the AppTra
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
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.