Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
This article explains that an RTS error 173 occurs if the flag RTLD_GLOBAL of dlopen API is not used. Problem: When a program loads a shared library with dlopen API and later loads functions belonging to this library the following error occurs: RTS error 173 (Called program file not found in drive/directory) Why is this happening? Resolution: This RTS error 173 occurs if the flag RTLD_GLOBAL of dlopen API is not used. This RTS error 173 is normal in regards to the definition of RTLD_GLOBAL flag. RTLD_GLOBAL allows symbols in the module being loaded to be visible when resolving symbols used by other dlopen calls. These symbols will also be visible when the main application is opened with dlopen(NULL, mode). dlopen API: http://publib16.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/basetrf1/dlopen.htm The demonstration attached just reproduces the RTS 173 described here. In funct
This article explains how to relink the RTS, or runtime system. Problem: Is it possible to rebuild the default runtime? When I used 'rebuild' or 'RTS' in the Product Documentation Index, I could not find the relevant topic. Resolution: The topic can be found in the User Guide Chapter 8 Linking to System Executables. This contains the following information, under the heading Creating an Executable RTS: "An executable RTS is a system executable file that requires the first entry point to be specified at run-time. In Object COBOL V4.1 and earlier, an executable RTS was required when you needed to link C and C programs into your application. However, C and C programs can now exist within callable shared objects; therefore it is no longer necessary to create an executable RTS for this. See the chapter Callable Shared Objects for more details. If required, you can create an executable RTS using cob. For example: cob -xo rts.new subprogs.c -e &
On SCO UnixWare 7.1.4 the call to C$JAVA fails with this error, seen in the runtime trace: Java dynamic init failed. Problem: The ACUCOBOL-GT application calls Java programs via the C$JAVA library routine. On Windows and Linux platforms there is no error when running the application. However, when running the same application with the same configuration on SCO UnixWare 7.1.4, the call to C$JAVA fails with the error: Java dynamic init failed. Resolution: On SCO UnixWare 7.1.4 (and possibly some other platforms) there are additional steps and configurations necessary to enable the C$JAVA library routine to function properly. Here's what must be done: In the ACUCOBOL-GT 8.1.0 lib directory copy "Makefile" as "Makefile-java". Modify Makefile-java as follows: Locate the two Java lines, uncomment them, and set them like this: JAVA_HOME = path to main java directory]JAVA_LINK_FLAGS = -L $(JAVA_HOME)path to directory containing lib
Executing the ACUCOBOL-GT application gives the error "Thread did not ask for message after accept terminated by one". Problem: When running the ACUCOBOL-GT application, after an indeterminate period of time, the Runtime halts with the following error: "Thread did not ask for message after accept terminated by one" Resolution: Generally this message is due to a coding error. When coding "SEND message to all threads" there must be an "ACCEPT... allowing messages..." coded in every thread, along with "if crt-status = 95 then RECEIVE message...". If the RECEIVE is missing, the message queue will become full, because of the SEND to all threads. That's when this error can be seen. If this message is seen in a version prior to 7.2.2 and the threads are coded correctly, there is a possibility that the Runtime encountered a problem where under certain rare circumstances it fails to clear an internal flag related to thread messaging. T
This article describes what to do if you get a syntax error when executing a query containing a CASE expression. Problem: Executing a query containing a CASE expression with AcuXDBC Version 8.0.0 results in a syntax error. Does AcuXDBC support CASE? Resolution: AcuXDBC Version 8.1 added support for CASE. For versions prior to 8.1, you may use DECODE to obtain the same results. For example, the following two queries are equivalent: select patient_name, decode (animal_type, 'Cat', 'MEOW', 'Dog', 'WOOF', 'Bird', 'TWEET', 'whatever') as SOUND from pets; select patient_name, case animal_type when 'Cat' then 'MEOW' when 'Dog' then 'WOOF' when 'Bird' then 'TWEET' else 'whatever' end as SOUND from pets; With Version 8.1.0, executing either query against the sample database (created by demo.bat) will return: PATIENT_NAME SO
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 Date: Name: Description of change: Date: Name: Description of change: Old KB# 14120
This article provides a solution for several problems that can prevent AcuServer from starting. Problem: When starting AcuServer, it appears to start successfully (see output below), but it will fail on either a –info test or if a program tries to access it. [root@oprtest etc]# ./acuserver -start acushare: opening '/dev/console' for error outputacushare: installation complete! acushare: already running. AcuServer started [root@oprtest etc]# cd ../bin [root@oprtest bin]# ./acuserve -info AcuServer is not running on: sparky [root@oprtest bin]# ./acushare -info acushare: already running. Resolution: If a machine has multiple network cards or if themachine name is not unique on the network, the following configurationvariables must be set in the a_srvcfg:# For servers with multiple Network InterfaceCards, this variable will# determine which address to use when listeningfor connections. The# default value is blank, which will use thefirst address found.#SERVER_IP# If you have
This article addresses the recommendations from IBM on performance issues with indexed files on AIX 5.x. Problem: Compiling legacy code with Server Express and running on AIX 5.x can incur singificant performance degradation with respect to same code compiled on older Micro Focus products (Object Cobol Developer Suite) on AIX 4.x. This performance degradation occurs when the system is using a JFS file systems. Resolution: Version 5 of IBM's AIX operating system can benefit from application of certain tuning parameters to JFS file systems. The following are general recommendations from IBM. The effect upon a specifc system may vary. Additional tuning may be required. AIX 5.1 vmtune -c 4 This tuning command will not be retained across a reboot. Therefore, a small shell scirpt with this command should be executed from /etc/inittab at boot time. AIX 5.2 and 5.3 ioo -p -o numclust
Attempting to rebuild a Vision file with vutil32 results in the error "invalid function parameter". Problem: Attempting to rebuild a corrupted Vision file using vutil32 -r filename gives the following error message: "invalid function parameter". What does this mean? How can the file be rebuilt? Resolution: This message is seen when the file is broken in a way that causes the rebuild to fail. The file may be broken in a way that it will not be possible to recover any records at all. However there are a couple of things to try. Specify a key to rebuild on:vutil32 -rebuild -k 0 filename for the primary key. If that fails try: -k 1 for the first alternate key (if there is one), and so on for each alternate key. If all of those fail it may be possible to programmatically recover the records. Set the Runtime configuration ERRORS_OK to "ON" which should allow the OPEN of the corrupted file to succeed. Then START at the begi
This article describes how to overcome background color issues in a tab control with check boxes or radio buttons when using Native Controls Style. Problem: With version 8.1.0, you can display controls on a screen using the native Windows XP, or Windows Vista control styles. To have this turned on, an AcuGT runtime configuration variable must be activated: WIN32_NATIVECTLS. However, some controls displayed within a tab may have a background color issue. Resolution: Specifying a Window color may help to display radio buttons and check boxes with the right background color when they are drawn within a tab control. You can use this color, when you display the screen:DISPLAY STANDARD WINDOW, COLOR IS 65601, ….. Incident Number: none tabmod.zip Date: Name: Description of change: Date: Name: Description of change: Old KB# 14178
This article helps understand the difference between two similar file status messages. Problem: How do you distinguish between the following similar file status messages? File status 37 is: An OPEN operation has been tried on a file which does not support the open mode specified in the OPEN statement. File status 9/37 is an RTS error 37: File Access Denied Resolution: File status 37 consists of the characters "3" and "7" (hexadecimal 3937). File status 9/37 is the characters "9" and "7" (hexadecimal 3937). Note: There is no file status "97" with which to confuse the latter. File status 37 is usually a programming error, such as OPEN EXTEND of an indexed file. File status 9/37 is usually a runtime error caused by a conflict between file and/or directory permissions and user access rights. Old KB# 14116
This article explains how to install the Net Express run time and APPTRACK keys silently. Problem: You may want to install the Net Express run time and APPTRACK keys silently, perhaps as part of your own software installation. Because Net Express Studio Server (the new name for Application Server) uses the Microsoft installer, you need to do this with the use of command line flags rather than a script as was previously used for Application Server. Resolution: In order to install the Net Express run time and APPTRACK keys silently, here is a command example: C:\\Server_setup\\SETUP>start /wait srp3250000248.exe /s /v" /qn /l*vx C:\\SETUP_LOG\\INSTALL.LOG ADDLOCAL=DOTNET SERIALNUM=NXDEVAS5 LICENSENUM=012801078005C04D5E0955C0 DATABASEDIR=C:\\STUDIODB This particular command can be packaged as a .bat file and will install the .NET run time, create a setup.log file in c:\\setup_log\\install.log, install the 30 day development runtime license key and serial number,
This article provides information on a fix for and workarounds for applications that produce a mismatched external data error when compiled after upgrading to ACUCOBOL-GT 8.0. Problem: After upgrading to ACUCOBOL-GT Version 8.0, some applications compiled with -Dw32 that compiled cleanly under previous versions halt with the error mismatched external data even when the programs were not changed. Resolution: This problem is fixed in ACUCOBOL-GT version 8.1.0. Upgrade to this version to resolve the problem. However, you can also try any one of the three following workarounds with version 8.0: Compile with both -Dw32 and -Z72. Compile with neither -Dw32 nor -Z72. This might not be the best solution in some cases. Edit the lib/direct.c as follows; then relink the runtime. In direct.c, add two lines of code by changing this block of code: *************** *** 39,45 **** --- 39,47 ---- #endif /* ACU_SOURCE_FILENAME */ #define ACU_SOURCE_FILEN
This article describes how to resolve error ld: 0711-596 SEVERE ERROR. Problem: Creating an executable from a mixture of COBOL source and pre-compiled C objects results in an error "ld: 0711-596 SEVERE ERROR." A command line example would look like this:cob -x myprog.cbl cprog.o Error message: ld: 0711-596 SEVERE ERROR: Object cprog.o An RLD for section 2 (.data) refers to symbol 22, but the storage class of the symbol is not C_EXT or C_HIDEXT. Resolution: The problem is with the C object file. In this case, the cause is a corruption in the object file, possibly from FTP-ing it between systems in ASCII rather than BINARY mode. Incident Number: 2262147 Old KB# 14177
This article explains what to do if the error message "No license key detected" occurs. Problem: We are receiving the following error message: Error - no license key detected. Application Server requires a license in order to execute. Please refer to your application supplier. Resolution: When this error occurs check the tail of /var/mfaslmf/USERLOG to see the captured error message. One of the components on the line will be the value of COBDIR. For example: Thu Sep 8 21:28:14 PDT 2005:No license AS /usr/microfocus/cobol This is the setting of the user environment variable $COBDIR. Run $COBDIR/aslmf/apptrack and choose option 1 License List Example: 2006/02/10 10:52:30 Installed Application Server licenses: 00001 /usr/lib/cobol Version of Server Express 64-bit Edition License units: Unlimited CPUs: 001 Ensure the COBDIR in the USERLOG matches one of the directories listed in AppTrack. If there is no matching COBDIR, change the user profile to export the
This article helps troubleshoot messages such as This is an OSX license, This is an Application Server license, or This is a development license. Problem: What should we do if we encounter The license key entered is not valid or other possible error messages such as: This is an OSX license This is an Application Server license This is a development license Resolution: First, ensure that the serial number has been entered correctly. All Server Express licenses and later Object Cobol Developer Suite licenses have two letters and a plus sign (" ") at the end for licensing purposes. All fifteen characters (twelve numeric digits, two uppercase letters, and the plus sign) must be entered as the serial number. Second, look at the type of license. If it says "Application Server" or "Enterprise Server" go to "AS" below. If it says only "Server Express" or has the word "developer" or "development" or says "Object Cobol Developer Suite" go to "DEV" b
This article explains what to do if an error occurs after installing Application Server and executing a program. Problem: After installing the Application Server product, the following error occurred when a program was executed: cobrun32: cobol version number invalid Resolution: This error may be occurring because the environment variables have changed or were not set up correctly in the first place. It may also be the result of mixing two different product environments where different COBOL versions co-exist. Check to ensure the following environment variables are set correctly: COBDIR=Server Express/Application Server base directory PATH=$COBDIR/bin:$PATH LD_LIBRARY_PATH=$COBDIR/lib:$LD_LIBRARY_PATH Note: On AIX, this will be LIBPATH, on HP, SHLIB_PATH Ensure that no other scripts or 3rd party (client) applications changes the environment variables which were already set in the beginning of the session. Old KB# 14137
This article explains which entry point names may cause error messages to occur. Problem: When compiling or running the following program with no special options, we receive the below error codes. IDENTIFICATION DIVISION.PROGRAM-ID. ROGERW.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION.01 ALLP PIC X.PROCEDURE DIVISION.CALL 'csort' USING ALLP.STOP RUN. error code: 161, pc=2B, call=1, seg=0 161 Illegal intermediate code Resolution: The problem is that csort is an entry point in the Micro Focus runtime library. There are a few more to be aware of as entry point names with the following prefixes: "_" "mF" "MF" "mf" "CBL" "cob" "CEE" "ADIS" "STRIPE" "fs" "FS" "CEE" "CCI" "oo" "STRIPE" "PARSE" "XML" "Invoke" "scum" (stands for Sooty Co
This article describes how to use a different path name (file) with a copied table. Problem: There is a facility to create a copy of a table; however, the underlying data file (path name) is shared between the two tables. So changing the path name for the copied table also changes the path name for the original table. More often than not this is not the desired setup. Resolution: Open the copied table and click Use the Edit Connections. Highlight the table name and click Delete Table Connection. Select the table definition (even if it's highlighted select it again) and click the Add Table Connection. You will be presented with the Add Table Connection dialog box; set the Path Name accordingly and click Add Connection. Click Save Changes. The copied table now uses the path name (data file) set above without changing the path name in the original table. Old KB# 14179
This article tells you what to do if, after a successful install, running runcobol produces the error "cannot restore segment prot after reloc: Permission denied." Problem: After a successful install, running runcobol produces the error "cannot restore segment prot after reloc: Permission denied." Resolution: There are several issues that can cause this error: This message can apparently be returned if SELinux is enabled. Unless you are SELinux experts, we suggest that you disable SELinux (see the URL link) and make sure that the problem no longer occurs. Then try the suggestion given at this URL of using "chcon" to change the security context for the shared objects. Next, you might be having an issue with the permissions on the directories in the runcobol path.All of the directories in the path need to have "execute" permissions. If that doesn't work, you may have to uninstall and reinstall wi
This article describes an Acurfap error, which may appear when trying to run a program from within AcuBench. Problem: Click on "Execute" to run a program from within AcuBench. An error like this appears in the Output window: --------- Compiling Program1.cbl ------------------- Compile options = -o acurfap://myserver:5632:/@.acu -x -GaCopying object file to serveracurfap://myserver:5632:/Program1.acu: The system cannot find the file specified.Program1.acu - Completed: 0 Error(s), 0 Warning(s). Resolution: The "Use Thin Client" button has been incorrectly activated. This causes the runtime to search for a remote object to run. Deselect "Use Thin Client" button to run a locally compiled object. Incident Number: 2263553 Old KB# 14184
This article explains Server Express and Application Server licenses. Problem: When done infrequently, installing of license keys can be confusing because of the different types of licenses, license utilities, and ways in which licenses can be installed and uninstalled. The following should help with your understanding of the processes involved. Resolution: Server Express comes packaged two ways. One is called Server Express, the other is called Application Server. Server Express is the development product. It allows users to write, compile, test, and debug COBOL applications. Application Server is a deployment execution subset of Server Express, intended for the production or end user environment where COBOL programs are run and no development activity takes place. In order to use Application Server in a production environment, it is necessary to create COBOL programs on the same version of Server Express, then port (copy) them to the production system. Howev
This article provides a resolution to Oracle error ORA-01801 (9D,1801) when running Acu4GL. Problem: This problem appears upon upgrading from runtime/Acu4GL Version 6.1 to Versions 7.x and 8.x. With Acu4GL Version 6.1, empty dates were converted in Oracle with a value of 00-DECEMBER-00. Although this behavior was fixed in release 6.2, it’s possible that old values are still stored in Oracle tables, so when runtime/Acu4GL Version 7.x or 8.x tries to read these date fields, an Oracle error ORA-01801 appears. ORA-01801 means that the date format is too long for the internal buffer. Resolution: One solution is to alter the Oracle session, calling the Acu tool sql.acu before opening an Oracle table, as shown here:CALL "sql.acu" USING "ALTER SESSION SET NLS_LANGUAGE='AMERICAN'". CALL "sql.acu" USING "ALTER SESSION SET NLS_TERRITORY='AMERICA'". OPEN INPUT table-name However, this method makes fields "read only." If you tr
This articles explains how to configure Apache so the CGI runtimes find the appropriate configuration file. Problem: You are using a CGI application, but do not know how to set up a configuration file correctly. Resolution: The configuration file for Apache is the httpd.conf file. Add the following line into the file: SetEnv A_CONFIG c:\\tmp\\cblconfig Once you have done this restart the Apache server and you are set, the CGI runtimes started by the Apache server will look for this configuration file. Old KB# 14185
This article better explains the License List (menu pick #1) in AppTrack. Problem: The License List (menu pick #1) in AppTrack is informaton-rich, but can be confusing. Can you please explain? Resolution: Below is an annotated sample display with notes of explanation. 2006/08/13 09:54:52 Installed Application Server licenses: ---------------------------------------------------------- 00001 /product/default Note: This is an Application Server license (CPU license, unlimited user count) tied to the product in /product/default. The latter is the COBDIR value when the license was installed via AppTrack. Version ___ of Server Express 32-bit ES MTO Note: The version is blank because Server Express licenses are not tied to a particular version. For example, when a product is updated from 2.2 to 4.0SP2, the existing license is valid and therefore will not be reissued or supplied with the updated product. License users: Unlimited CPUs: 100 Duration: U
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.