Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
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 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 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 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 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 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
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 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 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 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 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 aims to aid in the improvement of performance when accessing indexed files. Problem: This purpose of the configuration option INDEXCOUNT is to aid in the improvement of performance when accessing indexed files. Resolution: The default value for INDEXCOUNT should be suitable for most files. However, for files where the depth of the tree is greater than 4 or where there are a number of alternate keys defined for the file, increasing INDEXCOUNT can dramatically improve performance. The information required to make this calculation can be gained by using the rebuild tool to validate the file (rebuild -f filename). A general guide to setting INDEXCOUNT is as follows: INDEXCOUNT = (Tree Depth * No Keys) No Keys This parameter is put in the External File Handler configuration file pointed to by the EXTFH environment variable. See the File Handler documentation for specific instructions for using the Externa
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 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 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 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 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 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 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 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 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
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.