Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Created On: 27 March 2012 Problem: Installation Wizard prevents Net Express 5.1 to be installed without installing the following prerequisite software first: Microsoft .NET Framework v3.5 Microsoft Visual Studio 2008 Resolution: When installing Net Express 5.1, the Installation Wizard takes the user to the Custom Setup screen where several features can be selected to be installed. The first feature listed in the Custom Setup screen is "Net Express support for .NET", which enables the user to use Microsoft Visual Studio 2008 to develop both native and managed (or .NET) COBOL applications. If the user does not wish to use this feature, then the install will not require MS Visual Studio 2008 to be installed first. To disable a feature from the Custom Setup screen, the user needs to click on the icon, which is left to the feature, and click on "This feature will not be available". Incident #2547192 Old KB# 35706
Created On: 27 March 2012 Problem: I have upgraded my version of Server Express, now I have this XFHLOG file that gets created. It did not happen in the previous version. Why is this and how do I turn it off? Resolution: The LOG option is documented as follows: When LOG is set to ON, any unusual file-related situations, such as corrupted files, or automatic file recovery, are noted in a log file for later examination. This option used to be OFF by deault. You can turn it off in the extfh.cfg file:[XFH-DEFAULTS]LOG=OFF The XFHLOG file that gets created is in binary format, you can display the text version of it using the cobfhprint command. Old KB# 35700
Created On: 27 March 2012 Problem: When calling the COBOL library routine PC_READ_DRIVE the drive letter is sometimes returned in upper-case while other times it is returned in lower-case. How can I make this consistent so that the drive letter can successfully be used in comparisons? Resolution: This is actually a Windows issue in that the underlying API call can return the drive in either upper-case or lower-case depending opn how the system was setup and some other factors.To ensure consistency in your application please use the appropriate intrinsic function to convert the drive letter returned to either upper-case or lower-case as show below:MOVE FUNCTION UPPER-CASE(DRIVE) to DRIVE Incident #2565230 Old KB# 35696
Created On: 27 March 2012 Problem: Although EXEC SQL INCLUDE SQLCA END-EXEC statement is present in the source code and mode=ANSI is set among the other COBSQL directives, the precompilation process flags the "SQLWARNING" keyword below with "Must include SQLCA when mode=ANSI and WHENEVER SQLWARNING used": EXEC SQL WHENEVER SQLWARNING CONTINUE END-EXEC. Resolution: The problem occurs due to the CP preprocessor that will by default expand any copybook definitions to ensure that a single source file gets passed to the precompiler. This includes the "EXEC SQL INCLUDE SQLCA END-EXEC" statement. This means that when the processed source gets passed to Pro*COBOL, it sees the expanded SQLCA. As results, Pro*COBOL reports the error. To prevent CP from expanding the SQLCA copybook, specify the SY option between P(CP) and ENDP. Incident #2544813 Old KB# 35709
Created On: 23 March 2012 Problem: Trying to code an embedded OpenESQL call to a function in an Oracle database which returns a VARCHAR2 result.Using Oracle ODBC driver 11.2.They get sqlcode -10000 on the call but the same call seems to work for SQL Server database. ORACLE stored procedure function call: create or replacefunction function1 return varchar2 as begin return 'some value';end function1; COBOL: identification division. program-id. Program1. environment division. configuration section. data division. working-storage section. EXEC SQL INCLUDE SQLCA END-EXEC. EXEC SQL BEGIN DECLARE SECTION END-EXEC. &nb
Created On: 08 March 2012 Problem: In debugging of version 9.1, if customer double clicks on variable, it it displays the fully-qualified name of the variable then the value. Resolution: The program needs to be compiled with -Gd and –Gy compiler options, using -Ga will result in the reported behavior. Incident #2561768 Old KB# 35626
Created On: 27 February 2012 Problem: When closing the Net Express IDE a message box is displayed for the following error message: "X016: Undefined query identifier or location not open"This follows another message for "The SQL option XBD local server option is running. Would you like to stop the server" to which I click on the "YES" button. What does this X016 error mean and how can I get rid of it? Resolution: This error message is simply an annoyance and there is a simple way to get rid of it by uninstalling the XDB component of Net Express, if you are not using it. Go to Control Panel > Add Remove Programs and click on Net Express 5.1 and select Change. When it asks what you would like to do select Modify. When the Net Express install screen shows you a list of components, click on the box to the left of XDB Relational Database and select the last option which is to not install the component. It sh
Created On: 01 March 2012 Problem: A Net Express application that uses Dialog System and was running fine for years is migrated over to Visual COBOL R4 for Visual Studio using the Dialog System Addpack.Now when the applications calls the Dialog System run-time, "DSGRUN" in some cases a Run-time system error 114 will occur.What is the cause of this? Resolution: Look at your screenset file in the Dialog System painter of Net Express. From the Dialog System main menu select Options > Resource Files.Make sure that your filenames are pointing to a location that actually exists. If you have moved to a new machine or placed the Visual COBOL application in a new folder then these path names may no longer be valid.It is recommended that you place application resource files in the output folder of your Visual COBOL project and then use a relative pathname in Dialog System to specify the name in the current folder like ".\\myresource.icn" or .\
Created On: 03 February 2012 Problem: Customer is migrating from a Unisys mainframe to Net Express 5.1 using SQL Server 2008 database.On mainframe they had a table with a column defined as CHAR(30) into which they stored a string of data that included a COBOL COMP data type.They redefined the host variable in their program as follows:01 char-field. 05 num-field pic 9(6) comp. 05 x-field pic x(20). 05 x-field2 pic x(7).and before inserting the columns into the database they would initialize the num-field to a numeric value starting with 1 and incrementing by 1 for each row.The INSERT worked fine and sqlcode was 0.When they fetched the data back into the program, however the value in the num-field was always = 105376.This worked
Created On: 27 February 2012 Problem: Program is converting a large indexed file to a sequential file and the write of the sequential file is displaying an error with a file status of 9/A where A actually has a caret character "^" over it.Could you tell me where I can locate the descriptions of the error codes that contain the special characters, as above? Resolution: When you get a file status returned and the first character is a "9" it means that the second character is actual a binary value representing a run-time error and these are called extended file status codes. If you look in the Help under Extended file status you will find an example: Example of Extended File Status Codes The example code that follows illustrates how to redefine a standard file status so that it can be used as an extended file status. Assume for this example that the input file does not exist - when the OPEN INPUT statement is executed, a file status of 9/013 ("fi
Created On: 01 March 2012 Problem: On UNIX, using the allocation override with SUBDIR($ENVVAR) in the config file doesn't seem to be able to recognise the AllocOverride.cfg file allocations. For example, having an allocation override of: OFFSET(324) VALUE(VSAM) SUBDIR($VSAMPATH) create the datasets in the allocated default dataset location. Resolution: On UNIX, we cannot expand a path that contains only an environment variable. It must contain the environment and a slash and additionaldirectory in which the files for those datasets will be created. Changing this to:OFFSET(324) VALUE(VSAM) SUBDIR($VSAMPATH/PRODV) will avoid the problem. Incidents #2561963, #2487875 Old KB# 35589#ES_ALLOC_OVERRIDE
Created On: 08 March 2012 Problem: Alfred is no longer in the AcuBench Tools menu. How do you get Alfred back in the Tools menu like in previous versions? Resolution: In AcuBench go to the Tools menu, Customize, Tools tab. Click the plus sign, , then name it Alfred and enter the following: Command: C:\\Program Files (x86)\\Micro Focus\\Acucbl910\\AcuGT\\bin\\wrun32.exe Arguments: -c ..\\tools\\alfred.cfg ..\\tools\\alfred.acu Working Directory: C:\\Program Files (x86)\\Micro Focus\\Acucbl910\\AcuGT\\bin\\ Then click Close. Alfred can now be started from Tools, Launch Tools. Incident #2561976 Old KB# 35627
Created On: 21 March 2012 Problem: A client was getting the following error when compiling/linking their application programs on AIX 5.3: cob –z progname.cbl ld: 0711-552 SEVERE ERROR: Object progname.o: Csects with symbol numbers 82 and 74 overlap. They had only just upgraded AIX 5.3 with patch level TL12 Service Pack 5 (5300-12 Service Pack 5) - (oslevel -s 5300-12-05-1140) This error occurred for any compile that linked object code (eg .so’s and executables). Resolution: Ultimately this came down to the fact that IBM made changes to the system linker. The client was initially running Server Express 5.1 WP4 on AIX 5.3.0.0 5300-05. They wanted to move to IBM POWER7 processors and so they upgraded AIX to patch level TL12 Service Pack 5 (5300-12 Service Pack 5) oslevel -s 5300-12-05-1140 They were informed that to run AIX 5.3 on POWER7 patch 5300-12 Service Pack 5 needed to be installed. After applying the OS patch, when they compiled and linked their COBOL programs
Created On: 01 March 2012 Problem: When compiling a DB2 application using Net Express the DB2(BIND) directive is used to create a DB2 Bind file that can be used to bind the application to the database.But when using the DB2 BIND command as follows the error shown is displayed.Why?SQL>db2 bind @dynamic.bnd LINE MESSAGES FOR dynamic.bnd------ -------------------------------------------------------------------- SQL0061W The binder is in progress. SQL0031C File "BINDV810L ` ü « O œ " could not be opened. LINE MESSAGES FOR dynamic.bnd------ ------------------
Created On: 14 March 2012 Problem: When trying to run ccitcp2 or another Micro Focus application that uses port 86 (for example Enterprise Server) you get a message saying port 86 is in use. Resolution: Port 86 is recognized as a standard for Micro Focus. There is a file called /etc/services that lists ports, and often port 86 is already shown there, populated when the OS is installed, for mfcobol. Search the file /etc/services for “mfcobol”. You should find several lines that look similar to this one: mfcobol 86/udp &n
Created On: 24 February 2012 Problem: Attempting to register the version 9.1.0 AcuToNet.dll assembly using: regasm20acu.exe /register /codebase AcuToNet.dll Gives this error: RegAsm : error RA0000 : Failed to load 'C:\\Program Files (x86)\\Micro Focus\\Acucbl910\\AcuGT\\bin\\AcuToNet.dll' because it is not a valid .NET assembly Resolution: In version 9.1.0 the AcuToNet.dll is a .Net version 4 assembly so the regasm20acu.exe will not work. There is a new version attached to this article, regasm40acu.exe which will successfully register the AcuToNet.dll assembly in version 9.1.0. Download regasm40acu.zip and extract it to the 9.1.0 bin directory, then execute: regasm40acu.exe /register /codebase AcuToNet.dll n/a Attachments regasm40acu.zip Old KB# 35565
Created On: 12 March 2012 Problem: I created a Visual COBOL program that uses the following syntax: SELECT OPTIONAL TEST-FILE ASSIGN TO DISC FILENAME ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS FILE-STATUS.where FILENAME is defined as:01 FILENAME PIC X(30) VALUE "TESTFILE.DAT".When performing the statement:OPEN OUTPUT TEST-FILEa file-status value of "35" is returned which means file does not exist.This program worked fine under RM/COBOL.What is causing this problem? Resolution: The word "DISC" is not recognized by the Visual COBOL compiler. According to the documentation for the File-Control entry the keyword should be "DISK" and not "DISC".The compiler is interpreting the word "DISC" as being a data-item name that should contain the name of the file when it is opened. Since
Created On: 14 February 2012 Problem: The ACUCOBOL-GT C$GETCGI routine retrieves CGI (Common Gateway Interface) variables. The common syntax to use is: CALL "C$GETCGI" USING VARIABLE-NAME, DEST-ITEM, VALUE-INDEX GIVING VALUE-SIZE where VARIABLE-NAME contains the name of the CGI variable that an ACUCOBOL-GT program receives from a HTTP web form. The syntax is easy to use when CGI variables have this structure:[FieldA] => 12345[FieldB] => ABCDEIn these cases, VARIABLE-NAME will contain "FieldA" or "FieldB". Which is the correct value to use in VARIABLE-NAME when CGI variables have sub-items?[FieldA] [SubFieldA] => ABCDE Resolution: A syntax like the following may work, depending on the characters used to identify the sub field in the original web form. In this example, the value to use in VARIABLE-NAME will be FieldA[SubFieldA]:01 WS-VARIABLE-NAME.
Created On: 10 February 2012 Problem: When using a GridView control on an ASP.NET web page, is there a way to allow a user to click on any row in the grid and do some processing on the selected line? It seems as if you must generate a select button for each row in order to generate the select event. Resolution: You can cause a GridView to return the SelectedIndexChanged event by adding the following code to the RowCreated event.You must also add the following to the Page header in order to avoid a Postback error:EnableEventValidation="false"When the row is clicked it will send the Select command to the GridView which will cause the SelectedIndexChanged event to fire. Make sure that you have the SelectIndexChanged event wired up to a method in your program as this will be called when the event is fired and then add the following code: method-id GridView1_RowCreated protected.procedure division using by value sender as object e as type Sys
Created On: 10 February 2012 Problem: When using COBSQL to compile code against Oracle 11g as the database the following directives are set in the project:p(cobsql) CSQLT=ORACLE8 CST CSP DIS MAKESYN VERBOSE KEEPCBL END-C p(cp) CONFIRM ENDP ENDP When the code is compiled, the Pro*COBOL precompiler is invoked and the programs compile without error:Pro*COBOL: Release 11.2.0.1.0 - Production on Thu Feb 9 15:32:35 2012Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.The compilation is sucessful and and .obj is produced.But when the linker is invoked to create an executable the following errors are displayed: : error LNK2001: unresolved external symbol _csqlsupp : error LNK2001: unresolved external symbol _ora8lib : error LNK2001: unresolved external symbol _ora8protThe import libraries orasql11.lib and csqlsupp.lib do exist in the link command.Why is this error occuring? Resolution: The cause of the p
Created On: 10 February 2012 Problem: A COBOL program is making two calls to a C program and passing a PIC X(20) string as a parameter. The C program moves a value to this parameter beffore returning to COBOL.I found that when I perform two calls to the C program, and the second string returned by C is smaller than the first one, COBOL does not recognize the 0x0 character and shows the two strings overlapped.to a C subprogram.For example:The first call returns 'file11111.txt', and the second 'file2.txt'.What COBOL sees is 'file2.txt txt'.Why is this? Resolution: This is to be expected as a NULL terminated string is a C construct and not a COBOL one. In COBOL a PIC X data item can contain any character including a X"00" (NULL).In order to get the expected results in COBOL you should either initialize the field to spaces before calling the C program or extract the data from the field after the call using something like: 
Created On: 14 February 2011 Problem: While compiling a COBOL program, the following error message appears: "Ignored - linkcount". For example:cob -C linkcount=2048 hello-world.cbl * Ignored - linkcount(2048) Resolution: The LINKCOUNT compiler directive was a feature of Object COBOL Developer's Suite (an old version of Micro Focus COBOL, withdrawn from service in 2005). The LINKCOUNT compiler directive is not included in Server Express (a newer version of Micro Focus COBOL introduced in the year 2000). If you use Server Express to compile, and if you specify the LINKCOUNT compiler directive, an error will warn you that LINKCOUNT is no longer available. For example: Unix prompt> cat $COBDIR/etc/cobver cobol v5.1.00 PRN=RXCAO/AAB:9p.k5.51.07 PTI=WrapPack 6 PTI=ES PTI=Fixpack51.07_03 Unix prompt> cat hello-world.cbl display "hello". Unix p
Created On: 14 February 2012 Problem: A COBOL program which interoperates with a .Net Assembly returns this error at compile time: prog.cbl, line nn: Verb expected, '(' found Resolution: The error is returned because ACUCOBOL-GT compiler found a MODIFY statement in the source code before of the related CREATE.The reason is that until the CREATE statement is compiled, the compiler doesn't know what type of control the handle refers to and so it can't check the method it's attempting to call. One solution may be to change the source code, moving the CREATE statement block before the MODIFY's.A finest solution is to declare what the handle type is in the working storage section.I.e.: a generic handle definition like this:77 MYASSEMBLY-HANDLE USAGE IS EXTERNAL HANDLE. may be improved this way:77 MYASSEMBLY-HANDLE USAGE IS EXTERNAL HANDLE OF "@assembly[[.namespace].class]". Incident #2555824 Old KB# 3
Created On: 24 January 2012 Problem: When running the Net Express projmake utility from a batch file the errorlevel check is not failing when a program error is encountered.Using the following in the batch file:projmake -buildall testproj.appif errorlevel 1 goto errorsgoto end:errorsecho "Error encountered":endecho "Done"Why, when an error occurs it is not branching to errors label? Resolution: The problem is that the projmake utility does not set the errorlevel directly based on if an error occurs somewhere in the build. Instead projmake just runs the cobol and cbllink utilities individually for each program in the project.If an error is encountered on the compile of the first program then cobol will set the errorlevel accordingly by moving the return code into a register.If this is the only program being compiled or it is the last one being compiled then it will seem like the errorlevel is being reported correctly beause the errorlevel will still
Created On: 23 January 2012 Problem: I have downloaded and installed the Dialog System AddPack for Visual COBOL from the Supportline Product Updates site at: http://supportline.microfocus.com/websync/VisualCobolAddpacks.aspxWhere do I find the version of the Dialog System Addpack that will install into the COBOL2010Runtime product? Resolution: There is only one Dialog System Addpack that can be installed for both the Visual COBOL Development product and the COBOL2010Runtime production product.The installer will determine which product is installed and will install the Addpack accordingly.It can be found on the Supportline Product Updates site at:http://supportline.microfocus.com/websync/VisualCobolAddpacks.aspx Old KB# 35406
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.