Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
This article explains the impact of -g on performance when creating animatable executables. Problem: In order to have the ability to animate executable object formats such as .gnt or .so or executable, the "-g" flag must have been specified on the "cob" command when the objects were created. However, will the "-g" flag cause objects to run more slowly? Can you place the executables into production on a busy server, and run most often without animating, still preserving the ability to animate if necessary? And will the performance be acceptable? Resolution: When the -g cob flag is specified during the generation of .gnt or shared library or executable files, the extra debugging information is saved in the separate ".idy" file. The resulting executable does not increase in size. In actual fact, there is a small increase that is not substantial. With the debugging information saved separ
This article explains why the RTS 153 error occurs when attempting to access a data item with an occurs clause. Problem: This error occurs when attempting to access a data item with an occurs clause. The subscript value at time of the error exceeds the defined maximum occurence value contained in the definition of the item. This application does not fail on the mainframe and fails after migration to a UNIX operating system. Resolution: Compile the program using the generator directive -N NOCHECK. The -N indicates that this is a directive that will be passed to the Micro Focus native code generator The CHECK directive turns on all run-time checks in generated code. The run-time checks include checks for: Divide-by-zero Calling invalid (that is NULL) procedure-pointers Recursion of non-recursive programs NOCHECK disables all run-time checks in generated code. The NOCHECK option sets
This article explains how to move License Server from one PC to another without dongles. Problem: How do I move License Server from one PC to another without dongles? Resolution: Save the ls4.arc file and the licenseserver.mdb file. Remove the software from the old machine. Install the ls4 software on the new machine, install the lsf06l40.exe fixpack available from: http://supportline.microfocus.com/websync/ls40 Copy the ls4.arc file and the licenseserver.mdb file to the ls4 bin directory. Go to the administration pages. At this point every screen will display a message stating that the license file doesn’t belong to that machine. However, it will issue licenses for five days from that point. Set up the groups if you are using them. Then, on the administration page, click the fix hyperlink and generate a reset key. Visit the web licensing pages within the SupportLine web site at: http://supportline.microfocus.com/licensing/LicensingHome Follow the links to en
This article explains why symbol errors occur with COBOL executables. Problem: The following errors were encountered during execution time: 0509-023 symbol XFH_CLOSE in [filename] is not defined 0509-023 symbol regetblk in [filename] is not defined 0509-026 system error: can not run a file that does not have a valid format Resolution: Verify the COBOL version (Product Reference Number) of the failing environment compared to the version (Product Reference Number) of the COBOL development system which was used to create the executable. The versions must be the same, executables built using older versions of the Development System will not execute under a mismatched run time environement. COBOL executables are built/linked using UNIX shared libraries. At execution time, the system dynamic loader verifies that all symbols present when the executable was built are still present in the same libraries used at compilation time. If symbols are removed or relocated
This article explains why the LMF daemon does not start at boot time when inittab is present. Problem: LMF can be started from the command line but it fails to start after a reboot. The correct entry resides in /var/inittab: mF:2345:wait:sh /etc/mflmrcscript > /dev/null 2>&1 Resolution: This can happen when LMFCOMM is used to relocate the named pipe file LMF-common. This needs to be reflected in the start-up script mflmrcscript. The directory specified by LMFCOMM must have full read/write/execute permission for all users who will be using the licensed development system. See the section on Relocating the Long-lived Named Pipe in the Development System Licensing Guide Chapter 2, Administering the License Management Facility. Old KB# 14308
Some legacy programs use a technique that involves defining tables with minimum values for ‘OCCURS’ and addressing items beyond the defined value; the special options required to make this technique function properly under Server Express and Net Express are explained in this article. Problem: Legacy programs sometimes use the following technique to handle large numbers of items in a table. Consider the following example code: WORKING-STORAGE SECTION. 01 CNT PIC 9(5) VALUE 1. 01 BIG-AREA PIC X(1000). 01 BLLS-TABL PIC S9(8) COMP-5 VALUE 0. 01 PLLS-TABL REDEFINES BLLS-TABL USAGE IS POINTER. LINKAGE SECTION. 01 TABLE-RECORD. 02 T-ID OCCURS 3 TIMES INDEXED BY T-INDEX. 03 TD-ENTRY-NUMBER PIC 9(5). 03 TD-FIELD PIC X(10). PROCEDURE DIVISION USING TABLE-RECORD. 0000-START.. ** Set the address of Big-area to the TAB
There are two options for installing RM/COBOL in a networked environment: 1. Perform a "Standard" or "Custom" installation of RM/COBOL on all of the PCs that will execute the COBOL application. 2. Perform an "Administrative" installation on a network share, then, perform a "Network" install on all of the desktop PCs. Below is an excerpt from page 54 of the RM/COBOL User's Guide in regards to the "Network" installation of RM/COBOL on client machines. This excerpt contains a short summary of the network installation process: ----------------------------------- Installation of RM/COBOL on Network Client Machines The RM/COBOL installation process for CodeWatch, Runtime, Recover1, and Compiler supports users who wish to install RM/COBOL on a network server machine and then install RM/COBOL on multiple client machines using the RM/COBOL installation on the server. First, install all of the RM/COBOL components that you need ont
This article explains that a Memory Allocation Error occurs during runtime when the SORTSPACE environment variable is too large. Problem: We received a Memory Allocation Error 105 while running a program containing an internal sort. Is the run-time system unable to allocate sufficient memory space to successfully carry out the attempted operation because of insufficient memory space? Resolution: This error occurred because the SORTSPACE environment variable was set to too large a value on the server. A larger value for SORTSPACE will generally result in a faster sort. However, if a value is specified that exceeds the capacity of main memory in the computer, such that the operating system has to page memory in and out, performance will be degraded and an error can occur. Old KB# 14322
This article provides you with a way to verify UK postcodes using the LIKE verb. Problem: Because of the construct of UK postcodes, it is not a simple matter to verify them using traditional coding methods, but the LIKE verb does the job easily. Resolution: The attached sample program “postcode.cbl” contains the required code. Note that it is not possible currently to just specify the upper-case characters and use CASE-INSENSITIVE; this will cause an Assertion Failure on all versions from 12.02 back. This is why the sample program allows both upper- and lower-case characters in the condition. For better performance, the declaration of REGEX is a level-number 78 constant-name declaration instead of a level-number 01 data-name declaration. The regular expression is then compiled at compile-time instead of each time it is used at run-time, as would be the case with an 01 declaration. Old KB# 14338
This article describes what you should do if the Liant installer fails on Windows with the error message "The application failed to initialize properly (0x0000005)". Problem: The Windows RM/COBOL installer (setup.exe) can fail and return the following error in a Windows message box: "The application failed to initialize properly (0x0000005). Click on OK to terminate the application." Resolution: There is no single cause to these types of system configuration issues, but here is some guidance as to how you can diagnose these types of problems: Disable any anti-virus software while performing the install. Delete all of the files in your Windows temporary directories. The following link provides information on how to determine where your temporary directories are located: http://consumerdocs.installshield.com/selfservice/viewContent.do?externalId=Q108334&sliceId=1 This might be an issue with Windows Data Execution Prevention: In your Control Panel, open the
This article explains how to configure EnterpriseLink to support multiple developers running EnterpriseLink Builder under Windows Terminal Server or Citrix. Problem: How do you configure EnterpriseLink to support multiple developers running EnterpriseLink Builder under Windows Terminal Server or Citrix and all working on the same project? Resolution: You can find configuration details on the EnterpriseLink Wiki page. Old KB# 14327#EnterpriseLink#Rumba
This article addresses how to perform manual installs on client machines, specifically a silent install using the Windows group policy. Problem: It can be tedious to perform manual installs on client machines. Using the group policy it is possible to "push" the runtime to client machines silently, without prompts. Resolution: Follow these instructions to use the Windows group policy to perform a silent install: Put the runtime.msi and the liant.lic file on a network share available to the users who are supposed to get the software. E.g. \\\\<servername>\\NETLOGON (this is actually C:\\WINDOWS\\SYSVOL\\sysvol\\<domainname>\\scripts) Apply read rights for those users. Start the Group Policy Management program from the Administrative Tools in the Configuration Panel. Expand Domains. Expand your domain. Expand Group Policy Objects. Create a new Policy or select the policy you like to edit. Select Edit... from the Action menu
The AcuBench drag-and-drop paged list-box has the incorrect page-size set for it. Problem: After adding a paged list-box to a screen using AcuBench’s drag-and-drop mechanism the generated code does not work properly. At runtime the resulting list-box displays the data beginning with the second record. The first record is not seen until the list is paged down then paged up. Resolution: The first record is missing because the page-size for the control is incorrect. It is one record too large for the physical size of the control. Thus the first record scrolls off the top and isn’t seen until the user pages the control down then up. The page size generated by AcuBench for a drag-and-drop paged control (grid or list-box) is an approximation. This should only be considered a starting point. The programmer must verify and adjust the value in Working-Storage so the number of records is precise. Open the program’s working-storage section in AcuBench’s Working-Storage editor, locate the co
This article describes how to hide the cursor when using an ACCEPT OMITTED statement. Problem: Is it possible to hide the cursor in an ACCEPT statement? Resolution: The cursor may be hidden by using the runtime configuration variable: CURSOR_MODE This variable can assume one of these values: 1 (always visible) 2 (always invisible) 3 (invisible except during ACCEPT statements, then visible) The default value is 3. Note that this variable has a global effect over the whole application, so it is advisable to set it programmatically when needed. The program sample below shows how to do this and how to restore the default value. identification division. program-id. prog. author. claudio.contardi@microfocus.com. remarks. environment division. special-names. decimal-point is comma. input-output section. file-control. data division. file section. working-storage
This article describes how to enable a disabled tab page at runtime. Problem: The tab control’s TabEnabled property controls whether an individual tab (page) on the tab control can be selected at runtime. Using the WOWGetProp and WOWSetProp functions allows the enabled state of the tab to be set or retrieved at runtime. Before getting or setting the TabEnabled property value, the CurTab property must be set to the zero-based index of the desired tab. However the CurTab property cannot be set to a disabled tab page so it’s not possible to enable a disabled tab page using the TabEnabled property. Resolution: You can use the WOWSetIndexProp function to set the TabEnabled property to true, for example: Call WowSetIndexProp Using Win-Return tab1 "tabenabled" win-true 1. Incident Number: 2278101 Old KB# 14344
This article tells you how to associate a function key with a button so that it executes the same code whether you press the function key or click on the button. Problem: Once a push button is defined, it is necessary to associate the appropriate code with the button so that when a function key (such as F7) is pressed, or when a mouse clicks on the push button, the proper response results. Resolution: Associating the exception value of the function key to be used with the push button enables the proper response when the key or button is pressed. For example, the value to associate with F1 is "1", and for F2 is "2", and so on. When using AcuBench, you make this association by modifying the exception value property for the button. If you are not using the AcuBench IDE, you'll need to add the following code (with "7" representing a value) to the button definition: EXCEPTION-VALUE 7 Here's an AcuBench co
Fileshare server is stopped immediately if started in background; this article explains what to do when this occurs. Problem: The fileshare configuration file fs.cfg contains the background switch -b. fs is submitted to the background with: fs > logfile 2>&1 & (The last "&" tells UNIX to put the program in the background.) However, fs reports "stopped" the next time a foreground command is entered or the Enter key is pressed. Resolution: Fileshare attempts to write a status message to the terminal screen as it interprets each line found in fs.cfg. The -b background swtich in the configuration file is seen only after the first console output is attempted. It is this attempt that causes fileshare to stop. The workaround is to start fileshare with: fs -b > logfile 2>&1 & Fileshare then sees the -b on the command line immediately and outputs nothing to the screen. (The -b switch in fs.cfg is
This articles describes several causes for an application that receives file status 35 on an OPEN OUPUT of a disk file. Problem: The application runs on a Windows XP client PC and occasionally receives file status 35 (File Not Found) on OPEN OUTPUT. The statement is creating a new disk file on a Windows 2003 Server which is accessed by the client via a mapped drive. The error happens unpredictably and is not reproducible at will. Resolution: There are many reasons why an OPEN OUTPUT of a new disk file may produce file status 35 (or 94,20 if you’re using 74 status codes). The following items may apply not only to Windows, but to any operating system. The SELECT uses a variable file name and the data item is blank when the OPEN OUTPUT is executed. The directory does not exist. Security settings are preventing the OPEN OUTPUT from creating the file. The file system is out of space. Antivirus, antispyware, or backup software is run
This article describes the method for applying a license to an installed Liant product, without, requiring a reinstall of the product. Problem: To apply a new license on your system, you will need to use the License Utility, which installs the new license into the existing license vault. This utility program, licverifyall, is located in the SupportTools subdirectory of the installation directory. Resolution: Note: You may apply a new license while users continue to use the application. Note, however, that for all the changes to take effect, you will either need to restart the application or, for some server-based applications, restart the service or reboot the machine. To apply a new license, follow these steps: Locate the product installation directory. Place the new license, *.lic, into the SupportTools subdirectory and rename it to liant.lic. Execute the licverifyallprogram located in SupportTools, with no parameters. The program will find the new license and the exist
This article describes the message received when Application Server is unable to open a licensing file. Problem: What does the following error message mean? ASLM: Errno -301002 when running COBOL application Resolution: The message means that Application Server licensing is unable to open a licensing file (/var/mfaslmf/aslmodf), which is shipped with the product (Server Express 4.0). The reason given in the error code is that the file does not exist. The aslmodf file has to be present in the /var/mfaslmf directory every time that a COBOL application runs. A re-installation of the Application Server Licensing system should solve the problem. Old KB# 14319
When running a UNIX script (for example acuxdcbs.sh) the user may encounter the “syntax error near unexpected token” error. Problem: When running a script in either a Linux or UNIX environment, the user may encounter the “syntax error near unexpected token” error. Example: $ acuxdbcs.sh -start /acucobol810/bin/acuxdbcs.sh: line 50: syntax error near unexpected token `' /acucobol810/bin/acuxdbcs.sh: line 50: `show_usage ()' Resolution: This is typically caused by editing the file on Windows, or if the file is transferred in binary mode rather than ASCII. Run the dos2unix command on the script and then rerun the script. Example. $dos2unix acuxdbcs.sh dos2unix: converting file acuxdbcs.sh to UNIX format ... Incident Number: 2277959 Old KB# 14294
This article describes how to record in a trace file, which keys are hit by the user while the application is running. Problem: Is there a way to record in a file, the sequence of keys hit by the user while the application is running? Resolution: There is an ACUCOBOL-GT library routine called W$KEYBUF that can be used to record keystroke sequences. To activate keystroke sequence recording and save in a text file, simply run this code in your application: CALL "W$KEYBUF" USING 7, FILE-NAME To stop the recording, use this code: CALL "W$KEYBUF" USING 5 W$KEYBUF can also be used in Thin Client mode. The W$KEYBUF library routine is documented in the ACUCOBOL-GT Appendices manual, Appendix I. Incident Number: 2114758 Old KB# 14347
When compiling the following program within the IDE, a 163 error differing from that generated from the command line results: $SET CHECKNUM IDENTIFICATION DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 N PIC 9(8) VALUE 0. 01 M PIC X(8) VALUE " ". PROCEDURE DIVISION. MOVE SPACE TO M. MOVE M to N. DISPLAY M. DISPLAY N. GOBACK. its error message is displayed as Object Code error : file 'a' error code: 163, pc=0, call=1, seg=0 163 Illegal character in numeric field (in D:\\anken2\\7800\\7848\\demo\\a.cbl, line 9) When the same program is built from the command line and run the message is: Object Code error : file 'a' error code: 163, pc=87, call=1, seg=0 163 Illegal character in numeric field Why is there a difference? Problem: When compiling the following program within the IDE, a 163 error differing from that generated from the command line results: $SET CHECKNUM IDE
This article identifies different behaviours of "call system” between UNIX environments. Problem: The user program makes a call to system, for example: call “system” using “ls -la”On one system this works as expected, whereas on another it is necessary to add x“00” to the end of the command-line. For example: 01 WORK-COMMAND. 03 COMMAND PIC X(050) VALUE “ls -la”. 03 FILLER PIX X(002) VALUE X”00”.procedure division.CALL “SYSTEM” USING WORK-COMMAND.Why is this? Resolution: This behaviour depends on the case used in the CALL statement. call "system" (all lower-case) calls the OS system utility. This is platform specific, and may give unexpected terminal display results. When you are using the MF function CALL "SYSTEM" (upper-case) you must use x"00" to terminate the command. Incident Number: 2202924 Date: Name: Description of change: Date: Name: Description of change: Old KB# 14206
Problem: The File Handler Configuration File correctly specifies FILEMAXSIZE=8 and IDXFORMAT=8, but 4 Gb files cannot be created. Even though the correct settings seem to be specified in the file handler configuration file, files of size 4 gig cannot be created. Resolution: In order to create indexed files of size 4 GB or larger, the settings in the file handler configuration file must be specified correctly. These settings are: FILEMAXSIZE=8IDXFORMAT=8 Note: When modifying this file, take care to preserve the case and the spelling. By default the file handler configuration file is named "extfh.cfg" and the system expects to find this file in the current directory. As an alternative, the full path location, and the name of the configuration file can be specified using the EXTFH environment variable. Within the File Handler Configuration File, tags within square brackets are used to indicate which data files are affected by which configuration setti
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.