Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Problem: Intermediate level code code (int) is portable between Windows and UNIX. Can you take an int module and that uses DB2 and run it on UNIX? Resolution: Although int level code is portable this is not true where database access is required, as database precompilers generate different COBOL code across platforms (and also between 32-bit and 64-bit platforms). COBOL applications that use databases need to be precompiled on the target platform. Old KB# 2104
Problem: When this error is encountered on AIX systems it is generally due to the fact that the LIBPATH environment variable is not set up correctly. exec(): 0509-036 Cannot load program /usr/lib/cobol/bin/rts32_t because of the following errors: 0509-150 Dependent module libcobrts_t.2.so could not be loaded. 0509-022 Cannot load module libcobrts_t.2.so. 0509-026 System error: A file or directory in the path name does not exist. cob32: error(s) in compilation: /diapason/diap524/tst/source/FMMOV005.cob Resolution: Make sure that the LIBPATH environmental variable points to $COBDIR/lib set LIBPATH=$COBDIR/lib:$LIBPATH this should solve the problem. Old KB# 2101
Problem: Error compiling program being migrated from Object COBOL. cob32: error opening: /tmp/cobxyz/a.out Error in compiling and linking file xyz.cob Compile command: cob -C IBMCOMP -xv -Q -o xyz.exe xyz.cob Resolution: The -Q flag passes option to the system linker (See the Server Express User's Guide > 10. Descriptions of cob Flags). In this particular case it was not followed by a valid linker option. The "-o" is supposed to be passed to cob causing it to take the next parameter as the ouput name, in this case xyz.exe. This affected the intermediate workfile a.out created by the cob/lilnk process. Removing the -Q resolved the problem. Old KB# 2216
Problem: Platforms: x86 and zSeries Resolution: Server Express 5.0 can run on SuSE LINUX Enterprise Server 10 as long as the following change is made: The $COBDIR/etc/cobopt files need updating to point to the correct compiler object files. The following is an example of the changes needed: On the x86 platform: Original product cobopt file: set GCC_LIB=/usr/lib/gcc-lib/i586-suse-linux/3.3.3 Updated cobopt file: set GCC_LIB=/usr/lib/gcc/i586-suse-linux/4.1.0 On the zSeries platform: Original product cobopt file: set GCC_LIB=/usr/lib64/gcc-lib/s390x-suse-linux/3.3.3/32 Updated cobopt file: set GCC_LIB=/usr/lib64/gcc/s390x-suse-linux/4.1.0/32 Without these changes the Server Express product cannot
Problem: This error may be encountered when attempting to create an indexed file from a line sequential file maintaining the record format defined in the previous file. The loader is a C program which includes an FCD structure with the FCD3 format and a code which sets the value of the FCD field. It is set to OPEN OUTPUT and DYNAMIC ACCESS MODE. This is a sample of the record to be loaded ; note that the records are not in ascending order. X98699ESTERO URSS, 000000000000000000000000000000000000000000 X98999ESTERO YU, GR, TR, SYR, R000000000000000000000000000000000000000000 X99099ESTERO USA, CDN, DOM, 000000000000000000000000000000000000000000 X99199ESTERO AMERICA LATINA, 000000000000000000000000000000000000000000 X99299ESTERO &nbs
Problem: Try the following on HP-UX PA-RISC and HP-UX Itanium cd /usr/bin ls -l dig host kermit nroff You will see that these system utilities are approximately twice as large on Itanium. Resolution: HP have written an article about this which can be found at: http://h21007.www2.hp.com/dspp/files/unprotected/hpux/Itanium-Memory-Usage.pdf The PDF file is attached. Attachments: Itanium-Memory-Usage.pdf Old KB# 2118
Problem: This is the scenario Server 1 Local CCITCP2 or mfds running CCITCP2 environment variable set to point to local CCITCP2 Fileshare running registered against local CCITCP2 Server 2 Local CCITCP2 or mfds running CCITCP2 environment variable set to point to local CCITCP2 Fileshare running registered against local CCITCP2 In this scenario, on some versions of Server Express, if a client running in Server 1 tries to open a file under the remote Fileshare running in Server 2, it will fail with a 9/124 error. The same viceversa. If both Fileshare register against the same CCITCP2, that is the CCITCP2 environment variable has the same value when they start, this problem doesn't occur, but with this setting, the server that is running the only CCITCP2 can not be down, otherwise servers won't be able to access to any file, local or remote. Resolution: This is due to a problem in CCITCP2 / mfds that is fixed in Server Express 5.0 WS3 in the platfo
Problem: Using Server Express 4.0 SP2 on Linux cob -iav pi.cbl export COBSW= A $COBDIR/bin/rts32_t pi will not animate "jumps" to empty screen, ^C to exit. Displays error: Trace/BPT trap Resolution: The work around is not to use the threaded runtime (rts32_t) cobrun pi This is a know problem and it has been fixed in Server Express 5.0 Old KB# 2240
Problem: Application hangs on any OPEN statement Resolution: Are the files being open on an NFS mounted disk? If so ensire that the NFS locking daemons are running - rpc.statd and rpc.lockd Without the locking mechanism COBOL will not be able to OPEN a file. Old KB# 2207#RMCOBOL#AcuCobol#netexpress#COBOL#ServerExpress
Problem: Release 5.0: Which changes needed running ServerExpress 5.0 on SLES 10 x86_64? Resolution: $COBDIR/etc/cobopt from set GCC_LIB=/usr/lib/gcc-lib/i586-suse-linux/3.3.3 to set GCC_LIB=/usr/lib64/gcc//x86_64-suse-linux/4.1.2/32 also $COBDIR/etc/cobopt64 from set GCC_LIB=/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3 to set GCC_LIB=/usr/lib64/gcc/x86_64-suse-linux/4.1.2 Old KB# 2126
Problem: Compilation and program executuion fail for some user and not for others Resolution: Check to see if there is a problem with user permissions in the directories being used. Check the UNIX profile for the failing users. In some cases system administrators have used the 'trap' instruction in order to prevent users from breaking out of applications. The trap command intercepts UNIX signals, many of these signals are used/required by the COBOL product, intercepting these signals may break the scheme used by the COBOL product. Old KB# 2206
Problem: In Object COBOL Development Suite De-referencing a NULL pointer in C was treated as zero. With Server Express it now returns the error: Execution error : file '<file-name>' error code: 114, pc=0, call=1, seg=0 114 Attempt to access item beyond bounds of memory (Signal 11) Passing the NULL is not a problem. De-referencing a NULL pointer in the C PROGRAM is the problem. The error occurs when you use "cob -x" to compile the C program, but does not occur when you just use straight "cc". But dereferencing a NULL pointer is supposed to be an undefined operation in C. Resolution: With Server Express we now put "-z" on the ld command line. The -z was added to the HP-UX liblist because using it is widely considered best practice on that platform. Dereferencing a null pointer in C causes
Problem: The following error was encountered when compiling a simple demo program (eg. tictac.cbl) with option -u in 32 bit mode: # cob -uk tictac.cbl 174 move zero to xcount,ocount,factor *1125-W************************ ** ** Punctuation character not followed by a space. Assume space. *1125-W******************************* &n
Problem: The FaultFinder log files are missing ALL call stack entries for both COBOL and non-COBOL on AIX. Resolution: This appears to be a problem specific to AIX. To get the call stack entries into the FaultFinder log you need to set the LDR_CNTRL environment variable as follows: export LDR_CNTRL=USERREGS Specifying the USERREGS option will tell the system to save all general-purpose user registers across system calls made by an application. Old KB# 2103
Problem: In a 32 bit environment you might get the following error: Load error : file 'bin/cobchecker32' error code: 173, pc=0, call=1, seg=0 173 Called program file not found in drive/directory In a 64bit environment the error would be: Load error : file 'bin/cobchecker64' error code: 173, pc=0, call=1, seg=0 173 Called program file not found in drive/directory Resolution: This error means that the cob command is unable to find the syntax checker module of the compiler. This means that you have not installed the full Server Express product. Installing either the Server or Enterprise Server product will not install the compiler tools. In a development environment you need to install the Server Express product, this will include all files you need to test any type of COBOL program. You only need to install the Server or Enterprise Server produ
Problem: This error occurred after upgrading from Oracle 9 to 10 and from Server Express 4.0 SP2 to Server Express 5.0. Everything worked fine under Server Express 4.0 and Oracle 9. Everything compiles fine with Server Express 5.0 and the connection to Oracle is working as well. Yet when running the application ORA-01017 error occurs. Resolution: Check that the fix Patch level is the same for the Server Express and the Application Server for Server Express (Runtime). Once this was brought to the same level the error disappeared. Old KB# 2246
Problem: Trying to compile into executable with "cob -x". Getting error message: "Can't open Z for reading: No such file or directory" Tried adding "-vDD" onto the "cob" command line, example: cob -x -vDD <file.cbl> This causes the "cob" command to become more verbose and to reveal everything it is doing behind the scenes. In this case it revealed that the error message was coming from the system assembler "as": Entry points defined in module: UNS500.o *UNS500 as Z DA1.1 -o /usr/unitest/tmp/cobAAAa00372/%cob0.o /usr/unitest/tmp/cobAAAa00372/%cob0.s Assembler messages: Can't open Z for reading: No such file or directory Z:0: Can't open DA1.1 for reading: No such file or directory Resolution: The user in this case had PATH set such that the assembler
Problem: Customer gets syntax error 1238-S "Conflict with REENTRANT Directive" when using Oracle makefiles to compile .pco source code. Adding "-P -C settings" to COBFLAGS in the makefile creates a .lst file. REENTRANT"1" is indeed specified in the settings. Resolution: Experimentation shows that REENTRANT"1" gets turned on when the "-t" cob flag is specified. The -t flag should be specified when compiling for database access -- and Oracle's makefiles do specify it. Regarding conflict with REENTRANT, the Server Express Documentation in the area of "Multi-threaded Programming", "Considerations When Creating Reentrant Programs", says: > > Use of some COBOL features will preclude reentrant > > compilation; most of these COBOL features are obsolete or > > archaic in ANSI Standard COBOL and their use should be >
Problem: Cannot proceed with installation according to the instructions. Instructions say to run "setup.sh" but no file by that name appears. Instead it appears as "SETUP.SH;1" with a semicolon one at the end. Resolution: This is caused by the way the CD is mounted. Refer to the pamphlet included with the media for mounting instructions for the appropriate operating system Old KB# 2241
Problem: Application uses the extfh.cfg file with IDXNAME=0. The apllication interfaces with a 3rd party vendors application that used MF 5.0 with IDXNAME=1. The 3rd party vendor uses a MF 5.0 Cobol program to create CISAM files. That program generates cisam files with the format <file name>.DAT and <file name>.DAT.idx. The mainline application uses IDXNAME=0 and creates CISAM files with naming convention of <file name>.DAT and <file name>.idx. What is the proper procedure for making an application that uses IDXNAME=0 call a subprogram from another vendors application that is using IDSNAME=1? Resolution: There are two methods of using files that have been created using differing naming conventions: 1) COPY or rename one of the sets of files to use names and extensions that agree with the naming convention you want to use when the application executes. 2) Dynamically alter the naming convention during pr
Problem: Open input to a file that does not exist continues to the read, without error. Resolution: If the file does not exist, OPEN INPUT causes an error status, unless the file is optional. Defining a file status data item is optional. If a file status data item is not declared and a serious file error occurs, the COBOL run-time system displays an error message and aborts your program. You should check the file status data item after each input/output operation, to see if the operation completed successfully. For example, when your program is writing to disk, there might not be enough disk space to complete the WRITE operation. If you have not defined a file status data item and you run out of disk space, the run-time system displays an error number and aborts the program. If you have a file status data item defined (for the file you are writing), it is updated and the program continues to run. The program can then check the file status data item, det
Problem: Here is an example of calling the Fileshare Manager API to shutdown or restart a fileshare server. Note that security must be turned in fileshare to do this. Resolution: Program-ID. fsmanager. Working-Storage Section. 01 fsmgr-param-block. 05 fsmgr-function-code pic x(02) comp-x. 05 fsmgr-error-status pic x(02) comp-x. 05 fsmgr-fileshare-name pic x(16). &nb
Problem: Unable to open files that have embedded colons (:) in the filename when assigning these files via an environment variable. The SELECT phrase assigns the file names as EXTERNAL and they are set via an environment variable to point to the physical file. This used to work fine in OCDS v4.1 but now fails in Server Express. Resolution: The problem is that we treat the colon as a multi-path separator. If the colon would be in a working-storage variable instead of an environment variable, this would work. This work-around will work for assinging these filenames via an environment variable: So lets say you set an environment variable called INFILE: INFILE=abc:def.dat In the program you use to have: SELECT BLABLA ASSIGN TO EXTERNAL INFILE You would change the SELECT statement as follows instead: SELECT BLABLA ASSIGN TO DYNAMIC WS-INFILE You would then add these 2 lines before you open the file for the first time (this will read th
Problem: COBOL/Java/Oracle 9i application has failed with SQL abend code 1455 whenever COBOL with Oracle FETCH is executed multiple times from JAVA. Application logic that requires CONNECT function is based on a variable in Working-Storage that is set initially to "Y" and then reset to "N" after the CONNECT. During subsequent executions of the COBOL and Oracle program, the Working-Storage field is left as 'N" and it is unclear why. It is supposed to be a completed process after each run. Eliminating the JAVA interface permits the application to execute any number of times. So the inital value of the Working-Storage field is reinitialized each time the program runs outside the JAVA interface. Problem is two-fold: what is causing the SQL abend code and why isn't the JAVA interface clearing the process each time it completes? Resolution: SQL error 1455 was accurate. The reason was ther
Problem: System-wide default directives are contained in a cobol.dir file, either in the source directory or in $COBDIR/etc/cobol.dir. However, there are a few programs which cannot be compiled correctly without overriding one or more of the default directives. Resolution: In this example, the "RM" (Ryan-McFarland dialect) directive is set in cobol.dir, but must not be used for ore or two special programs, so NORM ("NO" "RM") must be set. There are several ways to accomplish the override, all based upon the same concept: If there are conflicting directives, e.g. RM and NORM, the last one the compiler "sees" is used. From the documentation, manual "User's Guide", Chapter "COBOL System Interface (Cob)", section "Specifying Compiler Directives", the directive processing order is: (any or all of the following do not necessarily exist for a given
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.