Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Problem: When trying to run an ACUCOBOL-GT application with Version 8 or even do a "wrun32 -v" version check "The system cannot execute the specified program" error occurs. The problem occurs when the ACUCOBOL-GT Runtime was not installed on the Windows machine where it is attempting to execute. It could be that the bin directory was copied from another Windows machine (ISVs often deploy their applications this way), or in a network environment where client PCs map to the ACUCOBOL-GT bin directory on a server. The underlying cause is that Version 8 is built with Visual Studio 2005 which not only binds the Runtime to new Microsoft dlls (MFC80 vs MFC71, etc) but to specific versions of those dlls. When the ACUCOBOL-GT Runtime Version 8 is installed on a given Windows machine the installer detects whether those dlls are present and installs those that are missing. When the bin directory is copi
Problem: If acushare is shutdown ungracefully either by issuing a "kill -9" or other catastrophic event that causes the system to shutdown unexpectedly, acushare may be left in a state in which it cannot be restarted without intervention. Users may experience the following message: "Shared memory and license manager (acushare) is not running" or "Acushare: Time out waiting for reply" However, attempts to restart acushare fail despite the following message: "acushare: already running" or "Acushare: Time out waiting for reply" may be repeated Resolution: Version 7.x and higher Should acushare terminate unexpectedly, its master shared memory segment may be left behind. Before restarting acushare, execute the "acushare -clean" command to remove the stranded memory segment. Version 6.x and earlier Before restarting acushare, it will be necessary to manually clean up shared
Problem: We want to have a Hint-Pop-up appearing when the user moves the mouse cursor over a Bitmap Push Button. Resolution: Usually the property 'Title' for push buttons allows us to indicate the text that we are going to show on the button. On the case we have a bitmap button, there is no text shown but a bitmap, and then using this 'Title' property we set up the text that we will have on the Hint Pop-Up for the push button. This is specially useful if you have buttons on a ToolBar. You have two variables that can affect the hints : HINTS_OFF, HINTS_ON. On version 8, we can only put hints on bitmap buttons. Old KB# 2711
Problem: Does AcuGT have a similiar routine to RM/COBOL's C$SCRD routine? Resolution: For screen captures, use: W$BITMAP Routine This routine is a collection of related operations that handle bitmap (BMP and JPG) images. Only Windows machines can actually display bitmaps. On all other machines, this routine returns an error code. Usage CALL "W$BITMAP" USING WBITMAP-CAPTURE-DESKTOP , parameters, GIVING BITMAP-HANDLE Refer to the ACUCOBOL-GT Appendices manual, Appendix I, for details on this routine's operation codes and parameters. Old KB# 2719
Problem: At times it may be desirable to rename the Windows version of the ACUCOBOL-GT runtime to something other than wrun32. However, doing so caused the following error during runtime execution: The procedure entry point w_suppress_event could not be located in the dynamic link library atermmgr.dll Resolution: While it is permissible to rename the ACUCOBOL-GT runtime, care must be taken that only wrun32.exe is renamed. Wrun32.dll cannot be renamed since it will cause this error. To correct this error, restore the file back to its original name wrun32.dll. Old KB# 2712
Problem: In the ACUCOBOL-GT User's Guide Version 7, Chapter 2.1.13, Miscellaneous Options, it states that -Zz can be used to convert spaces to numeric in the excerpt below. Does the -Zz option convert embedded spaces and trailing spaces as well as leading spaces in a USAGE DISPLAY numeric item to zeros? -Zz This option causes spaces in a USAGE DISPLAY numeric item to be treated as the value zero, and non-numeric data to be treated as numeric. It does this by treating the high-value half of each byte as "3" so as to bring all bytes in the variable within the range of 30 to 3F. Resolution: The following test program below demostrates that leading, trailing, and embedded spaces are all converted by utilizing the -Zz compiler option. The program was executed three times using the version 8.0.1 compiler and runtime. The following is a table that contains the inputs for each iteration and the corresponding outputs.
Problem: Is there a way verify the version of the runtime that is installed and/or being used? Resolution: The runtime has three command line options that will display differing levels of information regarding its version, serial number, number of users allowed and patches applied: -v Prints the current version number of runcbl, the serial number, and the maximum number of users licensed to use the runtime simultaneously. No program is run. -vv (double "v") Prints the current version number of runcbl, along with extended information. No program is run. -vvv (triple "v") This option is valid on UNIX systems and causes runcbl to display additional configuration information about the UNIX port. The information displayed varies depending on the UNIX system and is subject to change without notice. No program is run. Old KB# 2689
Problem: Is there a limit to the WORKING-STORAGE or DATA-DIVISION sections in an AcuCOBOL-GT COBOL program? Resolution: There is no actual storage limit for the WORKING-STORAGE section, but there is a 256 MB limit for the DATA-DIVISION section, which contains the WORKING-STORAGE section. This applies to versions 6.2 up to the current Extend8 product line. Old KB# 2705
Problem: How to invoke WORD and show it on the screen. Resolution: There are many things we can do with WORD but usualy we will want to invoke it, show it on the screen and open a file and start working with it, this is easily done following these steps. Create a WORD.DEF file using the utility axdefgen. Use the following word sample code : IDENTIFICATION &nbs p; DIVISION. PROGRAM-ID. TestWord. ENVIRONMENT & nbsp; DIVISION. CONFIGURATION &nbsp ; SECTION. SPECIAL-NAMES.  
Problem: We are doing a conversion from HP COBOL to ACUCOBOL-GT. We have code in the copylib file like below: 001400 01 [1]LOCN-M. LOCNM 001500 05 [1]LOCN-ID &nbsp ; PIC X(6). LOCNM 001600 05 [1]DESCRIPTION P IC X(30) LOCNM 001700 05 [1]LOCN-TYPE &nb sp; PIC X(4). LOCNM 001800 05 [1]REP-DRD. LOCNM 001900 10 [1]REP-DIVISION. LOCNM 002000 15 [1]REP-DIVISION-1B
Problem: The following resolution describes how to assign values to Ctrl C, Ctrl X, and Ctrl V in order to copy, cut and paste text from controls in graphical user interface COBOL programs and send output to the Windows API. Resolution: To use the ctrl-key combinations, it is possible to programmatically assign any value to these functions by using format 13 of the SET verb. So, for example, you wanted to assign the keys for copy, cut and paste to be Ctrl C, Ctrl X and CTRL V the following code would be needed in the program: SET EXCEPTION VALUE 3 TO COPY-SELECTION. SET EXCEPTION VALUE 24 TO CUT-SELECTION. SET EXCEPTION VALUE 22 TO PASTE-SELECTION. The exception values here are the default values assigned to Ctrl C, Ctrl X and Ctrl V. It is also possible to assign different values to these keys through the configuration file because the value returned for Ctrl C (3) is by default the same if a user pressed Function Key 3.
Problem: Runtime receives an error that NTWDBLIB.DLL is not found when attempting to access an Microsoft SQL Server database using Acu4GL for MSSQL. Resolution: NTWDBLIB.DLL is part of the Microsoft SQL Server client software that is required by Acu4GL for MSSQL version 7.x and earlier. There are 2 possible reasons why this error is being generated: 1) AcuSQL for MSSQL has been installed, rather than Acu4GL for MSSQL; 2) Acu4GL for MSSQL Server is installed, but the Client Communication software from Microsoft SQL Server has not. The resolution(s) to this error are to either: 1) install the Microsoft SQL Server 2000 client software on the machine 2) copy the ntwdblib.dll from a machine with an existing Microsoft SQL Server 2000 client installation, placing the copied DLL into the bin directory with the ACUCOBOL-GT runtime and Acu4GL for MSSQL. Note that for the second resolution to work Microsoft Data Access Component's (MDAC) need
Problem: Some reports need to be sent to a certain printer because the report requires a particular type of form or requires the special capabilities of a certain printer. Resolution: Getting Started with ACUCOBOL-GT Version 8.0 Chapter 2: Windows Installation > 2.5 Printing and Spooler Issues > 2.5.1 Spooler Formatting > 2.5.1.2 -Q <printername> If it is desirable to utilize the Windows spooler to format report pages, but a particular printer need to be used, assign the print file to: PRINTER1 -Q \\\\printername in the configuration file ("CBLCONFI"). Printername is the printer designation as given in the Printers folder under Settings in the Start menu. The name may be up to 80 characters long and contain embedded spaces. The name may not include the semicolon character (;) or be surrounded by single or double quotes. The pages are printed in the manner described in "-P SPOOLER" above. The sample
Problem: The documentation is unclear on what other steps need to be taken to delete a record from a grid control other than using the "RECORD-TO-DELETE" clause. Specifying this always deletes the first record, starting with the header row. Resolution: The secret is using the cursor-x and cursor-y properties of the grid control. Below is an example of the code necessary for deleting a specific record in a grid: delete-record. inquire grid-1, cursor-x in grid-x, cursor-y in grid-y. modify Grid-1, RECORD-TO-DELETE grid-y. This example assumes the record where the cursor resides in the grid is the one that is to be removed from the grid: Attached is a zip archive containing a sample program, and its accompanying copybooks, that demonstrates this code usage. When running the program, after clicking on a cell, press the [Delete] push-button. Regardless of the c
Problem: What is the best size of the block factor for VISION files? Resolution: The blocking factor specifies the size of the blocks to be used by the file. Blocks are sized in 512 byte increments. Vision 5 files support blocking factors from 1 to 16 (16 = 8192 bytes). Vision 2, 3, and 4 files support blocking factors from 1 to 2. When rebuilding a file, if the file is very large, or has a tree height of more than five, or key lengths in excess of 40 bytes, it is suggested to try larger blocking factors and perform some benchmarking to determine which larger block size improves performance. Old KB# 2703
Problem: The following steps can be done if an "Unexpected Acushare Error" occurs: Resolution: The error "Unexpected Acushare error" is caused by the runtime starting and finding a message in the Acushare queue, sometimes as a result of an ungraceful exit by a previous runtime. When the runtime starts, it sends a message to Acushare, and if it finds a message in the queue, it returns the "unexpected" message. Our Development Department advises that this is a known problem and has been difficult to determine the cause. The Developers have some suggestions about how to minimize the number of occurrences of this error: 1) Set the kernel parameters according to our "OS Kernel Parameter Settings" document attached to this KB Item. 2) Stop and start Acushare periodically. Several customers have found relief by stopping and restarting Acushare, some as an overnight kron job. 3) Use t
Problem: How to capture a screenshot of a window into a bitmap Resolution: You have to use this syntax: CALL "W$BITMAP" USING WBITMAP-CAPTURE-IMAGE, "C:\\AcuSamples\\bitmap\\Resource\\image.bmp", 0, | 0 = active window is captured 0, | 0 = The entire window is captured, including the title bar, window frame, menu, etc. 1, | 1 = monochrome, 32 = 32-bits per pixel GIVING w-BITMAP-HANDLE If W-BITMAP-HANDLE = 1, you will find your screenshot in the saved .bmp file. For further details, see: Appendix I: ACUCOBOL-GT Library Routines > I.1 Library Routines > W$BITMAP Old KB# 2736
Problem: What is the RPM Package Manager (RPM) and what is it used for? Resolution: The RPM Package Manager is a core component for many LINUX systems, such as Red Hate and SUSE. The RPM is command line driven. It's capable of installing, uninstalling, verifying, querying and updating software package, that was installed using RPM, for the LINUX environment. That is, RPM is not valid for the Micro Focus Server Express product. Please refer to the manpage on LINUX - man rpm RPM is free software, released under the GNU GPL. Old KB# 2374
Problem: A project is created using Net Express which includes map files like: map-name.bms. When the project is rebuilt, a map-name.mod is generated, the map executable. When the project is published to Unix it is not possible to capitalize the names of .mod files because they do not appear in the list of files to be published. The .bms files are published and compiled on Unix, genetating .mod files, with the extention in lower case. When the CICS application is requested to run it searches for .MOD files instead of .mod files and to have the CICS application working, you need to rename manually all of the .mod files to .MOD, for every project, or after any publishing. Resolution: The publish setup gives in the tab [Server], button Settings, tab [PostBuild], the option to type the name of a script that should run after the publishing proccess ends, and you can write a script in the project's directory on Unix to change to upper case, all files
Created On: 03 March 2008 Problem: The touch C does not stop cobesdebug. I use Z and the UNIX command kill with the option -9 to destroy the both process. After cobesdebug it does not run, and displays error message or warning messages. Resolution: cobesdebug uses a internal data file to stock information about region, transaction, etc. Under Suse, it is possible to use the option -15 of the UNIX command kill. This option send a signal to stop the process with updating the internal data file after the restart of cobesdebug. Example: (chronologically) Screen01 ( tty1 ) cobesdebug ....... Z Screen02 ps -t/dev/tty1 kill -15 pid2 pid1 Screen01 fg ( foreground) to restart cobesdebug that stops ( signal 15 received) Incident #25321 Old KB# 2320
Problem: When examining a variable length sequential file in a hex editor, extra bytes with a value of x"00" have been inserted at the end of records. When accessing the file from a COBOL program these extra bytes do not appear in the data. Is this a problem? Resolution: These additional bytes are padding and are inserted by the file handler to ensure that the next record starts at an address which is an exact multiple of the data alignment value for the file type. They are not the result of corruption and are perfectly normal. Variable length record sequential files consist of a 128 byte header record and then a number of data records, each of which is preceeded by a 2 or 4 byte record header. Example output from od -xAd: 0000000 307e 0000 0000 0000 3037 3130 3136 3131 0000016 3235 3535 3438 3037 3130 3136 3131 3235 0000032 3535 3438 003e 0001 0000 0000 0000 0000 0000048 0100
Problem: Using the command: p(cobsql) CSQLT=ORACLE8 KEEPCBL P(CP) SY ENDP produces the following errors * Micro Focus COBSQL Integrated Preprocessor with ASCII/EBCDIC Support * Server Express V5.0 Copyright (C)1984-2006 Micro Focus (IP) Limited. * URN AAAPA/ZZ0/00065 * CSQL-I-008: Invoking cp Preprocessor * CSQL-I-017: Creating "COSP318.cs9" * CSQL-I-018: Invoking ORACLE8 Precompiler/Translator * CSQL-I-020: Processing output of ORACLE8 Precompiler 435 IF mfsqlmsg-line(WS-DB2-ERR-LOOP)(2:4) = ' ' * 14-S********************************************* ** ** Invalid operand 438
Problem: If there is a need to run Server Express and Java with multiple versions of Oracle on the same machine, how can it run with one installation of Server Express? There would have to be an rtsora runtime executable created for each release. How can cobrun or cobjrun access the correct rtsora? Resolution: Use rtsora to execute their applications, rather than cobrun? i.e. # Make no changes to $COBDIR/bin/rts32* or $COBDIR/bin/rts64* # User 1:(i.e. Oracle 9) PATH=oracle[9]home/bin:$PATH LIBPATH=oracle[9]home/lib:$LIBPATH or SHLIB_PATH or LD_LIBRARY_PATH according to platform rtsora myapp.int --> will use the rtsora from $ORACLE_HOME/bin # User 2:(i.e. Oracle 10) PATH=oracle[10]home/bin:$PATH LIBPATH=oracle[10]home/lib:$LIBPATH or SHLIB_PATh or LD_LIBRARY_PATH according to platform rtsora myapp.int --> will use the rtsora from $ORACLE_HOME/bin To debug, set COBSW= A, and execute rtsora. To u
Problem: I would like to split my file into files . The split is defined by the value of one field Resolution: This is an example : The key of the split is the fifth character. The ouput files are sorted with the key that is defined as the first character SORT FIELDS(1,1,CH,A) RECORD (F 20) USE fileabc.dat OUTFIL INCLUDE=(5,1,CH,EQ,C'A') GIVE filea.dat RECORD (F 20) OUTFIL INCLUDE=(5,1,CH,EQ,C'B') GIVE fileb.dat RECORD (F 20) OUTFIL INCLUDE=(5,1,CH,EQ,C'W') GIVE filew.dat RECORD (F 20) Old KB# 2258#netexpress#COBOL#RMCOBOL#ServerExpress#AcuCobol
Problem: db2Initialize call failed with = -0000004904 ** External Compiler Module message ** DB0100 SQL4904N The pointer to parameter "piPidLength v95" of ** function "sqlainit" is not valid. when working against DB2 Version 9.5. Compiling with the DB2 directive returns "critical errror - DB2Initialize API not found". Compiling with the DB2 directive returns "DB00010 DB2 rejected an unspecified option" Resolution: The error regarding piPidLength is resolved in Net Express and Server Express 5.0 WP4. Generally, if you receive errors regarding DB2Initialize, you will need to compile your application with the DB2(UDB-VERSION=x) compiler directive, where x should be : V8 : DB2 v8.x V9 : DB2 v9.1 V95 : DB2 v9.5 You can determine the version of the DB2 client software by invoking db2level Old KB# 2290
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.