Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Problem: Is there a way for one program to open and close files and from other programs in the same run perform all the updates (read, write, re-write, delete) to the file? Resolution: Yes this is possible if the file FD is declared as external in both programs, ex: FD custom-file external. 01 custom-record ....etc This way it is possible to open and close the file in one program and read, write, etc. from another program. Old KB# 2726
Problem: When ordering ports for the Linux operating system it is necessary to know the glibc version that is installed on the target machine to avoid a port mismatch. Resolution: From the command line type the following command: rpm -q glibc This should return output similar to: glibc-2.3.2-5 For ordering purposes, the glibc version in this example would be version 2.3. Example command line syntax and output: user@my_linux:~> rpm -q glibc glibc-2.3.2-5 On recent Linux distributions, the version can be found by simply running the library as if it were an executable: prompt% /lib/libc.so.6 GNU C Library stable release version 2.2.5, by Roland McGrath et al. [...] The first line of the output contains the version number. Another way to determine the version is to see what version string is embedded in the library itself: prom
Problem: The program contains a screen with a grid inside a frame. When tabbin to the grid the first time the screen comes up, the grid control doesn't get focus. After clicking on the grid, then trying to tab to it again, it succeeds. Resolution: The CURSOR-X and CURSOR-Y properties were set to COBOL variables, whose initial values are both 0. If X is set to 1 and Y to 2 (since there is a header row) when the program first starts, it works as desired (the grid receives focus). Since the COBOL program controls the values of CURSOR-X and CURSOR-Y, the runtime can't do anything reasonable with default values. Old KB# 2729
Problem: If an invalid character is inadvertantly placed in column 7 and the workspace is built, the project will continue to be built even if "stop build" has been issued. Each error encountered will continue to generate many lines of output in the build window until every program in the workspace has been processed. For large projects this may take several minutes. This problem was encountered with AcuBench versions 6.2 and 7.0. Resolution: Install AcuBench and development system version 7.2.0 or newer. Due to the amount of time the build process could consume, for versions prior to 7.2.0, it may be desirable to force the process to be interrupted instead of waiting for the cycle to complete. This may be done by using the Windows Task Manager to end the process for ccbl32.exe. Old KB# 2657
Problem: Is there a limit to the WORKING-STORAGE or DATA-DIVISION sections in an AcuCOBOL-GT COBOL program? Resolution: There is no actual storage limit for the WORKING-STORAGE section, but there is a 256 MB limit for the DATA-DIVISION section, which contains the WORKING-STORAGE section. This applies to versions 6.2 up to the current Extend8 product line. Old KB# 2705
Created On: 03 March 2008 Problem: The touch C does not stop cobesdebug. I use Z and the UNIX command kill with the option -9 to destroy the both process. After cobesdebug it does not run, and displays error message or warning messages. Resolution: cobesdebug uses a internal data file to stock information about region, transaction, etc. Under Suse, it is possible to use the option -15 of the UNIX command kill. This option send a signal to stop the process with updating the internal data file after the restart of cobesdebug. Example: (chronologically) Screen01 ( tty1 ) cobesdebug ....... Z Screen02 ps -t/dev/tty1 kill -15 pid2 pid1 Screen01 fg ( foreground) to restart cobesdebug that stops ( signal 15 received) Incident #25321 Old KB# 2320
Problem: Some application return Unix return-code that is not validated to zero. In these applications, the return-code is not used by the Cobol module . With others applications , the return-code is used , but the return-code of the application is not validated to a right value Resolution: Some third party software use a return-code between its subprogram. In this case , the application returns a value that is not null. The compiler directive -C DEFAULTCALLs=4 can be used if all CALL verbs must not return the return-code. If some CALL verb must return a value of return-code , it is necessary to use CALL-CONVENTION clause. An example is attached. If it is not use with CALL-CONVENTION, a CALL verb is used with the value of DEFAULTCALLS that is by default zero. Attachments: prog.cbl Old KB# 2334
Problem: db2Initialize call failed with = -0000004904 ** External Compiler Module message ** DB0100 SQL4904N The pointer to parameter "piPidLength v95" of ** function "sqlainit" is not valid. when working against DB2 Version 9.5. Compiling with the DB2 directive returns "critical errror - DB2Initialize API not found". Compiling with the DB2 directive returns "DB00010 DB2 rejected an unspecified option" Resolution: The error regarding piPidLength is resolved in Net Express and Server Express 5.0 WP4. Generally, if you receive errors regarding DB2Initialize, you will need to compile your application with the DB2(UDB-VERSION=x) compiler directive, where x should be : V8 : DB2 v8.x V9 : DB2 v9.1 V95 : DB2 v9.5 You can determine the version of the DB2 client software by invoking db2level Old KB# 2290
Problem: In my application , the Display verbs are described with color clause , but all screens are displayed without colors Resolution: Cobol system uses Unix terminfo database. So the terminfo entry ( $TERM )must be defined with the colors entries. The example is for vt220 & xterm . Attachments: colour.tar Old KB# 2329
Problem: In Server Express 5.0 WS1 when IKJEFT1A calls a program that doesn't exist, instead of causing an abend it returns a COND CODE = 0012. IBM defines the DISP clause as: DISP=(beginning disposition, normal termination disposition, abnormal termination disposition) An abnormal termination or ABnormal END is really an ABEND. Just passing a non-zero Condition Code is not enough to cause the JCL system to process the DISP clause as an abnormal termination. Generally, the application would have to call an abend routine (ILBOABN0 or CEE3ABD -LE) to provoke and abend and make the JCL to process the 3rd parameter on the DISP clause. Resolution: This has been fixed in Server Express WP4. Now IKJEFT1A produces a system ABEND S04C when the program called doesn't exist. With this abend the file disposition is processed correctly. Old KB# 2318
Problem: Is it possible to force a program to be reloadedupdate with a shell command ? Resolution: The option -n of the command castran can be used to replace the CICS transaction CPMT NEWCOPY The documentation file of this command is attached. This file is come from Server Express 5.0WS4 Attachments: rhcomm25.htm Old KB# 2292
Problem: The following message is displayed : as -o /tmp/cob1HMaUa/ldtab.o /tmp/cob1HMaUa/ldtab.s Assembler : /tmp/cob1HMaUa/ldtab.s: line 7 : 1252-191 .llong should be used for relocatable expressions. cob32: error(s) in assembling /tmp/cob1HMaUa/ldtab.s Resolution: As as command is defined for 64bits mode , it is not possible to assemble a file that is created in 32bits . It is necessary to setting OBJECT_MODE=32 before compile the program. Old KB# 2361
Problem: Browser displays HTTP:500 - The website cannot display the page when submitting a form and running a script in cgi-bin. (8)Exec format error logged in $ErrorLog/error_log Resolution: This happens because Apache expects to run an executable and finds a script. You need to add a #! to the top of the script to tell UNIX to execute that script using the interpreter specified. for example: #! /bin/sh Old KB# 2265
Problem: When compiling with Server Express 5.0 on HP/UX Itanium 11.31 you may encounter the following warning message: cobAAA027397/ldtab.s:92: warning 4018: invalid size This article explains the reason why the message is returned. Effectively, however, the warning can simply be ignored. It should be fixed in Server Express 5.1 which is currently scheduled for mid-2008. Resolution: Originally HP's assembler contained a bug; a certain size was documented as being in words whilst in practice it had to specified in bytes. In version 11.31 HP fixed this bug but it did unfortunately introduce a problem of incompatability, thus, causing the warning message. In Server Express 5.1 the code wiill be changed so as to work with both assemblers. Old KB# 2281
Problem: The command echo $? Displays a value that is higher than 128. What does this value mean? Resolution: If the errno value that is displayed by the command echo $, is higher than 128 , it means that the process was stopped by a signal = {Errno value} - 128 Example Echo $? displays 137 , the process was stopped by signal 9 Old KB# 2369
Problem: If there are multiple copies of MFDS running, by default cobesdebug will only connect to the one running on port 86. Therefore only the regions running under that copy of MFDS will be available to cobesdebug. Resolution: cobesdebug uses the mf-client.dat to determine which port to use to connect to MFDS. Modify $COBDIR/etc/mf-client.dat to point to whatever port MFDS is using. Ex. mrpi://localhost:8686 Old KB# 2303
Problem: Arithmetic statements produce different results when run in int form and other program forms(.gnt,.so, or executable) Resolution: In some cases different results for arithmetic statements are produced when running programs compiled to int executable form versus running the same program compiled to .gnt (or other object code) form. There are a number of different causes for this problem/symptom. One possible cause is that the arithmentic operation is constructed in a way that allows the result prodcuced to be larger than the the capacity of the data item where the result is to be stored. INT code hides these kinds of things, while object code forms do not. To determine if a particular arithmentic operation is failing because of this unintended overflow condition, modify the statement to include the ON SIZE Error clause. examples: Original suspect statment COMPUTE C = A * B Test for Size Error COMPUTE C = A * B ON SIZE ERROR STOP "SIZE
Problem: Using the DISPLAY verb in a CGI program gives an Interrnal Server Error 500 when deployed using the Apache web server, however the same DISPLAY works fine with other web servers such as Solo. Resolution: The problem is with the way that Apache works rather than Server Express. The following can be found on the Apache website: http://httpd.apache.org/docs/2.2/howto/cgi.html#writing -----------> There are two main differences between "regular'' programming, and CGI programming. First, all output from your CGI program must be preceded by a MIME-type header. This is HTTP header that tells the client what sort of content it is receiving. Most of the time, this will look like: Content-type: text/html Secondly, your output needs to be in HTML, or some other format that a browser will be able to display. Most of the time, this will be HTML, but occasionally you might write a CGI program that outputs a gif image, or oth
Problem: Using COBSQL on a 64-bit platform fails when working in 32-bit mode. Investigations revealed that procob32 was missing from $ORACLE_HOME/bin. Resolution: This is an Oracle issue. Further details can be found on the Oracle Metalink site under document id 458640.1. To resolve the problem you should: 1.Download patch 5887582 2.Place the file spcbd.o in $ORACLE_HOME/precomp/lib32 directory 3.Relink the procob32 using $ make -f ins_precomp.mk procob32 (OR) Apply patch 4757588 on top of Oracle 10g 10.2.0.3 Old KB# 2357
Problem: I migrate my application from Object Cobol Developer Suite. In my application , the box is with color and the lines are cut by characters . It runs fine with Object Cobol Developer Suite . With Server Express , The color stops at the first character . Resolution: The terminfo source file for the emulation linux was modified between Object Cobol Developer Suite and Server Express. It is necessary to use the terminfo source file that is delivered with Object Cobol Developer Suite . The source file linux-ocds.src is : # Reconstructed from file: /opt/cobol/d4200/tbx/terminfo/l/linux # Produced by mfinfocmp (Micro Focus terminfo) linux|linux console, am, bce, eo, mir, msgr, xenl, xon, colors#8, cols#80, it#8, lines#25, pairs#64, acsc= ^P\\,^Q-^X.^Y0\\333'^Da\\261f\\370g\\361h\\260i\\316j\\331k\\277l\\332m\\300n\\305o~p\\304q\\304r\\304s_t\\303u\\264v\\301w\\302x\\263y\\363z\\362{\\343|\\330}\\234~\\3
Problem: When you need the option of being able to change the order and count of directories/paths where Shared Objects of COBOL programs are located, you might expect that this should be tunable inside the running process with setenv. But changing the COBPATH environment variable in the running process with setenv has no effect to the Cobol run time. It seems that COBPATH is only once read at the process start. How can one change the directories/paths, where the run time searches for the shared object that was called at realtime? Resolution: id division. program-id. TEST1. data division. working-storage section. procedure division. DISPLAY "CALLING SETPATH" &n
Problem: I work in UNICODE ( UTF16 ) My group is defined as : 01 Z1 . 02 Z11 PIC N. 02 FILLER PIC N. 02 Z12 PIC N. 02 Z13 PIC N. 02 Z14 PIC N. How do I do to initialize Z1 to spaces ( UTF16 ) Resolution: As INITIALIZE statement does not affect elementary FILLER data item, the FILLER data item has the same value before and after INITIALIZE. It is possible to use the compiler directive -C REMOVE=FILLER. Old KB# 2277
Problem: In a Windows environment it is possible to use the WIN API GetSystemTime which returns time to milliseconds. However, is there a similar functionality for UNIX platforms? Resolution: The standard functions ftime() and gettimeofday(), both of which are part of the Single UNIX Specification. ftime() is an outdated function; gettimeofday() is preferred for new code. To use either of those functions in COBOL you will have to convert the appropriate structure from the system's version of /usr/include/sys/time.h to a COBOL group item, then call the function passing the item by reference. For example, on Solaris 9, in a 32-bit environment: ----- $set sourceformat(free) identification division. program-id. time-in-ms. data division. working-storage section. 01 timeval-32bit. 02 seconds pic x(4) comp-5. 02 micr
Problem: How to use variable in the MFSORT configuration file ? Resolution: There are some uses of environment variables in the following script file : echo "1111Aaaaaaaaaa" > L0 echo "9999Azzzzzzzzz" >> L0 echo "4444Bddddddddd" >> L0 echo "1111BAAAAAAAAA" >> L0 echo "3333Accccccccc" >> L0 echo "sort fields(1,4,ch,a)" > cas1.srt echo "sort fields(1,4,ch,a)" > cas2.srt echo "sort fields(1,4,ch,a)" > cas3.srt echo "use L0 org ls record(f, 60)" >> cas1.srt echo "use L0 org ls record(f, 60)" >> cas3.srt echo "give \\$A1 org ls record(f, 60)" >> cas1.srt echo "use \\$A0 org ls record(f, 60)" >> cas2.srt echo "give L2 org ls record(f, 60)" >> cas2.srt echo "give L3 org ls record(f, 60)" >> cas3.srt echo "INCLUDE cond=(5,1,ss,eq,c'\\$A3')" >> cas3.srt A0=L0 A1=L1 A3=A export A0 export A1 export A3 mfsort take cas1.srt mfsort take cas2.srt mfsort take cas3.s
Problem: I would like to use animator with my COBOL modules in Intermediate Code. In my COBOL modules I insert Oracle SQL Language. The ANIMATOR loops on verb CALL 'SQLBEX' or STOP RUN. COBSW= A export COBSW rtsora program01.int Resolution: When a Cobol module program01.cob ( the output file of the command procob progam01.pco ) is generated ( for example in Generated Code ), the file program01.idy can't be use to anim program01.int. If it is use , anim loops . So It is necessary to generate in two phases: Compile : cob program01.cob save the files program01.int & program01.idy Generate : cob -u program01.int and use the saved files to anim But it is possible to anim the Generated Code file after use the command: ob -ug program01.int Old KB# 2322
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.