Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
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
Problem: This particular error has been encountered when using local temporary tables in SQLServer with the COBOL programs which reference a database on a local SQLServer instance. When everything works correctly, the temporary table is created within tempdb and it is possible to carry out any operation on it whether it be DDL or DML. However, if the same COBOL program references a database which is on a different instance (eg. servernt\\istanzaprova) it cannot correctly create the temporary table and, as a consequence, any DML operation (insert, update, select) returns the error sqlcode -208 Invalid object name. Running the table create again you may encounter sqlcode -2714 There is already an object named '%.*ls' in the database. Resolution: In short, this problem is caused by a collation conflict between the database collation of the application and the tempdb collation of the instance in which the temporary tables a
Problem: Using COPY ... REPLACING ... gives user-name not unique errors even though the variable name is unique. The problem only occurs when using the CP preprocessor with COBSQL. Resolution: Solution tested on Red Hat Enterprise Linux 4 & Server Express 5. By default pcbcfg.cfg (in $ORACLE_HOME/precomp/admin) defines: comp5=yes define=comp5 Changing COMP5=YES to be COMP5=NO will resolve this issue. COMP5=YES can also be overridden at compile time by passeing COMP5=NO in the list of directives to be passed to the Pro*COBOL precompiler as follows: PREPROCESS(COBSQL) CSQLT=ORACLE8 END-C COMP5=NO P(CP) ENDP Old KB# 2037
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: 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: After uninstalling an application, then attempting to open Micro Focus Net Express' help facility the following error is reported: : Cannot open the file: mk:@MSITStore:C:\\ProgramFiles\\MicroFocus\\NetExpress5.0\\Base\\Help\\mfnetx50.chm Resolution: The problem is caused by the file hhctrl.ocx located in the System32 folder (or just System on some OS), it is likely that it has been overwritten by an application with an incompatible version of the file. One way to resolve this error to reinstall the operating system . Another alternative is to restore hhctrl.ocx. Look for it on the cabinet file from the Windows CD-ROM or download/copy a working version from an outside source or even from a backup. For example, download a working version from: http://freeware.it-mate.co.uk/?Cat=OCX_Files After downloading the file, copy it into C:\\windows\\system32\\ (or wherever the corrupted f
Problem: The ability of a COBOL program to store and retrieve the values of certain data items and objects from within any Web page of an application that will also maintain its state between multiple client requests is essential in ASP.NET development. Resolution: The following code will create a new session variable called "MyName" which will be associated with the value of the "Text" property of the wsName object. Session variables are always stored as a name/value pair where "value" can refer to anything from a simple string to a complex COBOL object instance. The actual location where Session variables will be stored is dependent upon the Session state configuration options set within the applications Web.config file. The default storage location is "InProc" which means that the Session data will be stored within the memory space of the ASP.NET worker process "aspnet_wp.exe". invoke self::"Session&
Problem: Why do I occasionally receive a 9/037 (access denied) file status when opening a file using LOCKTYPE(2)? Resolution: When using LOCKTYPE(2) the File Handler creates a separate data file with the extension .LCK, against which record locks will be held. When a COBOL program closes a file, the File Handler attempts to delete the lock file as it is no longer required. The problem arises when this delete operation coincides with another process that is attempting to open the same data file. If this process attempts to create a lock file currently being deleted by the first process a 9/037 can be returned by the operating system. This issue is typically only likely to occur if multiple processes open and close the same files repeatedly. Possible workarounds: Check the file status following an OPEN operation and reattempt an open if you receive a 9/037 error. Do not use LOCKTYPE(2) for fil
Problem: Compiler error on a variable INTERFACE-ID defined in wokring storage. This has happened after a compiler upgrade to the latest version of the compiler. Resolution: INTERFACE-ID was added as a reserved word when support for the ISO2002 standard was introduced. You can use the REMOVE directive in order to let your program compile or run. For example :- $SET REMOVE"INTERFACE-ID" working-storage section. 01 INTERFACE-ID PIC X(50). procedure division. start-section. move "hello" to INTERFACE-ID. stop run. Old KB# 2070
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: 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: I have a line sequential file, with the following file structure: 01 lsfile 05 ACCOUNT PIC 9(9) COMP. 05 MOREINFO PIC X(20). I want to rebuild this file to IDX8 format, using ACCOUNT as the key. Can I use a COMP field as an index, if so, how can I do this? Resolution: The size of a PIC 9(9) COMP is 4 bytes so, in this case, the total record size is 24 bytes. For the lsfile example: 01 a pic 9(9) comp. 01 b pic x(20). $ rebuild lsfile, ifile -r:f24 -o:lseq,ind -t:mf8 -k:1 4 $ rebuild ifile -n File : ifile
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: 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: In COBOL, integers are declared as PIC 9 but also have a length descriptor which specifies the amount of data which can be held within ; for example, PIC 9(10). Resolution: In a .NET environment, however, there are two types of basic integers; INT16 and INT32. Both of these integers represent an integer of different length; INT16 is a 16-bit signed integer whilsts INT32 is a 32-bit signed integer. In COBOL these two types of integer are represented as: PIC S9(04) COMP-5 and PIC S9(09) COMP-5 rescpectively. A PIC X in COBOL is converted into a string data format in the .NET environment. The .NET compiler inserts an automatic conversion beween the COBOL variables and the strings. However, it is worth noting that when defining a string in .NET, the default length of the string is 8192 bytes. Although the developer may in fact require a string which is ten characters in length. So problems
Problem: Iinstall the FSVIEW addpack for either Net Express 4.0 or Net Express 5.0. Create a desktop shortcut which has a target executable which points to the location of FSVIEW.EXE. Question: Why does it launch with "Command Prompt"-style window with initial Title Bar text of icon name, before the FSVIEW GUI window is displayed? This didn't happen in Net Express 3.1. Resolution: There is a workaround, strange as it may seem. Open the Properties window for thr shortcut to FSView.EXE and click on the layout tab. Under Window Size change both the height and width of the window to a size of 1. Apply the change and press OK. There will still be a small command prompt displayed but it is too small to see. Old KB# 1574#ServerExpress#AcuCobol#RMCOBOL#netexpress#COBOL
Problem: Support for Generation Data Groups (commonly known as GDGs) was only introduced in version 5.0 of Server Express MTO. Resolution: Support for GDG is a complex subject but is explained in depth in the Server Express 5.0 documentation at: http://supportline.microfocus.com/Documentation/books/sx50/sx50indx.htm under the chapter: Mainframe Transaction Option Developer's Guide > 10. Advanced Data Set Information Old KB# 2030
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: Documented as follows: The configuration parameter MOUSE-ENABLE adds mouse support. Clicking the left mouse button anywhere within the current input field causes the cursor to relocate to that position. You do not need to add new dialog code: the behavior is instantly available on existing screensets when this parameter is set. Syntax: [NO]MOUSE-ENABLE Properties: Default: No mouse support. Resolution: Enable Mouse Support has no effect on UNIX but will work on the DSCHAR port to Net Express. This can be seen by viewing the Dialog runtime config file $COBDIR/dialog/dsdef.cfg * [NO]GOF-TO-OUTFIELD [No] Allow cursor to GOF into output field * IGNORE-NUMERIC-SETCUR Ignore SETCUR value on entry to numeric fields * MOUSE-ENABLE &nb
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: 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 VB or any other language read a Micro Focus flat file (line or record sequential) that has signed numeric fields with or without decimal positions? Resolution: Data is stored in numeric fields in a line or record sequential file as shown below: Value PIC In file 9 999 009 9 s999 009 -9 s999 00y 9 999v99 00900 9.9 999v99 00990 9 s999v99 00900 9.9 s999v99 00990 -9 s999v99 0090p As shown above, there is no way to tell or determine the decimal position in file. If it is known, then the value can be converted easily. For example, the number in file can be devided to 100 to obtain the actual value if the PIC comes with V99. As shown above, all negative figures end with a letter in file. See the list below to convert the letter to a number: p -> 0 q -> 1 r -> 2 s -> 3 t -> 4 u -> 5 v -> 6 w -> 7 x -> 8 y -> 9 If the last character is a letter (between &#
Problem: This demonstration shows how to create a simple ASP.NET application. It was rewritten from the CGI demo program which is documented in the Net Express Help tutorial section. Resolution: Please folllow the instructions in the README.DOC for more information. Attachments: BevordASPNetDemo.zip Old KB# 1476
Problem: TC040E Missing idy file no source available message is produced when running tcreport on the tcresult.tcz file from a test run. The IDY and CBL are resident in the same directory. Resolution: This issue was caused by product versioning. The report from a Net Express V5 compiled application was being formatted with the tcreport tool from Net Express V4. Using the the tcreport tool from V5 resolved the problem. Old KB# 1440
Problem: How to accept and convert characters to uppercase from an ADIS screen? Resolution: To convert characters accepted to uppercase Use the following call: call x"af" using adis-function adis-parameter where: 01 adis-function pic x comp-x value 1. 01 adis-parameter 03 bitpair-setting pic x comp-x value 1. 03 bitpair-section pic x value "2". 03 bitpair-index pic x comp-x value 85. 03 bitpair-count pic x comp-x value 1. Note: The above is documented in "Chapter 2: Enhanced ACCEPT/DISPLAY Syntax". Old KB
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.