Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Created On: 19 November 2012 Problem: When installing Visual Cobol 2.1 Products it will install the License manager using lmsetup64.msi , this will automatically create Firewall rules to allow for communication to licening servers. Is there a parameter to prevent firewall rules from being set during license manager installation? Resolution: You can use the following parameter when installing the license manager: > lmsetupx64.msi ENABLEFIREWALL.B770BEF9_6C75_468D_A6D3_B6B7856579C8=”FALSE”This will not create any Firewall rules when installing the license manager. NA Old KB# 36619#COBOL
Created On: 16 November 2012 Problem: Customer is using a C# Windows Forms project in his application and they need to be able to call some native COBOL .dlls from C#.What is the easiest method to do this in Visual COBOL? Resolution: The easiest method is probably to create a wrapper program using managed COBOL that C# can call directly.The managed COBOL wrapper program would then format the parameters passed to it according to what is expected by the native COBOL program.There is a demo program attached to this article that shows one method that this can be done.Here is the description from the demo: TestWrapper Demo This example program demonstrates how C# can call a native COBOL program by using a managed COBOL wrapper program. The managed COBOL wrapper program is compiled with the ilsmartlinkage directive which causes the c
Created On: 28 November 2012 Problem: Having build several Visual COBOL executables a customer would like to deploy them onto peoples desktops. Rather than have a standard 'Windows' icon on the desktop to represent their application they would like to have their own images displayed as the icon. How do they build the executable so that these 'images' can be seen as the desktop icon rather than the 'Windows' icon? Resolution: Basically just open up project properties to Application tab and select the icon that you want to use for the application: Old KB# 36641#Enterprise#VisualCOBOL#COBOL#EnterpriseDeveloper
Created On: 04 December 2012 Problem: Customer has application in native code which loads another native .dll called "prog2.dll" which contains the program "subprog" using the following syntax:01 pp procedure-pointer.... set pp to entry "prog2" if pp not = null call "subprog" else display "load error" end-if.When executed from native code the set statement results in pp being set to the first ordinal in the .dll whether or not it has an entry point with the same name as the .dll. They are converting the main program to managed code and when they execute the same code to load the native "prog2.dll", the .dll is loaded correctly but the value of pp remains null so the test of null fails. Why? Resolution: When executing the set statement in managed code it will only set the value of pp to non-null if the .dll being loaded ha
Created On: 28 November 2012 Problem: Customer developed a Windows Presentation Foundation (WPF) application in Visual COBOL.When they now run the application under the debugger, when it executes the InitializeComponent method for a particular window it takes about 30 seconds before it returns back to the debugger.What is causing this extreme slow down? Resolution: After examination of the .xaml code for the form it was found to contain a button that used an image file that was referenced using a UNC name.The UNC name that was referenced was not a valid location on the customers computer and so that when the form was being loaded it could not find the location and the network search for the image file was causing the slow down.When the customer changed the UNC to reference an existing location the performance returned to normal. Old KB# 36642#VisualCOBOL#Enterprise#COBOL#EnterpriseDeveloper
Created On: 16 November 2012 Problem: Customer creates a line sequential file that has different record lengths in it depending on the user running the application. They would like to use a single file description in their COBOL application to create these files so that they do not need a different description for each file.The file name will be created dynamically and the records are different lengths. Also the records need to be padded out to the desired record length using spaces. How can this be done? Resolution: An example is attached to this article.Here is what the program looks like: *----------------------------------------------------------------* * TESTVARYING &nb
Created On: 23 November 2012 Problem: How do you get the DB2 JDBC JNDI database connection with Visual COBOL for Eclipse? Resolution: 1. Introduction This document covers working with OpenESQL applications under the Visual COBOL eclipse product lines, including some background on how things fit together, and an example of building and executing a sample program. 2. Software requirements The document assumes that you already Have a copy of Visual COBOL for Eclipse installed and licensed appropriately. Have a copy of DB2 installed like db2 10.1 express version. Have a copy of simple JNDI class library .jar file like simple-jndi-0.11.4.1.jar 3. DB2 COBOL example In Eclipse Create JVM project create cobol program TestDate Cut and paste the below program into the new program. $set sql(dbman=jdbc) program-id. TestDate as "TestDate". &nb
Created On: 27 November 2012 Problem: There are Stored Procedures that are causing the MicroFocus.COBOL.FileHandler warning that is preventing the ability to publish to the SQL Server 2012 database. Resolution: Use NOOUTDD directive Incident #2602526 Old KB# 36638#COBOL
Created On: 16 November 2012 Problem: Do I need an authorisation code when installing Visual COBOl Development Hub Product? Resolution: No, when installing the Visual COBOL Development Hub product it will install a 30 day Evaluation license automatically, then you have 30 days to aquire a Full License and install this via the APPTRACK utility. NA Old KB# 36612#COBOL
Created On: 27 November 2012 Problem: If you have enabled a trace in Fileshare what will you see in the trace if an application has issued a rollback of a transaction? Resolution: The Fileshare trace will log the file operations that are performed on a file. The file handler op code for a rollback is DD and it is a standard file operation you the full code you see is FA DD.An example log showing a rollback would look like:-07385680 FS163-I Input- FSADMIN FA8E C:\\MYFILES\\AFILE.DAT07385680 FS173-I Output- FSADMIN 2/307385680 FS163-I Input- FSADMIN FAF3 C:\\MYFILES\\AFILE.DAT07385682 FS173-I Output- FSADMIN 0/007391544 FS163-I Input- FSADMIN FADD07391546 FS173-I Output- FSADMIN 0/007391719 FS171-I Input- Logoff FSADMIN07391723 FS173-I Output- 00001 0/0You can see in the trace above that the FADD (Rollback) has been issued. Incident #2600954 Old KB# 36636#COBOL
Created On: 11 December 2012 Problem: Customer has a .NET Windows Form application written in Visual COBOL. The form has several textbox controls on it and it uses auto validation by setting their CausesValidation property to true.This works fine when a user leaves the field except when they click on a button that causes a FormClose event to fire, such as invoke self::Close or clicking on the Windows Close "X" box.The problem is that the Validating event occurs before the FormClosing event so the validation code will be executed when it really should be bypassed so that error messages are not displayed etc.How can this be programmed so that the validation code is bypassed if the form is closed? Resolution: There is a sample program attached that demonstrates how this can be done by checking the current stack for the form to see if the WmClose message is present before executing the validation logic.If WmClose is found then the logic will be bypassed and the
Created On: 14 December 2012 Problem: What is the safe maximum number of parameters that can be passed to a COM object from an unmanaged COBOL program? Resolution: Any application that call a COM componment needs to be built with the OOCTRL( P) compiler directive. This directive limits the number of parameters passed on an invoke to 31.If an application passed more than 31 then an RTS114 or RTS252 runtime error may result.To work round this limitation you can design the COM method so that is accepts another COM object as a parameter. The parameters can be set as properties on this object that is passed. Alternatively properties could be exposed on the COM object and set before the invoke is made to the method. Incident #2597978 Old KB# 36679#COBOL
Created On: 04 December 2012 Problem: The error message produced is: "Acubench Integrated Development Environment has stopped working". Sometimes, when compiling a COBOL program, AcuBench would crash. This was due to a correction made in 9.1.2 that removed memory leaks. Resolution: This issue has been resolved by ECN-WB915: SUBJECT: AcuBench crash on build Change Number: ECN-WB915 Status: Complete Type of Change: Correction Priority: High Incidents: 2597131 RPI Number: 1086395 Date: 2012-11-13 Product: AcuBench Module: ccbldll.dll New Version: 9.2.0 Machines Affected: Windows only Known Versions Affected: 9.1.2 and later DESCRIPTION of problem or enhancement: Sometimes, when compiling a COBOL program, AcuBench would crash. This was due to a correction made in 9.1.2 that removed memory leaks.Please either request or raise an incident with the Micro Focus Supportline and request this patch for V9.1.2. The next AcuCobol version release is extend V9.2.0 which is cu
Created On: 04 December 2012 Problem: Customer is converting a native code Net Express application that uses Oracle's Pro*COBOL precompiler to access Oracle databases, to use Visual COBOL .NET managed code using the Oracle Data Provider ODP.NET driver.OpenESQL supports dates that are in ISO format YYYY-MM-DD but the application is using the Oracle format of MM-DD-YYYY.How can they continue to use the Oracle formats so that they do not have to change their source code? Resolution: Starting with Visual COBOL 2.1 Hotfix 2, there is a new SQL directive called DATE=EXTERNAL.When this directive is set and the program is using the Oracle Data Provider for .NET (ODP.NET) then the date format used will be that set by the NLS_DATE_FORMAT and NLS_TIMESTAMP_FORMAT settings of Oracle or the NLS_DATE_FORMAT and NLS_TIMESTAMP_FORMAT environment variables if they are set.This only works with the ODP.NET and does not work with the Microsoft Oracle ADO driver.Here is an example program
Created On: 30 November 2012 Problem: Customer would like to set a breakpoint when animating in Server Express, so that the program breaks whenever the value of a particular data item changes. Is this possible? Resolution: For the Animator in Server Express, you cannot set a global break condition (i.e. unassociated with a particular statement in the Procedure Division), where execution would stop whenever the value of a data-item changes. This was a feature of earlier releases of MF COBOL, such as Workbench and Object COBOL Developer's Suite, but it's not in Server Express. Instead, you will have to set a breakpoint on a particular statement, using the If option in the Breakbpoint menu. Execution will break on that statement if/when: That statement is reached, and the condition is met. Old KB# 36647
Created On: 03 December 2012 Problem: When building a Visual COBOL project the following error is produced: LINK : fatal error LNK1248: image size (D3B7A000) exceeds maximum allowable size (80000000) Resolution: This is a limit of Windows not the compiler. The Microsoft linker has determined that the size of the output file will exceed the largest possible size for a program image. The largest possible size for a program image is 2 GB.The solution is to reduce the size of the program image, for example this large array would cause the error, reducing the size of the occurs would resolve the problem. 01 library identified by "library". 05 book identified by "book" &nb
Created On: 20 November 2012 Problem: The Visual COBOL v2.1 documentation states that the return parameter for the C$SetEnv RM library call within is optional. Syntax: CALL "C$SetEnv" USING name, value [, return] Parameters: name PIC X(n) value PIC X(n) return PIC 9(n) BINARY, where n can be a digit from 1 to 9 However if the "return" parameter is not used an ArrayIndexOutOfBounds Exception occurs. Resolution: The return parameter must be used. Incident #2602271 Old KB# 36621#ArrayIndexOutOfBounds#CSetEnv#COBOL
Created On: 18 December 2012 Problem: It sometimes happens that in unit testing a message remains in the IMS MSQ queue. Is there a way other than deleting IMSMESGQ.DAT to delete single messages from MSG queue? Resolution: A new command has been added to the IMS functions that will allow you to delete the FIRST or ALL msgs queued for an IMS Transaction.Enter /DEQUEUE TRAN trxname FIRST or ALL where trxname is the name of the IMS transaction in the IMS Control panel in ESMAC.This command was added in Studio 6.0 SP2 WS2 and is available in Enterprise Developer v 2.1. Old KB# 36686#COBOL
Created On: 14 December 2012 Problem: Customer is using a C# front end that calls a managed code COBOL class which in turn calls a native COBOL .dll. The C# program is creating a new instance of a RunUnit (MicroFocus.COBOL.RuntimeServices.RunUnit) and then calling the managed COBOL program by adding it to the RunUnit. Is it OK for the managed COBOL to call the native COBOL .dll when it is part of a RunUnit? Resolution: Yes, you can call native COBOL .dlls from managed COBOL when they are part of a RunUnit instance. The native runtime has a “one rununit” per process model, so in effect the native code will be shared between all the managed RunUnits. The native and managed RunUnit have no interaction with each other, so a CANCEL in managed code has no effect on the native RunUnit. The same goes for open files, they will not be shared between the two RunUnits. This in itself might not be a problem if the program is stateless or serialized… ie: local-storage based
Created On: 12 November 2012 Problem: The Visual COBOL file handler can be configured via a configuration file. The full details of the configuration file can be found in the Visual COBOL documentation.The purpose of this article is to discuss the behaviour of the file handler when the FOLDER tag configuration is used.The FOLDER tag has the format, for example, of:[FOLDER:C:\\\\files\\\\data]IDXFORMAT=21The documentation states that this instructs the file handler to read all files in c:\\files\\data as RM/COBOL indexed data files. Resolution: However it should be noted that this doesn't only apply to the c:\\files\\data folder but also to all sub folders too, for example c:\\files\\data\\sub1, c:\\files\\data\\sub2, c:\\files\\data\\sub1\\subZ etc.NB: There is a known problem with the FOLDER tag option in Visual COBOL 2.1 for Unix, in that it doesn't parse the folder path correctly. This is addressed in Visual COBOL 2.1 Hot Fi
Created On: 14 November 2012 Problem: When installing Server 5.1 on Windows 7 and Windows Server 2008, Program Compatibility Assistant is reporting the following:This program might not have installed correctlyIf this program didn't install correctly, try reinstalling using settings that are compatible with this version of Windows. Program: Application Licensing Install Utility Publisher: Micro Focus Location: C:\\Users\\UserID\\AppData\\Local\\Temp\\Filename.exeWhere UserID is the currently logged on user ID and Filename.exe is either aslmpcsilent.exe, alsmpclocate.exe, or init2aslm.exe. Resolution: Although Program Compatibility Assistant reports that these programs did not install correctly, they are in fact installed properly. You may then safely click on "This program installed correctly" to close the prompt.This prompt could have been avoided by running the install as administrator, i.e right-click on the install SRP32
Created On: 12 November 2012 Problem: Attempting to use the cursor option with the accept statement causes an error for example: accept memo-oms no beep cursor ws-memo-cursor 28207 update no beep cursor ws-memo-cursor 11-E Reserved word missing or incorrectly used Resolution: At present there are no plans to implement this functionality for either ACU or RM. The solution is not to use this syntax. Old KB# 36602#"compilererror"#ACCEPT#COBOL
Created On: 05 November 2012 Problem: A customer was looking for a simple method of using a key to encrypt/decrypt string fields in COBOL so that they could be used to encrypt data in a file. Is there an example of doing this? Resolution: This is intended only to obscure a string from a casual prying eye. It is NOT intended to be a replacement for true encryption like 3DES and RSA encryption. Please do NOT assume this routine is in any way secure or uncrackable. Essentially, The code uses a variable length key to obscure the original string by iterating through the string you want obscured and adding the ASCII value of the character at each position of the original string with the ASCII value of a rotating “key character” in the key provided to generate a new ASCII value. This new ASCII value is then converted to a character and added to the newly encrypted string. The obscured string is further obscured by the fact that the original string is reversed prior to bein
Created On: 08 November 2012 Problem: A customer is converting from Net Express to Visual COBOL native and they have a manifest file that they would like to include in their .EXE. In Net Express they use an RC file included in the project that includes their own "app.exe.manifest" file. This is needed to enable common controls V6 that they need for their UI. Here is the contents of the manifest which works successfully with Net Express builds: This manifest isn't working with Visual COBOL. From looking at the verbose build output it can be seen that the link command is being called with the -manifest option. This causes an app.exe.manifest to be generated. Then further down there is an mt (Manifest Tool) command to insert the generated manifest file into the app.exe file. This is likely overriding the manifest they compiled in using the .rc file. How can they override this process to include their own manifest file into the
Created On: 30 October 2012 Problem: Customer is running Visual COBOL 2.1, Visual Studio 2010 SP1 but also previously had Visual Studio 2012 installed on same computer. Customer has a native COBOL link library project consisting of a single resource file (myfile.rc). When the project is built the following error occurs: LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt How can this be fixed? Resolution: This problem does arise from having both Visual Studio 2010 and Visual Studio 2012 installed on the same system.Microsoft states that the problem can be resolved by installing Visual Studio 2010 SP1. Although this will fix the problem when using Microsoft languages it will not solve the problem when using Visual COBOL 2.1. This is because Visual COBOL provides a preSP1 version of the CVTRES.EXE utility in its bin folder and this is the one that is picked up when compiling resources in a Visual COBOL project. As
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.