Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
This article explains what happens when COBDIR/aslmf/apptrack option 6 is entered. Problem:Using AppTrack to reinitialize the COBOL AppServer with option 6, are there some files being overwritten or created? If so, what file(s) get updated or created when COBDIR/aslmf/apptrack option 6 is entered? Resolution: No files are reinitialized by $COBDIR/aslmf/apptrack option 6. Instead, the shared memory segments that are used by AppTrack are reinitialized based on the database/var/mfaslmf/mfasdb To view the memory seqments used by AppTrack use 'ipcs -mob'. Look at the shared memory segments that are 6 bytes in size. These are aslmf segments (they will have segment keys commencing 0x741cc1... ) The NATTCH column shows how many processes are holding are holding aslmf licenses. Each attach represents one license unit. These segments are reinitialized automatically when you add or remove a license. Old KB# 14018#COBOL#ServerExpress#Licensing#netexpress
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 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
For MF COBOL to work across NFS-mounted file systems, NFS must be configured to handle locks correctly. This C program tests the NFS configuration. Problem: NFS-mounted file systems may cause file access errors when used with MF COBOL. Problems may occur, not only at runtime involving indexed files and data files, but also when compiling or using the Animator. When opening a file, even a flat ASCII file such as a COBOL source file (.cbl), Micro Focus uses the UNIX system call fcntl() to establish a file lock. This is to prevent other processes or programs from opening the file for "exclusive" access. NFS-mounted file systems are sometimes configured such that the UNIX system call fcntl() does not work. This is not the fault of COBOL, though it can result in a hang or an error reported by the COBOL system. Resolution: The following C program tests whether an NFS-mounted file system is configured to handle the UNIX system call fcntl() correctly. The progr
This article explains that the thread model used on AIX systems has changed and can create a dynamic linker error. Problem: Programs compiled on an AIX 5.2 system and then deployed on a production system running AIX 5.3 fail with the dynamic linker error: 0712-001 Symbol not found _pth_init Resolution: The thread model used on AIX systems has changed in AIX 5.3. AIX uses the thread model M:N. This makes programs compiled with earlier versions of the operating system incompatible. In order to deploy executables to an AIX 5.3 system the application must be compiled on AIX 5.3. Old KB# 14013
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
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.