Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
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: 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: 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: 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: 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: 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: 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: 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: How to specify paths in an environment variable Resolution: The use of, and interpretation of, ":" and "." in PATH type variables (PATH, LD_LIBRARY_PATH etc) is often misunderstood. ":" is the directory separator. A colon at the beginning (or end) of the environment variable value means a null path at the beginning (end) of the search order. A null path means the same as ".". That is, the current working directory. "::" in the middle of the env-var value is equivalent to ":.:", which obviously means search the current directory at that point in the order. A frequent mistake is "::" at the end of the value, which means search the current directory twice. Example of setting COBDATA- export COBDATA=:/home/data/directory This would cause the search order to be the current directory then /home/data/directory Incidentally - if you specify COBDATA then the current directory wi
Problem: By default the XML GENERATE statement converts data names to upper case to generate XML tags. The following: 01 myXML pic x(1000). 01 myItem1. 05 myItem2 pic x(10) value "my value". ... Xml generate myXML from myItem1 would generate "<MYITEM1><MYITEM2>my value</MYITEM2></MYITEM2>" in myXML Resolution: To preserve the case of data names when XML tags are generated with XML GENERATE it is necessary to use the PRESERVECASE compiler directive, i.e. $SET PRESERVECASE This directive is not documented in Server Express 5.0 but should be documented in Server Express 5.1. After setting PRESERVECASE, the contents of myXML in the example above would be: "<myItem1><myItem2>my value</myItem1></myItem2> Old KB# 2158
Problem: Compiler appears to automatically redefine "usage comp" fields to comp-5. When field is referenced receive non-unique data name error. This occurs when using the Oracle preompiler PROCOB Resolution: By default pcbcfg.cfg (in $ORACLE_HOME/precomp/admin) defines: comp5=yes define=comp5 Changing COMP5=YES to be COMP5=NO will resolve this issue. COMP5=YES can also be overridden at compile time by passeing COMP5=NO in the list of directives to be passed to the Pro*COBOL precompiler as follows: PREPROCESS(COBSQL) CSQLT=ORACLE8 ENDC COMP5=NO P(CP) ENDP The only effect this directive has is on the code generated by the Oracle precompiler. As COMP and COMP-5 are the same byte ordering on AIX, the change should not impact the application. To see what I mean, with this small app : 01 a pic s9(4) comp-5 value 23. 01 b pic s9(4) comp value 23. &nbs
Problem: There is known defect where in some cases the results of a COMPUTE statement may be incorrect when executing in machine native code on Intel x86 platforms. Resolution: This error can be avoided by using the -g flag when compiling the machine native code executable. The error is introduced by a incorrect assumption in the code optimization routine used by the compiler. The -g flag alters the optimization routines used by the compiler so that the error is avoided. A permanent correction for this error will be released in a Fixpack for Server Express V4.0 SP3. Old KB# 2157
Problem: Porting application from HPUX 11/23 PA-RISC to HPUX 11/23 Itanium. Compile cobol module with cob, using ld to link linker produces the warning: ld: (Warning) Unsatisfied symbol "_mFldhandle" in file xxx.o This cobol module is one several modules compiled to .obj for inclusion in a shared liabrary. The shared library is built, but at runtime the above Unsatisfied symbol "_mFldhandle" is not being resolved. SHLIB_PATHs, and LD_LIBRARY_PATH are set which /cobol/lib shared lib to use with the -l flag on the ld command to resolve this symbol Resolution: When linking Cobol you must use cob. . IBM, HP and other take the same approach with C . You must use the C tool to link C applications. _mFldhandle is not defined in any library in $COBDIR/lib. This symbol is created by cob, locally to each shared object, as part of the link process. It is used as part of cancel processing, and shared object load/unload
Problem: In some Unix platforms the following example code gives unexpected results (different from 0). 01 WK-NUMER-12 PIC 9(12). 01 WK-QUOTIENT-06 PIC 9(06). 01 WK-REMAINDER PIC 9(02). 01 WK-CHECK PIC 9(01). PROCEDURE DIVISION. MOVE 114600120320 TO WK-NUMER-12. MOVE 0 TO WK-QUOTIENT-06 WK-REMAINDER. &nbs
Problem: Can IDXFORMAT"8" files be variable length? Resolution: The following program demonstrates that it is generally possible to create an IDX8 file having variable length records: 000001$set idxformat"8" 000002 select file1 assign to "file1" 000003 organization indexed 000004 access dynamic 000005 record key file1-key1. 000006 000007 fd file1 000008 record contains 30 to 50 characters 000009 recording mode v. 000010 01 file1-rec1. 000011 05 file1-key1 pic x(10). 000012 05 file1-data pic x(20). 000013 01 file1-rec2. 000014 05 file1-key2 pic x(10). 000015 05 file1-data pic x(40). 000016 000017  
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.