Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Problem: The runtime fails with a "Memory alignment error". How can this be resolved? Resolution: A "Memory alignment error" occurs in response to a Bus Error signal. This signal is generated on some UNIX machines (but not all) when a multi-byte data item is accessed on an inappropriate memory boundary. These machines require that integers and long data items be aligned on a certain byte boundary and involves how the CPU fetches data and the optimizations present in the machine's instruction set. For example, if a program accesses a 4-byte long data item that is not aligned on a memory address that is divisible by 4, a memory alignment error would occur. Data correctly aligned: data 1 = a|a|a|a| data 2 = b|b|b|b| Data misaligned: (data 2 doesn't begin at the start of the 4-byte address) data 1 = a|a|b|b| data 2 = b|b| | | COMPILE SWITCHES TO USE The most common solution to memory alignment err
Problem: Due to size resctrictions, files needed to be converted from VISION 3 to VISION 5; but when these files were copied to another server an error 98,68 is encountered by the COBOL program. Resolution: When moving Vision 4 and Vision 5 files it is important to transfer both the data segment and the index (.vix) segment. When the index segment is missing a 98,68 will be generated. Old KB# 2694
Problem: During a program run, the error message Perform Stack Overflow occurred. Resolution: This error message normally indicates that an AcuCOBOL-GT program exceeded the number of levels PERFORM statements can be nested within paragraphs or sections. A PERFORM statement is nested if the statement contains a PERFORM statement against another paragraph/section. This error can occur if a PERFORM statement did not exit properly. By default, the amount of nesting allowed by the runtime is set to 128. That is, 128 PERFORM againstg a paragraph/section that contains a PERFORM statement against another paragraph/section. This value can be increased by setting the runtime variable PERFORM_STACK to a higher value in the configuration file. If a paragraph/section is not exited correctly, the perform stack will not clear down properly. Normally the end of a section is marked by the EXIT verb and the end of a paragraph is marked by another paragraph name (for exampl
Problem: When opening a seq. file with open output the records are gone. How to add records? Resolution: Open the file with OPEN EXTEND After a successful OPEN statement, the file is positioned at its first logical record. (The only exception to this rule is that a sequential access file opened with the EXTEND phrase is positioned after its last record. Records written to such a file are appended to the file.) Old KB# 2652
Problem: Is there a way to initialize the fields of Working-Storage at compile time? Resolution: To initialize Working-Storage at compile time, use this option: -Di This option causes the compiler to initialize Working-Storage. Normally, the compiler will initialize all data items to spaces or the value specified with the "-Dv" option, except for those items given a VALUE clause. If this option is specified, data items are initialized according to their type: Alphabetic, alphanumeric, alphanumeric edited, and numeric edited items are initialized to spaces. Numeric items are initialized to zero. Pointer items are initialized to null. Index items are initialized to the value 1. Automatic initialization applies only to Working-Storage and does not apply to any item that (a) is given a VALUE clause, (b) is EXTERNAL, or (c) is subordinate to a REDEFINES phrase. Old KB# 2718
Problem: Does Acucorp provide support to users who have upgraded to SQL 2005? Are there known issues with ACUCOBOL-GT Version 7.2 and SQL Server 2005? When does Acucorp plan to support the new SQL 2005 features? Resolution: Q) Does Acucorp provide support to users who have upgraded to SQL 2005? A) Support will be provided for customers who upgrade to Microsoft SQL Server 2005 and are using ACUCOBOL-GT Version 7.2.2 or later. Q) Are there known issues with ACUCOBOL-GT Version 7.2.2 and SQL Server 2005? A) SQL Server 2005 client software no longer provides the "ntwdblib.dll" on which both Acucorp's AcuSQL® for MSSQL and Acu4GL® for MSSQL rely. To work around this, there are two options: · Use the SQL Server 2000 client software. · Use the SQL 2005 client software as long as the "ntwdblib.dll" from the SQL 2000 client software has been
Problem: In configuration section of a COBOL program, a computer name may specified following the OBJECT-COMPUTER phrase. With the 8.0 compiler, the following forms of the OBJECT-COMPUTER statement cause the compiler to hang and consume excessive cpu resources. The compiler must be terminated by a control-C (command-line) or via the Windows Task Manager: OBJECT-COMPUTER. OBJECT-COMPUTER. multiple words separated by spaces. The first form generates a compiler error in 7.2, as it is invalid syntax without the "computer-name" argument. But in 8.0 it just hangs the compiler. The second form is explicitly described as acceptable syntax in the docs (RM 4.2.2). In all cases above where "8.0 hangs", it occurs on both Windows and Unix. In addition, AcuBench hangs when trying to parse the source for copybooks
Problem: When working with ACUCOBOL-GT products and files we soon discover than a file status is defined as a pic x(2). In many cases we can receive extended file status going farther than those two characters. How can we recover those values and where do they come from? Resolution: If you want to recover extended file statuses, you have to use an ACUCOBOL-GT routine called "C$RERR". CALL "C$RERR" USING EXTEND-STAT, TEXT-MESSAGE, STATUS-TYPE Parameters EXTEND-STAT (returned): PIC X(5) or larger; PIC X(7) or larger under VMS TEXT-MESSAGE (returned): PIC X(n) STATUS-TYPE (input): Numeric parameter When do we need to use it and why? There are several cases, but the most often ones are: Error code 30, we need the extended file status because there we return the OS error-code. When we work with transactions. When we work with Acu4GL as we can have a 9D and then an extended file status with the
Problem: The print file is opened to do some write statements to print part of the report then use this code to get the write-cursor's current position: INITIALIZE WPRTDATA-DRAW. MOVE WPRTUNITS-PIXELS TO WPRTDATA-DRAW-UNITS. MOVE 1 TO WPRTDATA-DRAW-SHAPE. CALL "WIN$PRINTER" USING WINPRINT-SET -CURSOR, WINPRINT-DAT A &nb
Problem: Doing a rebuild of the project workspace and AcuBench just hangs and has to be killed with Windows Task Manager. Is there a way to debug this? Resolution: There is a Version 7 Compiler problem where a specific syntax error caused the Compiler to loop and repeatedly report the same error until it aborted. Somehow the looping problem caused AcuBench to hang. That problem is fixed in version 8.0 and AcuBench will not hang because the compiler no longer spins out. Upgrading to version 8 will resolve the problem. To find out what caused AcuBench Version 7 to hang, repeat the build, then when it hangs examine the AcuBench Output window and note the last program it was compiling. That program likely contains an error. The last line in the Output window should be something like: --------- Compiling programname.cbl ---------- Then compile that program from a command prompt outside of AcuBench. Somet
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: Trend Micro released an update to their anti-virus program which caused a serious performance issue when accessing vision data files. Resolution: It is unknown if there is a method to not have Trend Micro scan vision files. To date the only proven resolution used was to uninstall Trend Micro. Old KB# 2714
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: If the runtime receives a file status 98 on a Vision file it means the file has been corrupted. How can the Vision file be fixed? Resolution: To recover a corrupt Vision file which is returning a file status 98, use the "-rebuild" option of the Acucobol file utility, vutil. Keep in mind that the Vision file system has redundancies built into it, so that different rebuild options (-k #) will use different algorithms to rebuild the file. If one fails, another may succeed. At the end of a rebuild operation, you will be prompted with "Do you wish to replace the original file?" If N (NO) is chosen, the rebuilt file will be retained, such as it is, in the current working directory. It will be named VTMP####. * vutil -rebuild filename * vutil -rebuild -k 0 filename (rebuild on primary key) * vutil -rebuild -k 1 filename (rebuild on 1st alternat
Problem: Sometimes the runtime process is orphaned on the server and has to be removed manually. Is there any alternate way to clean or prevent this? Resolution: 6.3.1.16 TC_CHECK_ALIVE_INTERVAL Use the TC_CHECK_ALIVE_INTERVAL configuration variable to set a time interval in seconds (a value between 1 and 32767) during which the server runtime checks for client activity. This activity can be either regular client user interaction or, if the user interface is inactive, two "ping" messages sent by the client during the defined interval. If no client activity of any kind occurs during a particular interval, the server runtime process exits. Setting this variable to "0" disables the client activity check feature. The default value is "300" (5 minutes). 6.3.1.42 TC_SERVER_TIMEOUT This variable lets you determine how many seconds (from 0 to 32767) the client waits for a response from the server. If the client receives n
Problem: For some reports it is desirable to directly control the format of the printout using embedded control codes from a printer control language (PCL) or page description language (PDL). Resolution: Getting Started with ACUCOBOL-GT Version 8.0 Chapter 2: Windows Installation > 2.5 Printing and Spooler Issues > 2.5.2 Direct Control If it is desirable to control the format of the printout by directly using embedded control codes, simply assign the print file to "-P SPOOLER-DIRECT" or to "-Q <printername>" using the "DIRECT=ON" option. For example, to assign the print job "PRINTER1" to the spooler and retain direct control over formatting, enter the following line in your COBOL configuration file ("CBLCONFI"): PRINTER1 -P SPOOLER-DIRECT Or, use the following command to assign PRINTER1 to the spooler for printing to a specific printer while retaining
Problem: The program contains a screen with a grid inside a frame. When tabbin to the grid the first time the screen comes up, the grid control doesn't get focus. After clicking on the grid, then trying to tab to it again, it succeeds. Resolution: The CURSOR-X and CURSOR-Y properties were set to COBOL variables, whose initial values are both 0. If X is set to 1 and Y to 2 (since there is a header row) when the program first starts, it works as desired (the grid receives focus). Since the COBOL program controls the values of CURSOR-X and CURSOR-Y, the runtime can't do anything reasonable with default values. Old KB# 2729
Problem: For some reports, it may be desirable simply to print to the default printer using the default font. 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.1 -P SPOOLER If it is desirable to utilize the default printer and font, simply assign the print file to "-P SPOOLER". For example, to assign "PRINTER1" to the spooler, enter the following line in the COBOL configuration file ("CBLCONFI"): PRINTER1 -P SPOOLER By default, the runtime system assigns the "PRINTER" device to the spooler. This may be changed in the configuration file by assigning "PRINTER" to some other name. When the runtime opens a file assigned to "-P SPOOLER", it automatically initiates a job with the Windows spooler and constructs print pages in accordance with t
Problem: Programs that have been running under AIX and handle all the printer settings including forms feed using escape sequences, have been moved to a Windows platform. Is there anything special that needs to be done to enable form feeds with Windows printers? Resolution: To control the format of the printout using embedded control codes, simply assign the print file to "-P SPOOLER-DIRECT" or to "-Q <printername>" using the "DIRECT=ON" option. For example, to assign the print job "PRINTER1" to the spooler and retain direct control over formatting, enter the following line in the COBOL configuration file ("CBLCONFI"): PRINTER1 -P SPOOLER-DIRECT Or, use the following command to assign PRINTER1 to the spooler for printing to a specific printer while retaining direct formatting control: PRINTER1 -Q printername;DIRECT=ON Both of these methods cause the print job
Problem: Using an 8.x (8.0.0, 8.0.1, 8.1.0 alpha) compiler with the AddPercent sample program (attached) the compiler encounters and "internal error 45". Using the 7.2.x and earlier compilers the program compiles cleanly Resolution: This is fixed in 8.1 WebSync 3 by ECN-3788. A work around of not using the USE/END-USE construct can be used as well, since the cause of the problem is using a USE/END-USE construct with an ActiveX control to set multiple properties. Old KB# 2725
Problem: What does this entry, seen in the runtime trace file, mean? Using SAFE mode for file access Resolution: On Windows systems, the speed of file access to Vision files located on a shared drive can vary. The cause of this variability is attributed to interaction between the way Windows handles file locks and the way it caches shared files on the local system. In Version 4.3.1, to overcome that variability and improve performance, the method used to open Vision files on Windows shared drives was changed. Subsequently, although most users experienced good performance and no problems, some users experienced sporadic file corruption problems (file status 98). To minimize the possibility of these errors, in Version 5.2.1 ACUCOBOL-GT reverted to the pre-4.3.1 method of opening files which is noted in the runtime trace as 'safe mode'. Although this method can
Problem: How to make work the CGI demo Oscars with Apache on Windows. Resolution: First you need the runtime installed on the computer with the samples demo folder and Apache installed. My demo was made with Apache 2.2 and AcuCobol GT runtime 8.0 but older versions should work fine. First of all you should copy header.htm, footer.htm, body.htm and oscars.acu on the cgi-bin folder set-up for Apache. On my example that folder was : C:\\Program Files\\Apache Software Foundation\\Apache2.2\\cgi-bin You can copy as well oscars.htm at the location you are going to install html pages, for example on my demo was : C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs Here, open oscars.htm and modify the POST sentence to reflect your installation : <FORM method="post" action="http:\\\\par-gfollana.microfocus.com:8080\\cgi-bin\\oscars.acu"> Open httpd.conf and add the following line of code : ScriptInterprete
Problem: At times it is desirable to execute more than one print job at a time. Resolution: Getting Started with ACUCOBOL-GT Version 8.0 Chapter 2: Windows Installation > 2.5 Printing and Spooler Issues > 2.5.3 Printing Multiple Jobs Simultaneously If it is desirable to print multiple jobs at the same time, multiple File Descriptors must be opened that point to "-P SPOOLER" or "-P SPOOLER-DIRECT" simultaneously. For example, there may be two simultaneous print jobs: SELECT FIRST-FILE ASSIGN TO PRINTER "-P SPOOLER". SELECT SECOND-FILE ASSIGN TO PRINTER "-P SPOOLER". ..PROCEDURE DIVISION. .. OPEN OUTPUT FIRST-FILE. OPEN OUTPUT SECOND-FILE. and both will print to the default Windows printer without interf
Problem: A program working fine on Windows OS, does not detect the Function keys being pressed when running on UNIX/Linux platforms. Modifying the a_termcap file does not provided the expected results when using PF/Function keys either. Resolution: This is a terminal emulator problem. If the emulator does not send the appropiate character string to the operating system and the OS does not forward this information to the runtime, there is no way for the runtime to pass to the program which key was pressed. The solution is to change the settings of the emulator to map the right character set and send the correct string to the program. Testing a sample program with two different emulators each emulator needs to be changed to pass the correct escape seqence strings in a different way. For example: 1) With the termincal emulation package CRT it is necesary to map the F5 through F12 keys. By def
Problem: C$REGEXP library routine does not find the searched string when the program accepts the argument through an entry-field, if the argument is harcoded then it works ok. Resolution: The problem is that the regular expressions must be NULL-terminated because trailing spaces are allowed in regular expressions. It is necessary to use the following coding style when parsing: INSPECT regular-expression REPLACING TRAILING SPACES BY LOW-VALUES before to make the call to C$REGEXP library routine. Old KB# 2704
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.