Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Problem: When a Visual Basic program creates another VB object and attempts to pass this object to a Cobol Object the the Build Error "Reference required to assembly 'xxx' containing the type 'xxx.yyy'. Add one to the project. The calling project does have all the required references. The error occured in Visual Studio 2003. Resolution: This is caused by a bug in VB and is documented by Microsoft at: http://support.microsoft.com/kb/818411 To work around the problem by adding a reference to the Assembly DLL rather than the project. This error was also resolved in Visual Studio 2005. Old KB# 4358
Problem: Using UNC path from the CMD did not work Resolution: Microsoft's command line is not able to handle UNC pathes, i.e. \\\\server\\resource\\program when called from a program. The message occurs "\\\\server\\resource\\project\\program CMD.EXE starts with this path. UNC-Pathes are not supported. Using the Standard Windows Path." Solution is to map the remote drive by using 'net use'. Old KB# 4341
Problem: Trying to convert in batch a record sequential EBCDIC file to a record sequential ASCII file via >run dfconv xyz.pro gets back immediatly: Execution Error 114: "Attempt to access item beyond bounds of memory (Signal 11)". Net Express doc files do not explain why this happens, so the first meaning is something goes wrong around the size of this file, but no errors occur converting another large 2GB file. Is there an additional hint available to get rid off this problem? Resolution: Yes, to check both the Convert Profile (.pro) also the Record Layout (.str) to ensure that they are related to the data file correctly. In that case the Convert Profile .pro did not fit the data file because the record length used was too long. Old KB# 4381
Problem: When a control is refreshed it can sometimes "flicker" this can be seen if the control repaint itself. This type of effect is dependant on what the control is doing and by no means impacts any controls. It tends to impact controls that paint colours and graphics on the screen. Resolution: To minimise flicker to switch off WM_ERASEBKGND and also to implement double buffering. Both the techniques are covered in the attached demo and article. Attachments: flicker.zip Old KB# 4382
Problem: Can a 64-bit program call a 32-bit program or vice versa? Resolution: It is not possible for 64-bit to call 32-bit or vice versa. The documentations also state: -------------------------------------------------------------------------------- The Compiler directive P64 enables you to create a program that can be run on Micro Focus Server in 64-bit mode. If you do not use the P64 directive when you compile your program, the program can only be run on Micro Focus Server in 32-bit mode. Therefore, if you have developed an application on a 32-bit development system, you must recompile it with the P64 directive set, if you want to migrate it using Micro Focus Server in 64-bit mode. -------------------------------------------------------------------------------- And -------------------------------------------------------------------------------- You cannot port executable code between 32-bit and 64-bit development systems. -----------------------
Problem: PC_PRINTER routines and RAW printing for sending data to electronic mailboxes Resolution: Some multi-function printer/copier/scanners have the ability to store reports in electronic mailboxes. The PC_PRINTER_OPEN routine can be used to display a dialog box that may have options to send to mailboxes, but any embedded PCL (Printer Control Language) code in the print data will not work. Using PCL code/printer escape codes, the RAW print method should be used instead. This method is demonstrated in the printraw demo available at http://supportline.microfocus.com/examplesandutilities/nesamp.asp under the Printing category. Advanced functions such as sending to electronic mailboxes are actually implemented by using PJL (Printer Job Language) instead of PCL, embedding both in the print data is possible. For more information to consult the printer/copier/scanner's documentation for PJL codes because this is a machine-specific environment. O
Problem: This demo shows how to write a VB.NET program to interact with and pass parameters to an unmanaged (procedural) Cobol program. It is different from the way a VB program calls a Cobol program. To find out what is new and different in VB .NET, here is a link to an interesting article: http://www.ondotnet.com/pub/a/dotnet/excerpt/vbnetnut_appa/index.html Resolution: BUILD W/RELEASE: NetExpress v4.0 & Microsoft VB .NET 2003 INTRODUCTION ========== The issues that will be addressed in the demo are the way to pass an integer, a string, and a structure. First, the integer now takes 4 bytes in VB .NET (2 bytes in VB), so it has to be defined as pic x(4) comp-5 in Cobol. Secondly, there is no fixed-length string in VB. NET. In VB, it was possible to define it as follows: MyPicX3 string * 3 One way to emulate the above in VB .NET would be to define a string and pad it with spaces to reserve the size to be
Problem: A graphical C Interface calling COBOL entry points with different formats Integer, Float, Double, Short, String.. Resolution: BUILD W/RELEASE: NetExpress v3.1 (tested with fixpacks as of 08/2001) ============ Microsoft Visual C v6.0 SOURCE FILES: ========= Program Files Description ---------------- ----------------------------------------------------------- Cobdll.APP Net Express project file to create the COBOL DLL Cobdll.CBL COBOL source code of the COBOL DLL mfguic.C C source code Mfguic.DSP C project file Mfguic.DSW C project workspace \\DEBUG\\MFGUIC.EXE C executable Copy Files: --------------
Problem: Form Designer fails to start in Net Express 3.1, 4.0, and 5.0, and displays the following error message: ----- Form Designer requires Microsoft Internet Explorer 4.01 or greater to be installed on this system. See Installation Notes for more details. Form Designer cannot continue. ----- The following error message occurs after clicking the OK button: ----- Mfnetx.exe - COBOL Text Window Execution error: file 'formdctl' error code: 240, pc=0, call=1, seg=0 240 Object reference not valid ----- Resolution: The November 2006 update of Microsoft suggested to upgrade Microsoft Internet Explorer (IE) to v7.0. This issue has been fixed in WrapPack 3 (WS3) for Net Express 5.0, and there is no fix for this for Net Express 3.1 and 4.0. The alternative for Net Express 3.1 and 4.0 is to uninstall IE7 and install IE6 instead. Old KB# 4373
Problem: This demo shows how to generate and animate a dump file using the core_on_error runtime tunable. See also KB article 23215 for details of doing this using the CBLCORE utility. Resolution: BUILD W/RELEASE: Express v4.0 including ALL03N40 WrapPack. SOURCE FILES: ========== Program Files Description ---------------- ----------------------------------------------------------- CBLCORE.CBL Test program that will cause a runtime 114 error Resource Files: --------------------------- ----------------------------------------------------------- COREONERROR.CFG Runtime tunable file DOIT.BAT Bat file OPERATION: ======== From a Net Express Command Prompt execute the included BAT file, doit.bat. This bat file compile for animation and link the test program then it will set the COBCONFIG_ environment  
Problem: Assuming that code such as:- 01 ws-data pic x(20) value spaces. .... MOVE "HELLO WORLD" TO WS-DATA The value at initialization will be something like "Y?a¤Y?a¤Y?a¤Y?a¤" and after the move statement ws-data will contain something like "Hello WorldY?a¤Y?a¤", seems to have included incorrect values. Resolution: This issue only occurs when the code is executed on a Virtual PC 2004 or Virtual Server 2005 virtual machine image. Microsoft have been made aware of this problem and it will be fixed in Virtual PC 2007 and Virtual Server 2007. The problem is caused by Virtual PC not correctly handling some MMX Intel Chip instructions that get generated by the .Net Common Language Runtime JIT Compiler. Please note this only affects Net Express Version 5 COBOL .Net based application. Net Express unmanaged application an
Problem: 105 memory allocation error when invoking internal method of COM class that is passed a pointer Resolution: Be carefull when hand-coding (when not using the method wizard) any methods in a COM class. The reason is invoking the method using the INVOKE SELF syntax from within the COM class itself, the runtime will invoke it as a COM method (as opposed to a non-COM Ojbect COBOL method) and will coerce parameters to COM types. This could especially be a problem passing a pointer as a parameter and the COM runtime coerces it to something else. In this case it is possible to end up getting a 105 (memory allocation) error. It is recommended to use the method wizard when adding COM methods to a class. The wizard will guide in creating parameters with proper types. If there is a need to hand-code any methods that accept non-COM types, then to create a separate Object COBOL class (one that does not inherit from olebase) and to add the methods there. Then, to inst
Problem: This sample demonstrates how to use the TestCover compiler directive and support tools. Resolution: BUILD W/RELEASE: Net Express v4.0 with December 2003 Websync. This demo uses the Net Express DEMO\\LOCKING demo to demonstrate the TestCover utility. For instructions on how to use/run LOCKING demo please the the README file in your Net Express\\BASE\\DEMO\\LOCKING folder. SOURCE FILES: ========= Resource Files: Description ---------------- ----------------------------------------------------------- .\\TCF\\LOCKING.TCF Test Coverage configuration file RunTC.bat BAT command file that will generate the
Problem: Example of Net Express working with MQSeries Resolution: 1). IBM MQSeries client or server Developers Toolkit must be installed on the machine that will build the application. This creates a "tools" directory below the directory that you installed IBM MQSeries, with a sub directory called "lib". The "lib" directory will contain the link file needed for execution on a server machine; mqmcb32.lib or for a client machine; mqiccb32.lib. 2). For simplicity I have added the directives in the beginning of the program as $SET statements. The LITLINK directive is used to resolve the literal at like time as public symbols. 3). The linking of an EXE will require the correct link library for IBM MQSeries installed on the machine that will run the program. IBM MQSeries Client machine requires "mqiccb32.lib" added to the Advance Category of the Build Settings L
Problem: This demo demonstrate how to use the PROFILER utility. Resolution: BUILD W/RELEASE: Net Express v3.1 with fixpacks as of 05/2002 SOURCE FILES: ========== Using the Net Express supplied BEVERAGE HTML demo. REQUIREMENTS: ========== OPERATION: ======== To use the PROFILER utility you need to add the PROFILE compile directive. In this case the directive was added to the Project/Properties directive box. Step 1: Rebuild and run the sample. Step 2: After the completion of the program a file with the extension IPF will be found under the DEBUG directory. To generate the PROFILER report start a Net Express Command Prompt and run the supplied BAT file called PROFILERSAMPLE.BAT. After the completion of Step 2 a new file will be generated under the DEBUG directory with a PRF extension, in this case BEV_H.PRF. This is the report file generated by the PROFILER utility. NOTE: ==== For more details
Problem: Release: 5.0 Error: Runtime Error! Program: ...am Files\\Micro Focus\\Net Express 5.0\\Base\\Bin\\MFNETX.exe abnormal program termination Resolution: Registry entries that are being "marked" as invalid by the Norton One Button Checkup utility are the ones that are made when the Micro Focus OCX files are registered as part of the installation process. These are the files that are located in C:\\Program Files\\Common Files\\Micro Focus. So the likely short-term solution would be to manually register the OCX files again. For example; Open a command prompt Go to C:\\Program Files\\Common Files\\Micro Focus Run this command REGSRV32 valueedit.ocx And so on for every ocx file in that directory. Also, there is a choice NOT to repair these supposed errors. So after re-registering the OCX files should abstain from getting &qu
Problem: Open ESQL supports the WITH HOLD syntax of the DECLARE CURSOR statement. WITH HOLD maintains resources across transactions or multiple units of work. Cursors defined by WITH HOLD will remain open after a COMMIT. This is of course dependent on whether the ODBC interface supports this functionality and whether the ODBC data source has been configured to enable this capability. If WITH HOLD is not supported you will receive a sqlcode of -19520 Connection does not support HOLD cursors on the OPEN CURSOR statement. Resolution: BUILD W/RELEASE: NETExpress 3.1 The program creates two tables in the database and inserts records into both. A cursor is opened on the first table using the 'WITH HOLD' option of the DECLARE CURSOR statement. A row is fetched and then a row from the other table is updated and committed. The next row is fetched from the table, if sucessful the "WITH HOLD" option prevented t
Problem: When compiling a program using Cobsql and the Oracle COBOL precompiler, Pro*COBOL, and the length of the current working directory is over 256 characters, the following error may be returned : * Micro Focus COBSQL Integrated Preprocessor * Net Express Version X.Y * URN AAAPA/ZZ0/00041 * CSQL-I-018: Invoking ORACLE Precompiler/Translator The system cannot find the path specified. * CSQL-F-021: Precompiler did not complete -- Terminating Resolution: The messages contained in that compiler output usually occur due to the length of the path to the current working directory, which causes the command line passed to Pro*COBOL to be too long. The command line should be less than 256 characters. Please make sure to compile (or pre-compile) programs from a shorter directory structure. Old KB# 4371
Problem: This demo demonstrate how to use the FAULTFINDER production debugging utility. FaultFinder is an aid to debugging production applications. Resolution: BUILD W/RELEASE: Net Express v3.1 with fixpacks as of 05/2002 SOURCE FILES: ========== Program Files Description ---------------- ----------------------------------------------------------- faultfind.cbl Resource Files: ---------------- ----------------------------------------------------------- faultfind.cfg Configuration file used to setup FAULTFINDER REQUIREMENTS: ========== Simply do a Rebuild All in the project. OPERATION: ======== 1) From a Command Prompt go to the RELEASE of the project and set the COBCONFIG_ environment variable to; SET COBCONFIG_=FAULTFIND.CFG 2) Run the sample program
Problem: Release: 4.0 How to write XML with repeating elements? Resolution: This article shows how to create an XML file/document that has a repeating element, one that has the maxOccurs="unbounded" attribute. The following is based on the excerpt below from an XML schema file that describes Weather Forecasts. It has 2 main elements, WeatherForecastHeader and WeatherForecast which each have some child elements. In this article you'll also see the word node mentioned to refer to an element. The WeatherForecastHeader occurs only once, but the element named "WeatherForecast" can repeat any number of times as suggested by the attribute maxOccurs="unbounded". <xs:element name="WeatherForecasts"> <xs:complexType> <xs:sequence> <xs:element name="WeatherForecastHeader" maxOccurs="
Problem: When trying to use Interface Toolkit Mapping for generating an EJB on Weblogic the following error appeared: Error 500--Internal Server Error java.rmi.RemoteException: EJB Exception: ; nested exception is: java.lang.NoClassDefFoundError: com/microfocus/cobol/connector/cci/CobolInteractionSpec at weblogic.ejb20.internal.EJBRuntimeUtils.throwRemoteException(EJBRuntimeUtils.java:102) at weblogic.ejb20.internal.BaseEJBHome.handleSystemException(BaseEJBHome.java:296) at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:284) at weblogic.ejb20.internal.StatelessEJBObject.postInvoke(StatelessEJBObject.java:168) at com.mypackage.MapS19D.MapS19DEJB_1ainp9_EOImpl.S190(MapS19DEJB_1ainp9_EOImpl.java:56) at com.mypackage.MapS19D.MapS19DServlet.performTask(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(Unknown Source) at com.mypackage.MapS19D.MapS19DServlet.doPost(Ljavax.servlet.http.HttpServletR
Problem: This is a "Mixed Language" 'C' and COBOL project. It was created using NetExpress version 3.1 and Microsoft Visual Studio version 4. It has been tested with Microsoft Visual Studio C/C version 6. The project illustrates how you can incorporate editing, compiling and building 'C' source programs together with COBOL source programs within a common project Resolution: SOURCE FILES: ========== Program Files Description --------------------- --------------------------------------------------------- CNCBLFH.C The initial program of this example. This program displays a couple of messages to the console &
Problem: Release 5.0 .NET: The following statement compiles well even the STRING definition has no length specified. This form is very useful but it is not reflected in the documentation. EXEC ADO DECLARE MYTABLE DATATABLE ( COL1 INT16 NOT NULL, COL2 STRING NOT NULL, COL3 INT16, CONSTRAINT PK_MYTABLE PRIMARY KEY(COL1)) END-EXEC. What are the impacts on using this form? Resolution:
Problem: This project is intended to demonstate how Delphi can be used to call Net Express COBOL Modules. There is an Inprise DELPHI project PROJECT1 which has the Delphi source code included. Please note that it not possible to debug both the Delphi and COBOL components within the same process. Resolution: Attachments: delphi.zip Old KB# 4342
Problem: How to get a machine's MAC address and IP address in a .NET managed COBOL Application? Resolution: The MAC address of a network card is a unique number that is burned into each card produced. It will always be unique and will not be duplicated on any other network card. V2 of the .NET Framework introduced some new classes in the System.Net.NetworkInformation namespace that allows to get details information on the machines network configuration. An example how to use these classes is attached. The code to get the IP and MAC address is: set IPProps to cIPGlobalProperties::"GetIPGlobalProperties"() set label1::"Text" to string::"Concat"("Machine Name = ",IPProps::"HostName","
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.