Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Created On: 8 June 2010 Problem: Question on use of C# string specifier @:In the C# code snippet below: DirectoryInfo info = new DirectoryInfo(@"C:\\Documents and Settings");The @ specifier indicates a verbatim string in C#. Resolution: Here is the definition from the C# programming guide: Use verbatim strings for convenience and better readability when the string text contains backslash characters, for example in file paths. Because verbatim strings preserve new line characters as part of the string text, they can be used to initialize multiline strings. Use double quotation marks to embed a quotation mark inside a verbatim string. The following example shows some common uses for verbatim strings: C# Copy Code string filePath = @"C:\\Users\\scoleridge\\Documents\\"; //Output: C:\\User
Created On: 7 June 2010 Problem: When calling a COM interface that was generated using the IMTK, (Interface Mapper Toolkit), from a .NET client program sometimes the error "MFCLBINP Error 402" is reported when the interface method is called.This occurs when the unmanaged COBOL program which will be called by the COM interface is a Dynamic Link Library (.DLL) and it is not linked to the multi-threaded runtime system. Resolution: This only occurs if a .DLL is being called. .int and .gnt programs do not exhibit this behavior.Please ensure that the .DLL to be called from the generated COM interface is linked to the multi-threaded run-time system.If this .DLL is created in a Net Express project then using the IDE, select Project->Build Settings->Link Settings and check the Multi-threaded option.If you are creating this .DLL using cbllink then use the option -rM. Incident #2452152 Old KB# 31154#COM#402#MFCLBINP#IMTK
Created On: 14 June 2010 Problem: I am unable to connect more than ten WOW Thin Client sessions to my Linux server. Resolution: This issue is caused by a change to the xinetd service daemon defaults on some Linux distributions.The "per_source" attribute specifies the maximum number of instances allowed to a single source IP address. On some Linux variants this default is set to a value of 10. In order to address this issue you will need to modify your "rpcplus" xinetd configuration file ( /etc/xinetd.d/rpcplus ) and add the "per_source" attribute. For example: service rpcplusper_source = UNLIMITEDYou will need to restart the xinetd daemon after making these changes. Please check your Linux distribution's manuals for information on how to restart xinetd. Incident #2447770 Old KB# 31178
Problem: My current index files are not file version 4. Should I upgrade these index files to file version 4? Resolution: By upgrading to file version 4 you can take advantage of two very important enhancements. 1. The ability to create large files (greater than 2GB)2. Atomic I/O (eliminates most file corruption)Large File SupportThere are several steps to adding support for large files for existing index files: 1. The first step is to make sure that the operating system supports the creation of files greater than 2 GB. This may involve changing the file system, a kernel setting, or even the ulimit associated with a user account shell. Your systems support person will need to accomplish this as each operating system may handle it differently.2. Next, edit the default configuration file (runcobol.cfg) located in the RM/COBOL installation directory (usually /usr/rmcobol). Add the following two records to that file:RUN-FILES-ATTR LARGE-FILE-LOCK-LIMIT=
Created On: 2010-04-27 Problem: How do you cause a COBOL DLL to be animated automatically when it is called without code change? Resolution: The usual method to cause a Cobol subprogram to be animated automatically when it is called is to insert a CALL “CBL_DEBUGBREAK”. The old way of setting the Cobol switch A still works in Net Express (i.e. COBSW= A) Incident #2355590 Old KB# 31085
Created On: 2010-04-27 Problem: We are receiving an Access Violation or a loop occurs when PCOMMAIN precompiles from a directory structure that contains a space in its name. Why is this? Resolution: This is a known issue with PCOMMAIN in Migration Software Development Kit for Net Express 5.0, and the workaround is to avoid any spaces in the name of the working directory. Incident #2425614 Old KB# 31082
Created On: 2010-04-22 Problem: Customers may have file or library names that contain the “.” character in the name. When attempting to download a library name that contains the “.” character the following SQL error is encountered: [Micro Focus] [RUMBA Data Access] Syntax error or access violation. SQLSTATE = 42961[ : The relational database is not the same as the current server. SQLCODE= -114. : Relational Database XXXX SSSSSSSS is not the same as server. In the above example error XXXX would be the characters preceding the “.” character in the library name and the SSSSSSSS would be the system name. If attempting to download both a file name and library name that contain the “.” character the following SQL error is encountered: [Micro Focus] [RUMBA Data Access] Syntax error or access violation. SQLSTATE&n
Created On: 21 May 2010 Problem: How do you setup a CTF Trace while running a Net Express application? Resolution: To run the trace:1. Create a file called ctf.cfg with the following entries: mftrace.level=debugmftrace.dest=BINFILE ## Emitter BINFILEmftrace.emitter.binfile#location=.\\ ## Component Run-time Systemmftrace.comp.mf.rts#all=true ## Component External File Handlermftrace.comp.mf.mffh.xfh#bsio=truemftrace.comp.mf.mffh.xfh#mem=truemftrace.comp.mf.mffh.xfh#base=truemftrace.comp.mf.xfh.mfh.xfh#file:*=true 2. Set the environment variable MFTRACE_CONFIG: set MFTRACE_CONFIG=.\\ctf.cfg 3. Run application. One or more files with the extension .ctb will be created. Incident #2454368 Old KB# 31075
Created On: 2010-04-27 Problem: A COBOL subprogram that used to run successfully with the old Micro Focus Workbench now fails with RTS 114 after it was recompiled with Net Express. The program is compiled with INITCALL"STE.DLL", which is a C DLL. Resolution: To resolve this problem is to load the DLL as follows:1. Define a PROCEDURE-POINTER field, for example, 01 MyDllPtr PROCEDURE-POINTER.2. Insert a SET ... TO ENTRY ... statement at the beginning of the PROCEDURE DIVISION, e.g. SET MyDllPtr TO ENTRY "STE.DLL" Incident #2419099 Old KB# 31083
Created On: 2009-04-24 Problem: Does RUMBA 8 support a Single Sign-On connection to an iSeries via Kerberos? Resolution: Yes, with its support for Kerberos, RUMBA 8 provides SSO capabilities for AS/400 and iSeries offering streamlined client authentication which reduces administrative costs. To enable SSO for the AS400 Display follow these steps: 1. Bring up the AS400 Display and choose Connection/Configure.2. On the General tab, choose TN5250 and fill in the appropriate destination information3. On the Security tab, click the Security Button4. Check the Kerberos box under Active Security Protocols 5. Choose Ok and you may now Connect Please note that there has been a change in Kerberos authentication on Windows 7 and Windows 2008 Server R2 requiring configuration on the client side. See http://technet.microsoft.com/en-us/library/dd560670(WS.10).aspx for details. Old KB# 31074#Rumba
Created On: 2010-04-30 Problem: When compiling BMS maps using the command line tool mfbmscl in Net Express 6.0, we are getting message ‘DFHMDF LABEL TOO LONG’ . In Net Express 6.0 IDE, we have enable option “Allow long macro label names” on the Project Build Settings, BMS Advanced tab. What is the equivalent command line option is for the “mfbmscl” BMS compiler? Resolution: The equivalent command line option is called "High level assembler features" in Net Express 6.0. To solve the problem with long labels use the additional directive/HLL when compiling BMS using command line tool. Old KB# 31081
Created On: 2010-04-30 Problem: When Using OpenESQL and explicitly qualifying the ODBC table causes SQLCODE=-206 at execution, is there an equivalent to the DB2(QUALIFIER=xxx) directive when using SQL(DBMAN=ODBC)?The following code snippet causing SQLCODE -206 during execution:$SET SQL(DBMAN=ODBC)EXEC SQL SELECT TABLE1.COL1 INTO :WS-COL1FROM DB2PROD.TABLE1END-EXEC Resolution: If all applications use the same schema, set the CURRENTSCHEMA CLI parameter in the DB2 ODBC Driver. If they do not use the same schema, you can add a EXEC SQL statement to set the CURRENT SCHEMA in the application itself.For example:EXEC SQL SET CURRENT SCHEMA = 'DB2PROD' END-EXEC. If compilation error occurs, set the CURRENT schema as a dynamic SQL statement move "SET CURRENT SCHEMA = 'DB2PROD' " to stmtbufEXEC SQLEXECUTE IMMEDIATE :stmtbufEND-EXEC Incident #2449126 Old KB# 31080
Created On: 2010-04-27 Problem: How do you receive a variable length string in a COBOL program? Resolution: The receiving field must be defined as PIC X ANY LENGTH from the Linkage Section as shown below: LINKAGE SECTION. 01 Field-Name PIC X ANY LENGTH. There is a sample project attached to this Knowledge Base article. Incident #2358782 Attachments RecAnyLen.zip Old KB# 31084
Created On: 2010-05-07 Problem: The following behavior occurs when using WIN32_NATIVECTLS (set to “1” or “ON”) runtime variable on Windows 7: The DateTimePicker control generates an NTF-CHANGED event when either the month or day is clicked or changed. The expected behavior is to only generate an NTF-CHANGED when dates are clicked or changed. The additional month NTF-CHANGED event behavior does not occur when using WIN32_NATIVECTLS on Windows XP. Resolution: Microsoft significantly modified the Windows 7 DateTimePicker control behavior. Windows XP versions of this control send an NTF-CHANGED event when a date is selected. With Windows 7, the control also sends an NTF-CHANGED event when the month is changed. On Windows 7 and when using the WIN32_NATIVECTLS runtime variable (set to “1” or “ON”) you will receive an NTF-CHANGED event when the month is changed. You should be aware of this event and handle it with COBOL logic. Old KB# 30987
Created On: 2008-09-30 Problem: Under UNIX, you need to manually configure EnterpriseLink to have its Repositories reside in an ODBC Database. Resolution: You will need to download and install the 32bit ODBC drivers for the database you are trying to connect to. After that, you need to edit the env.sh file located in the Elink config directory to add any environment variables that might be needed to be able to load these ODBC drivers. For example, using the EasySoft MS-SQL ODBC Drivers on AIX, you would need to provide the LIBPATH variable pointing to the lib directories where the EasySoft shared libraries are located: LIBPATH=/usr/local/easysoft/lib:/usr/local/easysoft/unixODBC/libexport LIBPATH Add the appropriate entries in the EnterpriseLink.cfg file located in the Elink config directory.For example if using the EasySoft MS-SQL ODBC Drivers on AIX: [ODBC Drivers]SQL Server = Installed [ODBC Data Sources]ELRepository = 0SQL Server [SQL Server] Driver &nbs
Created On: 2010-04-23 Problem: When capturing screens in EnterpriseLink Loader, I am unable to navigate from field to field using the TAB key. Resolution: This is a limitation of the Loader, you must use the mouse and click on the field you want to edit. Old KB# 30985#EnterpriseLink#Rumba
Created On: 2010-02-25 Problem: The following error is encountered when attempting to execute the distribution packager utility that is packaged with Web-to-host version 6.0:“This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix the problem.” Resolution: The Microsoft Visual C 2008 Redistributable Package (x86) is required to run this utility. To resolve this issue, download and install the Microsoft Visual C 2008 Redistributable Package (x86) from the following location:http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en Incident #2433262 Old KB# 30924#OnWeb#Web-to-Host#Rumba
Created On: 2010-03-08 Problem: In the most common environments, Vision files are accessed and modified by Runtime and AcuXDBC at the same time. This can cause access conflicts, especially when Transactions are involved. Resolution: Acucobol-GT documentation reports that “A transaction is a group of related file operations that are treated as an indivisible unit. The purpose of defining such transactions is to ensure that related files can be restored to a consistent state when errors occur.” Here it is how transactions can be turned on in an AcuXDBC environment and how they work.In the acuxdbc.cfg file, these are the variables that turn on transactions:transactions ontransaction_processing onTo enable transaction logging and encryption, turn on these variables:# logging off# log_encrypt o
Created On: 2010-04-27 Problem: When compiling, an error message appears: "Ignored - nestcall". What exactly is the NESTCALL directive, and what can be done to make the compilation error go away? Resolution: Nested program syntax is where a COBOL program is defined inside another COBOL program, for example, in the following 18 lines of code: 000001 identification division.000002 program-id. main-prog.000003 working-storage section.000004 01 data-item-1 pic x(5) is global.000005 procedure division.000006 move "hello" to data-item-1.000007 call "sub-prog-1".000008 stop run.000009000010 identification division.000011 program-id. sub-prog-1.000012 environment division.000013 d
Created On: 2010-04-27 Problem: Although compiler directives can usually be specified in the file $COBDIR/etc/cobopt, in some circumstances, directives specified in that file might not take effect. Resolution: The explanation is that, when operating in 64-bit mode, a person must modify the file: $COBDIR/etc/cobopt64 instead of the file: $COBDIR/etc/cobopt To solve the problem, first verify the operative bit-mode using the “cobmode” command, then make modifications to the corresponding “cobopt” file. Old KB# 30879
Created On: 2010-03-23 Problem: Using something like cron jobs or some other type of scheduler, which runs multiple mfsort routines at the same time, returns return-code =8. The problem is that return-code=8 is set by SYSOUT being locked. To run the sorts concurrently you'll need to start each sort in a different directory. Resolution: During a sort or merge operation, mfsort uses temporary work files located in either the default tmp directory or in the directory specified by the TMPDIR environment variable. During the sort operation - mfsort copies all the records from each of the input files into the temporary working directory. The work files are then sorted or merged according to its key description. After being sorted or merged in the work files, the records are copied to each of the output files. The error occurs when using the same temporary working directory that sorts the file. To randomly assign the temporary working directory
Created On: 2010-04-14 Problem: When installing 8.1.2 AcuXDBC as a standalone product, the first time that it is used an error “The System cannot execute the specified program” is displayed. Resolution: Install the redistributable files from Microsoft for Visual Studio 2008: http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en Incident #2438288 Old KB# 30922
Created On: 2010-04-22 Problem: In a linux server, ACUCOBOL-GT runtime has to be relinked to Oracle libraries so that Acu4GL can work properly.Only shared libraries version of runtime can be linked with Oracle (or other databases). At the end of the relink process it’s common to get this error running the new runtime:oracle@linux:/usr/acu812/lib> ./runcbl -vv./runcbl: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory Resolution: To provide to runtime all the libraries it needs to work, an environment variable called LD_LIBRARY_PATH must be set.It shall contain the full path to ACUCOBOL-GT LIB directory and the full path to Oracle LIB directory. This is an example of how to set this variable:Export LD_LIBRARY_PATH=/usr/acu812/lib:/usr/app/oracle/product/11.2.0/client_1/lib:$LD_LIBRARY_PATH Note: it is highly suggested to add $LD_LIBRARY_PATH at the end of the string, so that no previous value of this
Created On: 2010-03-17 Problem: I prefer that my COBOL application sends a message to a local Windows user or to a local or remote Windows computer to inform, for example if a specific event occurrs such as an error. How do I proceed? Resolution: Please find the code attached to this KB. Simply use the Microsoft command Net Send. See that the demonstration attached uses an Error handler and the RTS error which occurs in the code is sent as an Alert message. Note that the Net Send Microsoft command implies the Microsoft Service named “Messenger” to be started. (Microsoft Service Messenger: Transmits net send and alerter service messages between clients and servers. This service is not related to Windows Messenger. If this service is stopped, Alerter messages will not be transmitted.) Attachments CobNetSend.cbl Old KB# 30864
Created On: 2010-03-26 Problem: We created an application COBOL with a Language C module that call the C fucntion malloc in 32bits mode. This application runs fine. We tried it in 64-bit module and the following error is displayed: Execution error : file 'name' error code: 114, pc=p, call=c, seg=s Resolution: In 64bits the Language C module must include the file stdlib.h . Example #include <stdio.h>#include <stdlib.h>#include <pthread.h> typedef struct s_resultat { int n_char ; int n_line ; } Resultat;void * one_file( arg )void *arg;{ Resultat * res = ( Resultat *) malloc ( sizeof(Resultat)); char * filename = ( char *) arg;/* sp2 ( &( res->n_line) , & ( res->n_char ));*/ printf(" %d %d \\n",res->n_line,res->n_char); res->n_char = res->n_line = 0; pthread_exit (( void *)res); return ( void *) res;} Old KB# 30870
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.