Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
This article explains why Deletion of Service Interface fields with many subordinate fields hangs for a long period of time. Problem: The process to delete a large Service Interface field in Interface Mapping Toolkit consumes the CPU usage at 100% for a long period, and causes it to hang for a long period of time. This problem is an internal one where the deletion function is doing extra unnecessary manipulation of internal structures, especially when deleting a field that has many subordinate fields. Resolution: This problem was identified in Net Express 5.0, and has now been fixed in Net Express 5.1. Incident Number: 2154960 Old KB# 14380
This article explains how to create and print a hardcopy compilation listing using TBOX / SDE developers tool. Problem: One of the options within SDE during program compilation is to create a listing file. This option is enabled by using F4 while the compilation command menu is displayed. By default this listing is not automatically sent to a printer. How can you get the SDE or TBOX integrated development tools send listing to a printer? Resolution: In order to have the SDE or TBOX integrated development tools send a listing to a printer, the environment needs to be set to force the listing output to a system printer. Before starting SDE or TBOX set an environment variable named DD_LST so that it contains the command needed to ‘pipe’ output to the system’s ‘lp’ command. For example: export DD_LST=”> lp”.Then start the development tool SDE. This will cause the listing created during the compile to be routed to the system print
This article addresses what to do when an error occurs while installing Server Express 5.0 on LINUX. Problem: When installing Server Express version 5.0 on LINUX the following error occurs: "bin/cobconvstrtest: error while loading shared libraries: libstdc .so.6: cannot open shared object file: No such file or directory" Resolution: The Server Express version 5.0 product for LINUX is a dual mode product, meaning it supports both 32 bit and 64 bit COBOL applications. During installation of Server Express 5.0 the install script searches for the 32-bit gcc libraries (libstdc .so.6) located in /usr/lib. If the operating system on the target machine is 64-bit only, then the 64-bit gcc (libstdc .so.6) is installed in /usr/lib64 and the 32-bit libraries are not installed. This error message occurs when the target machine is setup to run only as 64-bit. That is, the target machine does not have the gcc 32-bit installed. The resolution is to download an
Read-only entry fields no longer change background/foreground colors with 8.1.0. They are shown only in gray. Problem: Read-only Entry Fields used to allow their foreground or background colors to be modified. The Runtime version 8.1.0 stops this behavior, and leaves the read-only field gray. Resolution: This change was made to follow Windows standards and was implemented with ECN-3699 released in 8.1.0. You can turn this behavior off so that your applications will not be affected by this change. Set the following configuration variable in cblconfi: ECN-3699 0 The value "0" turns the ECN off, value "1" activates the ECN and entry-fields remain gray. This configuration variable has been introduced in ECN-3848, available in the future release of ACUCOBOL-GT 9.0. Incident Number: 2131301 Old KB# 14428
This article explains how to capture the process ID for the currently running COBOL application. Problem: How can the process ID (PID) within a running COBOL program be captured? Resolution: To capture the process ID for a currently running COBOL application, you can code a COBOL CALL statement to use the system function getpid(). The standard C libraries contain the function getpid(), which can easily be called/used from within a COBOL program. Sample COBOL code fragments Sample program fragment Include the ctypes copy file from within the COBOL product directory as the first line in the COBOL program. copy '$COBDIR/demo/c-cobol/ctypes.cpy' WORKING-STORAGE SECTION DATA DIVISION Define the data item where the process id should be returned 01 current-pid long PROCEDURE DIVISION Call 'getpid' returning current-pid The returned integer can be used as a part of temporary filenames, or to identify log file en
This article describes the changes required to run multiple instances of OnWeb server on an iSeries. Problem: When multiple instances of OnWeb Server are required to run on the same iSeries configuration changes are necessary to avoid resource contention. What are these? Resolution: You can install multiple OnWeb Servers on an iSeries system byperforming the following steps: Specify a different HTTP Server directory Install the second instance of OnWeb Server into a different BaseLibrary and installation directory on the IFS. During theinstallation make sure you specify a unique Internal Server Portnumber Due to restrictions in the operating system, it is only permissibleto have one active subsystem with the same name. When installingmore than one server on the same iSeries, you will have to renamethe subsystem of the subsequent server(s) from OnWeb to a differentname. Enter the following commands:RNMOBJ OBJ(Base_Library/ONWEB)OBJTYPE(*SBSD) NEWOBJ(Subsystem_Name) CHGDTAARA DT
This article explains how to display active sessions when using the Connection Viewer to monitor RSS clients. Problem: After installing and configuring RSS Server on Windows Server 2003, the Connection Viewer application doesn’t properly display the currently active sessions. Is this due to insufficient permissions granted to the account under which the Connection Viewer is running? If so, how can this be resolved? Resolution: To remedy the problem, find the account that is configured in IIS: On the IIS server where RSS is installed, open the IIS Services Manager Navigate to the Web server instance they are using. Right click and select “Properties”. In the Web Site Properties dialog, select the “Directory Security” tab. Under the “Authentication and access control” section, click the “Edit…” button. If the “Enable anonymous access” checkbox is selected, make a note of the account in the “User Name” field. Check to see if “Integrated Windows
Attempting to launch the Web to Host configuration wizard on Windows Vista gives the error message: "No valid extensions are available for configuration!". Problem: When attempting to access a local installation of Web to Host on a Windows Vista PC the following error is encountered: ‘No valid extensions are available for configuration!’ Resolution: This is a result of the MIME type changes noted below and documented by Microsoft at http://support.microsoft.com/default.aspx?scid=kb;en-us;326965 For some reason .htpl files are not recognized by IIS server. After adding *(text/plain) to MIME types on IIS server, those files are read correctly. Old KB# 14431#Web-to-Host#Rumba#OnWeb#ProClient
This article explains why the ViewNow X server does not honor the –geometry parameter when starting X clients. Problem: When X clients are started with the –geometry parameter, ViewNow X server doesn’t honor the position information given. Why is this? Resolution: In ViewNow X, the –geometry flag is overridden by settings in the server which are intended to prevent windows from inadvertently obscuring each other. These settings can be changed to prevent this behavior by performing the following steps: Launch the ViewNow X control panel. From the Start menu, go to Start > Programs > ViewNow > X Windows > Control Panel. Alternatively, launch \\Program Files\\NetManage\\APPS\\X\\CPanel.exe from the command line. From the Options menu, select “Window…” On the Window Management dialog, uncheck the “Cascade Windows” option. Click OK to dismiss the dialog. Re-launch the ViewNow XServer. Subsequent invocations of X clients with the –geometry parameter present will now appe
This article describes the proper alignment of data within a COBOL group item using the ‘h2cpy’ utility. Problem: When creating COBOL applications which use C language routines and data is passed within a struct (structure) the alignment rules for COBOL do not always agree with the rules used when defining the struct in C. When a struct is defined in C, the alignment of data items on proper boundaries occurs automatically. When attempting to duplicate the definition of the struct in COBOL, there is no automatic adjustment for alignment rules. How is it possible to achieve alignment of data within C language structures? Resolution: An easy way to achieve the proper alignment of data within a COBOL group item is to use the utility ‘h2cpy’ which is delivered with the Server Express product. The h2cpy utility uses a C language header file (.h) as input and it produces a COBOL copyfile (.cpy). The structures found in the .h file will be translated to
This article explains how to prevent the command line from discontinuing processing a batch compile to ask the user for input. Using the given directives will ensure that it continues the whole way through. Problem: When compiling a long list of applications, there may be the need to ignore some errors and just continue on to the next application. Normally, if the compiler comes across a reference to a copybook that cannot be found, the user is prompted to Stop/Retry/Continue/Alter-path and the user must select one of the options before the compiler will continue. This is not the desired behavior when running batch compiles. Resolution: To avoid the batch stoppage, the user can specify the compiler directive NOQUERY. It details that for each missing copybook the compiler encounters; it will produce an error message and continue without any interface with the user. This is the ‘Continue’ option that the user was presented with before. The user should also
This article explains how to invoke a UNIX command from within COBOL using CALL “SYSTEM” and retrieve the return code of the command. Problem: Micro Focus Server Express and Visual COBOL provide a way for UNIX commands to be invoked from within COBOL. This is done by calling a routine named SYSTEM. Individual UNIX commands such as "ls" or "pwd" can be invoked, or entire shell scripts or executable programs can be invoked. How can the return code from the UNIX command be retrieved and communicated back to COBOL? Resolution: Here is an example of the COBOL syntax for invoking a UNIX command: CALL "SYSTEM" USING CMD-LINE. "SYSTEM" (uppercase) preserves the COBOL screen and state of the terminal, then calls the UNIX system() routine (lowercase), then afterwards restores the COBOL screen and terminal. For more information about "system", see the system(3) man page. It is possible to call "system" (lower
How to capture network packets using WireShark. Problem: In order to troubleshoot certain types of issues, it may be necessary to take a network trace. Also known as a 'sniffer trace', this captures all communication to and from the workstation, providing a low-level view of network traffic. Resolution: To take a network trace using WireShark: Install the WireShark network sniffer. WireShark can be downloaded from http://www.wireshark.org/download.html When the installation completes, start WireShark. Select Capture > Interfaces from the menu. Click the Options button for the desired interface. Configure the capture options: Capture packets in promiscuous mode. This option allows for the capture of packets with destinations other than the workstation where WireShark is running. Normally, this should be left checked. Limit each packet to. This option should be left unchecked to allow all packet data to be captured. Capture Filter. This
This article addresses how to resolve the runtime error message 199. Problem: A runtime 199 will occur when a program is accessing a file that is located on a remote resource and somehow a network "glitch" happens that will get the runtime/file handler confused. In rare situations, it may be caused by an out-of-date installation of Net Express 4.0 which was reporting 199 errors instead of the actual runtime errors. How can this be resolved? Resolution: If this issue is seen on Net Express 4.0, and the version of Net Express 4.0 installed is not 4.0.38 then it should be upgraded with the all08n40.exe WrapPack available from http://supportline.microfocus.com. This should solve the issue if the 199 errors are being improperly reported by the runtime system. The actual runtime errors should now be reported. If this is an already upgraded version of Net Express 4.0, or a later version of Net Express, some possible workarounds include: a) Move the file being rea
This article addresses the unpredictability of the value in the RETURN-CODE special register once COBOL has called an Oracle routine. Problem: In an application that uses Pro*COBOL, COBOL passes control to Oracle routines (for example, during a SQL CONNECT), after which the flow of control returns to COBOL. On one occasion the COBOL special register RETURN-CODE had been modified by Oracle and that it carried a large and meaningless value. This was despite the fact that the SQL statement had succeeded and the SQLCODE was zero. As a rule COBOL does not modify RETURN-CODE (except if the program contains RETURNING syntax or if a fatal runtime error occurs). A meaningless value supplied by Oracle will remained unmodified within COBOL. At the end of the program, COBOL will report this RETURN-CODE to the invoking shell. The shell can access it via "$?", for example: cobrun myprog if [ $? -ne 0 ] then echo "non-zero return code" fi On one occasion, a shell script noti
Acushare will not allow new runtimes to start and behaves incorrectly when commands are issued. Problem: When starting a program, a message that "Acushare 7.0 or later not running" is received.The Unix command “ps -ef | grep acu” reports that no runtime processes running. “acushare –start” returns "already running", and “acushare –kill” reports "failed to connect to server". Resolution: Typically this indicates that Acushare was terminated abnormally (kill -9, which it can't catch,) or it crashed. Should acushare terminate unexpectedly, its master shared memory segment may be left behind. Before restarting acushare, you should use the "acushare -clean" command to remove the stranded memory segment. $ ./acushare acushare: failed to connect to server $ ./acushare -clean acushare: shared memory segment removed $ ./acushare -start acushare: ope
This document describes how to send the "at sign" to the Rumba emulator from a script. Problem: When sending the "@" character to the Rumba display from a script, the character does not appear on the display as expected. How can this be done? Resolution: There are times when it may be desirable to send the "@" character to the Rumba display from a script. For example, if an email address needs to be inserted into a field. One might expect to call EMSendKeys to perform this task as follows: EMSendKeys "User@mydomain.com" This script doesn’t work as expected, because the "@" sign is interpreted as an escape sequence to introduce 3270 keyboard mnemonics. To properly send the "@" character, it must be doubled as shown here: EMSendKeys "User@@mydomain.com" This will result in the expected string being sent to the display: User@mydomain.com. Old KB# 14420#Rumba
This article discusses how to define column names in a SQL statement that contain spaces and the words “OF” or “IN”. Problem: I am getting the ES0100 incorrect SQL statement syntax when a column name contains spaces and the word “OF” or “IN”. How is this resolved? Resolution: This is happening because there is a problem with the OpenESQL pre-processor when using column names with embedded spaces and reserved words which are surrounded by square brackets. The column name is flagged as an error. If the column name is enclosed within double quotes " " instead of square brackets [ ] then the error is not generated, for example: EXEC SQL DECLARE MYCUR CURSOR FOR SELECT [Item Num] ,[Completed Quantity] ,[Unit of Measure] FROM [TESTTAB] WHERE [Order N
This article provides instructions for removing Server Express from a machine, while leaving an installation of Server for COBOL in place. Problem: Background information: Micro Focus COBOL for UNIX is distributed as two individual products. For clarity, this article will refer to them as the "development" product and the "runtime" product.The development product is officially named "Server Express". It includes the entire product offering: the compiler and development tools (including Animator), and also the runtime system and its supporting libraries and files.The runtime product is officially named “Server for COBOL" (or in older versions, "Application Server for Server Express"). This is a sub-set of the development product. It includes only the runtime system and supporting libraries and files; it does not include the COBOL compiler or Animator. The runtime product is meant to be installed on a machine on which there is no need to c
This error occurs running a sample program from the addpack for ACU DataConnect Problem: When running a sample program from the addpack for ACU DataConnect using the following sequence of events, a 173 Called program file not found in drive/directory error can occur. This can be the results of the following sequence of events: The sample program is copied from the COBDIR directory using the following command: cp $COBDIR/sample/acu4gl/demo.cbl to a /tmp or user directory Use the following command to compile the program: cob -v demo.cbl Use the following command to run the program: cobrun demo The following error occurs:Load error : file 'acufh'error code: 173, pc=804, call=1, seg=0173 Called program file not found in drive/directory This error occurs because of the following $set statement: demo.cbl: $set callfh(acufh) The actual file is ACUFH that is, the file name is upper case on disk. Resolution:
This article describes what to do if command-line arguments are supplied to a program with parentheses "()" instead of "=". Problem: When executing the following command: cobrun program file=myfile output=outputfile when the arguments are retrieved in the COBOL application, the “=” character is removed and the argument is bracketed with “()” parentheses, like this: file(myfile) output(outputfile) Resolution: The replacement of the “=” characer by parentheses occurs because of the parsing of the command by the cobrun command. If the application is built as a standalone executable, this parsing of the command-line arguments does not occur, and the values retrieved by the COBOL program are exactly as entered on the command line. To retrieve arguments without the parentheses, use the command: Cobrun program file==myfile output==outputfile. A program to test command-line handling is attached to t
Created On: 14 July 2011 Problem: Executing programs in EXE outside of the Net Express IDE fail with a Semaphore Failure. The problem, however, does not occur if the program is linked with the static run-time or dynamically bound shared run-time. Here is the exact error message: ASLM: Semaphore failureASLM: Errno 1000 Resolution: This error occurs when the application is using or picking up an older version of the run-time. For example, this error occurs if an application that was built with Net Express version 5.1 is executed with a Net Express version 4.0 run-time. There is no reason to run an application with an older version of the run-time, and unexpected errors may then occur when old run-time files are found in the PATH environment variable. Incident #2267278 Old KB# 14356
This article includes a COBOL program that will convert a UNIX date to an epoch date and then back to human-readable. Problem: How can a calendar date be converted to an epoch date and then back to human readable? Resolution: The attached COBOL program is an example of how to convert a UNIX calendar date to an epoch date and how to convert an Epoch date to a calendar date, using the operating system’s date command. epoch.cblEpoch, UNIX Time, Posix Tim, Unix TimestampDate: Name: Description of change: Date: Name: Description of change: Attachments epoch.cbl Old KB# 14335
This article explains why the LMF daemon does not start at boot time when inittab is present. Problem: LMF can be started from the command line but it fails to start after a reboot. The correct entry resides in /var/inittab: mF:2345:wait:sh /etc/mflmrcscript > /dev/null 2>&1 Resolution: This can happen when LMFCOMM is used to relocate the named pipe file LMF-common. This needs to be reflected in the start-up script mflmrcscript. The directory specified by LMFCOMM must have full read/write/execute permission for all users who will be using the licensed development system. See the section on Relocating the Long-lived Named Pipe in the Development System Licensing Guide Chapter 2, Administering the License Management Facility. Old KB# 14308
This article provides you with a way to verify UK postcodes using the LIKE verb. Problem: Because of the construct of UK postcodes, it is not a simple matter to verify them using traditional coding methods, but the LIKE verb does the job easily. Resolution: The attached sample program “postcode.cbl” contains the required code. Note that it is not possible currently to just specify the upper-case characters and use CASE-INSENSITIVE; this will cause an Assertion Failure on all versions from 12.02 back. This is why the sample program allows both upper- and lower-case characters in the condition. For better performance, the declaration of REGEX is a level-number 78 constant-name declaration instead of a level-number 01 data-name declaration. The regular expression is then compiled at compile-time instead of each time it is used at run-time, as would be the case with an 01 declaration. Old KB# 14338
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.