Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Problem: This error occurs when trying to run rebuild on UNIX or Linux Resolution: This message is saying two things: first, rebuild wants to give you a message, and secondly, that it cannot find the file of appropriate messages. This normally happens when the LANG environment variable is incorrect. typing 'locale' will show the current setting. List the available LANG values using ls $COBDIR/lang Either export LANG equal one of the supported values or try setting a link by typing 'ln -s $COBDIR/lang/C default' This should at least cause English messages to be displayed if the correct LANG value hasn't been supplied. Old KB# 2092#RMCOBOL#ServerExpress#netexpress#COBOL#AcuCobol
Problem: Is it possible to track back to a line of code from the PC= address at runtime? Resolution: It is possible to debug your programs in this way and the method used depends on whether you are running INT or GNT/OBJ code. Full details can be found under "Debugging Techniques" section in the online help. Old KB# 1533
Problem: This message is displayed under AIX 5.2 at the compilation that is made with a makefile Resolution: This message is displayed because the value of the environment variable LIBPATH is not passed to the make command by operating system . The temporary solution is to insert before the cob command the line : <TAB>LIBPATH=$COBDIR/lib;export LIBPATH;\\ example : all : cob -x prog.cbl is replaced by : all : LIBPATH=$COBDIR/lib;export LIBPATH;\\ cob -x prog.cbl Old KB# 2020
Problem: Defining a field with S9(31) COMP-3 returns the message : * 213-S***************************** ** ** Item is longer than USAGE allows or contains too many numeric positions Resolution: According to the ANSI standard, numbers are limited to 18 significant decimal digits. All significant digits must be within 18 digits of the decimal point. Old KB# 2061
Problem: I plan to use the XML PARSE statement to read an XML instance document, but can I then use the READ statement to examine the data one record at a time? Resolution: There are two different XML parsers available in MF COBOL. One is a DOM-based parser and the other is an event-based parser. The DOM-based parser is invoked by a READ statement, whereas the event-based parser is invoked via the XML PARSE statement. DOM parsers read an entire XML instance document into memory all at once and hold it in the form of a tree. Once the entire document is in memory, a COBOL program can read through the data, and update and modify the data. In the end, the updated memory image can be written out to disk as an XML instance document. An event-based parser, on the other hand, reads an XML instance one line at a time, and presents it to a program as a series of events. For example an event might be 'START-OF-ELEMENT' announcing that a new XML elem
Problem: Background information: Indexed files in Micro Focus COBOL can have different formats or organizations. An indexed file's format is decided at the time the file is created, under the control of the IDXFORMAT compiler directive. The default IDXFORMAT value is 1, meaning "C-ISAM", whereas the value 4 means, "an optimized form of Micro Focus indexed file format". Here is a table summarizing common formats: 1 C-ISAM format. 3 Micro Focus indexed file format. 4 An optimized form of Micro Focus indexed file format, for fast duplicate key handling. 8 Large indexed. For more information on indexed file formats, look in the main index of the Server Express documentation, under the keyword "IDXFORMAT", and check each of the references there. The question in this case is: An existing file is of type IDX4 (as shown by "rebuild -f <filename>"), but the file is expec
Problem: When compiling a COBOL program severity "E" errors are not being displayed. Resolution: You may have either HIDE-MESSAGE or CHANGE-MESSAGE directive set. The CHANGE-MESSAGE is replacing the HIDE-MESSAGE directive. Setting either of these directive will "hide" the error so that if the error is encountered, it is ignored. The syntax is - HIDE-MESSAGE "integer" The default is - NOHIDE-MESSAGE The compiler will also accept the directives without a hyphen - HIDEMESSAGE. Setting the HIDE-MESSAGE "integer" directive will add the error message number to a list to "hide" the error. To set multiple error messages you must use the directive repeatly. During compile time any message with a severity of E=error, W=warning, I=Information or flag with it's number in the "hide" list will not be shown in any listing and will note be included in the summary at the end of the
Problem: There are times that you would like to know addition static with a COBOL source program. Some of these area of interest are: 1) number of calls 2) number of lines within a COBOL source 3) number of comment lines Resolution: Specifying the directive LINE-COUNT will not only number the lines of code within a COBOL program (excluding comment lines), but it will provide a count of various other statics such as: Lines of Source Comment lines Comment percentage Sections Files
Problem: The demonstration attached uses Dialog system to simply create a GUI application and retrieve the handle of its Window. This application can be modified and will work as soon as you have the handle ( HWND ) of a GUI Window i.e. you can Set a Timer or|and Set Hook Procedures assuming that you have Window Handles --> The program detailed below could be a generic program which manages Timeouts on more GUI applications ... Resolution: This KB here contains 2 demonstrations i.e.: 2 .ZIP files. The 2 .ZIP files contain a Dialog System Application (DS) .... which is a convenient way to create a GUI Window ==== DEMO 1: ........... The .ZIP file named DSWindowtimeout.zip is the sample demonstration: 1) in the SCREENSET-INITIALIZED event, set at the GlobalL Dialog Level, the handle of the Window is retrieved thru the DS function MOVE-OBJECT-HANDLE, the variable EXIT-FLAG is set to 9
Problem: A main COBOL .EXE is calling two subprograms which each contain a sort with an input procedure and an output procedure. The first program is canceled before the second one is called . The sort in the second program called is failing with a 9/220 on the first release record of the input procedure. If the first program is not called then the sort in the second program runs fine. it appears like the sort from the first program is still active when the second programis run. Resolution: This can occur if the output procedure in the first called program is not being completed before the program exits back to the main program. Make sure that the first called program is not exiting to the main program within the output procedure. Old KB# 1587#COBOL#AcuCobol#netexpress#RMCOBOL#ServerExpress
Problem: Using the standard no CD install procedure for Server Express (i.e. cat v5000cob.trz | gzip -d - | tar xf - ) gives an invalid blocksize error. Resolution: This is probably due to the .trz file being corrupted. To verify this use the gzip command seperately from the tar command thus: ./gzip -d v5000cob.trz -S .trz If everything is okay with the .trz file it will have been replaced by an uncompressed file called v5000cob. The Server Express install files can be extracted from v5000cob using: tar xf v5000cob and the install can then proceed using the newly extracted install script. If v5000cob.trz has been corrupted by the copy process then an error message will be displayed when attempting the gzip command. On the HP PA-RISC system where this procedure was tested the error message was "Format Violated". Old KB# 2051
Problem: This Net Express 5.0.NET package includes 2 DVDs covering a Microsoft Visual Studio 2005 Standard Edition to be installed before using the Net Express 5.0.NET environment. However, there is no CD-/DVD-device available to install Microsoft's VS2005 Edition, thus it was copied onto a network share to install from. Is there a recommendation how to act safely because it can fails to obey "changing the discs" while installing VS2005? Resolution: Yes, please refer topic 1.3.6. from the link below describing how to install VS2005 safely from a network share. http://msdn.microsoft.com/en-us/library/aa718687.aspx Old KB# 1604
Problem: Net Express 5.0 has a .NET support for Microsoft Visual Studio 2005, but is it also supported in Microsoft Visual Studio 2008? Resolution: Net Express 5.0 is only supported with Microsoft Visual Studio 2005. It is however planned that Net Express 5.1 will be supported with Microsoft Visual Studio 2008. Old KB# 1555
Problem: Release 5.0 .NET: Im Net Express 5.0 .NET Produktpaket befinden sich zwei CD / DVD, die die Microsoft Visual Studio 2005 Standard Edition enthalten. Der PC hat physisch aber kein CD / DVD Laufwerk verfuegbar. Deshalb wurden beide CD / DVD auf ein Netzlaufwerk kopiert und von dort installiert. Allerdings ist dadurch ein CD / DVD Wechsel schwer nachvollziehbar und moeglicherweise werden durch Kopiervorgaenge bereits vorhandene Dateien ueberschrieben. Gibt es eine Empfehlung , wie in diesem Fall sicher vorzugehen ist? Resolution: In diesem Fall sollte so vorgegangen werden, wie es in diesem Microsoft MSDN-Artikel unter Textziffer 1.3.6. detailliert beschrieben ist: http://msdn2.microsoft.com/de-de/library/aa718687.aspx Old KB# 1585
Problem: Here is an example of the error message from Oracle PROCOB when a JOIN is used: ----- Error at line 566, column 38 in file lb010dallas.cbl FROM RECEIVABLE LEFT JOIN LEGALDTL .....................................1 PCB-S-00400, Encountered the symbol "JOIN" when expecting one of the following: , START END-EXEC CONNECT GROUP HAVING INTERSECT MINUS ORDER WHERE WITH FOR UNION ----- Running the same syntax from Oracle SQL Developer works. Resolution: The precompilers in Oracle are outdated with INNER and OUTER JOIN's. They only precompile the old syntax, so the code will have to be modified. Here's an example of how to change the syntax: The syntax for JOIN's in Oracle is a little different when compiling with current versions of Oracle preprocessor. So change the JOIN's as follows: T
Problem: COBOL program uses the external file handler with CALL "EXTFH". The program works ok in 32 bits, but in 64 bit it returns a file status of 9/161 on file open. Resolution: FCD-VERSION needs to be initialized to fcd--version-number. When it works in 32 bits is normally because the whole fcd is initialized to low-values and 0 happens to be the right value for FCD-VERSION there. When compiling and running in 64 bits, P64 is set, and therefore the value for FCD-VERSION is different (see $COBDIR/cpylib/XFHFCD.CPY). The following should be added to the program's initialization procedure for it to work in any environment: MOVE fcd--version-number TO FCD-VERSION Old KB# 2081#AcuCobol#netexpress#ServerExpress#RMCOBOL#COBOL
Problem: This Knowledge Base article concerns the need to handle multi-byte characters in COBOL programs particularly of special characters (ie non-standard English language characters). It arose as a result of configuring an Oracle database as UTF-8 and, thus, multi-byte characters. Problems were encountered when COBOL programs needed to contain the result of a read to the database resulted in the read field becoming truncated. To this end it was necessary to define the field lengths in the COBOL program in a more appropriate manner. Resolution: To overcome this problem it is necessary to implement Double-Byte Character Set Support. This kind of support exists because there are many (perhaps thousands) of differents characters pertaining to the world's stock of different languages. The majority of computer systems use bytes which are 8 bits in length; in that they assign an 8 bit code to represent each different characte
Problem: My application must create a large file. I define the File Handler configuration file with the FILEMAXSIZE option that is validated to 8 . All times the file status 9/194 is displayed Resolution: The line of the File Handler configuration file [XFH-DEFAULT] must be write without space between 'T' and ']' . If this line is written [XFH-DEFAULT<space>] the following options are not validated . Old KB# 2031#netexpress#ServerExpress#AcuCobol#RMCOBOL#COBOL
Problem: The windows system seems to hang. The task manager reported up to 100% CPU time on a process called csrss.exe. Resolution: csrss.exe is an important process in the Windows system and should NOT be terminated, see: http://www.processlibrary.com/directory/files/csrss/ A known problem can be found in the Microsoft's knowledge base article 555021: http://support.microsoft.com/kb/555021 Furthermore, the csrss.exe might be cloned by malicious software writers. That said, anyone with a misbehaving csrss should definitely run malware scans, preferably at least two different ones (eg an antivirus utility and an antispyware one). --------------------------------------------------------------------- csrss is the userland side of the Win32 subsystem. It handles user-mode Windows API and graphics API calls, passing them on to the kernel. Consequently it's a bottleneck (so a variety of performance problems will manifest in it), and it's somewhat
Problem: The customer is having trouble switching between multiple database connections within an application. Resolution: If only one database connection is used then it is not necessary to use a named connection. When more than one database connection is used, then a name must be specified for each connection. Connection names are global within a process. Named connections are shared by separately compiled programs that are linked into a single executable module. After a successful CONNECT statement, all database transactions other than CONNECT RESET work through this most recently declared current connection. To use a different connection, use the SET CONNECTION statement. Old KB# 1578
Problem: If a call is being made to a DLL created by the project, occasionally an error may occur when trying to do the call. This can be caused by improper build settings when adding the DLL and associated .cbl files to the project, or possibly due to using a project created with an older version of Net Express. For other issues with 173 errors, please be sure your PATH environment variable is set to point to the location of the .DLL or .EXE in question. You may refer to (http://supportline.microfocus.com/mf_kb_display.asp?kbnumber=25598) Resolution: The problem can be solved by removing the .DLL from the project tree, and re-adding the files using appropriate settings for the project. 1) Right-click on the problem .DLL in the Project Window. 2) Select "Remove from build type" 3) Be sure the first box "This file has build dependencies" is checked, and click Delete. 4) Now drag the source file from right half of the project window, to
Problem: Using Cobsql, programs compiled with the Pro*COBOL pre-compiler return 1403 for the NOT FOUND condition instead of 100. Resolution: 1403 is the Oracle SQLCODE for a NOT FOUND condition, 100 is the ANSI standard return code for the same condition. The default for the Pro*COBOL MODE is ORACLE. This provides compatibility for programs written specifically for Oracle. Programs written for othe RDBMS's and ported to Oracle or programs written using only ANSI standard SQL may require different behaviour so setting MODE=ANSI is one solution. Another solution is to leave MODE=ORACLE and use END_OF_FETCH=100. This can be set in the Pro*COBOL configuration file ($ORACLE_HOME/precomp/admin/pcbcfg.cfg by default) or as a command-line parameter to Pro*COBOL as follows: preprocess(cobsql) csqlt=oracle8 end-c end_of_fetch=100 endpOld KB# 2027
Problem: Herewith the versions of Visual Studio which are supported on NetExpress. Resolution: NetExpress 4.0 = Visual Studio 2003 NetExpress 5.0 = Visual Studio 2005 NetExpress 5.1 = Visual Studio 2008 Old KB# 1602
Problem: The File Handling manual says that mfsort uses a temporary workfile during sort & merge operations. What is the name of the workfile and where is it located? Resolution: SORT uses the following environment variables to determine the location of the sort work files: Unix: TMPDIR Windows:TMP, TEMP If the environment variable is not set the current working directory is used. The temporary sort files are prefixed with M$FST and the actual files created will vary depending upon the input data. Example file names: M$FST000.TMP M$FST000.001 M$FST000.002. This applies to both Server Express and Net Express. Old KB# 2059
Problem: How can you access the System Colors in a .Net Application ? At runtime you may want to determine for example the system color that is used for a Window background or an active caption. Resolution: The color class has a FromKnownColor method that allows you to retrieve the required colors. Attached to this KB is a demo showing how to use this method. Please see the Visual Studio documentation on the color class for more information. Attachments: TextBoxBackGroundColors.zip Old KB# 1549
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.