Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Problem: Are no license messages saved in a file after they have been issued to the monitor? Resolution: A log is kept of "no license" conditions it is /var/mfaslmf/USERLOG. Micro Focus provides a default script that updates this file every time the user runs out of licenses. The default nolicense script updates the USERLOG file and writes a message to the user's monitor. The system administrator may modify the script to take additional action such as send email to a specific account when the "no license" condition occurs. Old KB# 7233
Problem: When using the directive OUTDD(file n) where n is a value less than 95, for example 80, and when using DISPLAY string UPON SYSOUT, the contents of string are split into several lines, where each line length is much less than the value of n and keeps varying (decreasing). Resolution: This issue has been fixed with the latest fixpack for Server Express 4.0 SP1. There is also a workaround: OUTDD($SYSOUT 95 L A) or OUTDD($SYSOUT) - the default values are 132 L A. If you really need the lines split at 94 or less (80 for example), generate the file so no line is split by defining the record length to the maximum value that can be found, and it should be very easy to write a little program that splits them to 80: ... fd sysoutfile. 01 sysoutline pic x(maxlinelength). fd sysout80file. &n
Problem: The Object COBOL Developer Suite (OCDS) manual states that if the HOST-NUMCOMPARE compiler directive is used it MUST have a value setting of 1 or 2. (e.g $set HOST-NUMCOMPARE"1"). What is not stated is that if no value is set (i.e. $set HOST-NUMCOMPARE) it assumes the same behaviour as if HOST-NUMCOMPARE"1" were set. The Server Express manual make no mention of the values 1 or 2 being required. It states that the allowable settings are either NOHOST-NUMCOMPARE (default) or HOST-NUMCOMPARE. However, the behaviour for the setting $set HOST-NUMCOMPARE (without 1 or 2 set) differs in that in Server Express it assumes the same behaviour as if NOHOST-NUMCOMPARE were set. Resolution: To get the same behaviour in Server Express as in Object COBOL Developer Suite for the setting: If you have the following set in Server Express: $set HOST-NUMCOMPARE you should try the setting: $set HOST-NUMCOMPARE"1" e
Problem: What is the guideline of using mfsort or mfsort 64 ? My application is built as 32Bit mode but it is possible to run mfsort under COBMODE=64. Does mfsort64 have more capacity or performance than mfsort with COBMODE_32 ? Resolution: There is no difference between mfsort and mfsort64, other than one being 32-bit and the other 64-bit. Old KB# 7244#AcuCobol#netexpress#RMCOBOL#ServerExpress#COBOL
Problem: Two programs use the same file . The first opens the file only to read , the second opens the file to read and write . Some times the second displays the file-status 9/65 , and the first program runs always fine Resolution: If the program uses the verb : OPEN INPUT FIC1 To share this file , it is necessary to put into the file of the configuration of the file handler ( extgh.cfg) the following line : OPENINPUTSHARED=ON Old KB# 7234#ServerExpress#netexpress#RMCOBOL#AcuCobol#COBOL
Problem: A COBOL program prints 30 tables. Each one is OPEN OUTPUT and under Server Express only the last table is in the print file at the end of execution each individual file has been overlaid by the OPEN OUTPUT command. Resolution: On Server Express it is necessary to code the OPEN statement as OPEN EXTEND. This will cause each additional file to be concatenated onto the end of the file. See the "Language Reference" manual for syntax rules for coding OPEN EXTEND. Old KB# 7225
Problem: What is the purpose of .hnf files, which can be found in $COBDIR/demos. Resolution: The files are for use with Hyhelp, the Micro Focus help system. The ones supplied are used within Editor and Animator. Old KB# 7261
Problem: A customer upgrading to a new version of Server Express, or rebuilding his/her runtime, may encounter problems when running CICS applications. Resolution: IBM supply a file mkcicscobol. Their documentation states that this must be run whenever a new version of a Micro Focus product is installed, whenever a new version of CICS is installed, or whenever a new version of any supported database product is installed. The script apparently creates a 'language message file' and a runtime library. Further IBM documentation states that this should also be done if the runtime is rebuilt. For specific technical information, Micro Focus would recommend that you contact IBM. Old KB# 7260
Problem: file error 21( 'Key out of sequence'.) occurs when writing to an indexed file. Resolution: Indexed files store their records in key order. If you attempt to write a record to the file sequentially, and the key of the 'new' record is less than that of the last record in the file, this error will be returned. Indexed files can be accessed randomly but the key sequence must be borne in mind when writing to them sequentially. Old KB# 7262#COBOL#AcuCobol#RMCOBOL#netexpress#ServerExpress
Problem: A sample clustered system has a file system that's shared between machines. On that shared file system within /usr/opt subdirectory is where the ASLMF license keys were installed. Both the Server Express Developer product and the Application Server product are installed in the original file system, not on the shared file system. Resolution: Application Server's license databases must reside in /var/mfaslmf and not other file systems or other directory structures like /usr/opt/ . Even in clustered systems the system directory, /var/mfaslmf, will be visible. Old KB# 7212
Problem: When migrating from Object COBOL Developer Suite to Server Express you may encounter a compilation error where there is a 77-level field with subordinate level entries. Eg 77 entry-field. 05 entry-field-1 pic x(10). 05 entry-field-2 pic 99. In some versions of Object COBOL this did not return a compilation error but will in all versions of Server Express. This form of entry is strictly not legal in COBOL. By definition a 77-level entry is a single level elementary field with no subordinate level entries. Resolution: Change the 77-level entry to a 01-entry. Eg 01 entry-field. 05 entry-field-1 pic x(10). 05 entry-field-2 pic 99. This will have no impact on the data field or any associated code. Old K
Problem: If migrating a mainframe appliction where initialization of data items may not have been required, you may have numeric fields in the REPORT SECTION that will print as spaces instead of zero unless a numeric value has been moved to them. For example, if a numeric field used to store a total has not updated since the program started it may be assumed that this would physically print as zero (i.e. 0) when it will actually print as spaces. This will only occur on programs compiled to any form of object code - i.e. .gnt, .o, .so and .exe. It will print 0 if using .int code and therefore may not be picked up during testing. Resolution: Use the HOST-NUMMOVE compiler directive. Old KB# 7273
Problem: The 'usercall.c' is no longer in the product. What is its replacement? Resolution: The method of calling C from COBOL using usercall.c has been removed from Server Express product as obsolete. A more effective method is to use the CALL "C_func" functionality, as documented in the chapter 'Mixed-Language Programming' in your Program Development book. Old KB# 7240
Problem: The new HOSTARITHMETIC compiler directive available in Server Express can guarantee decimal truncation when ON SIZE ERROR is not specified. Resolution: Does 9 1 = 0? If a data item can hold only one digit (PIC 9), and currently has the value 9, what should be the result of adding 1? If the resulting value of an arithmetic expression is larger than the maximum value the target item can store, then a "size error" condition exists. If the ON SIZE ERROR clause is present, then no value is stored in the target, and the imperative statement(s) in the clause are executed. If no ON SIZE ERROR clause is present, then the arithmetic results are undefined. This rule is documented in the ANSI standard, as well as in Micro Focus and IBM documentation. Thus, the result of the following code fragment is undefined, and it is a programming error to rely on any specific result: 01 num-ws pic 9 value 9. add
Problem: If you have installed Net Express 4.0 or Server Express 4.0 with the Enterprise Server option, then the CCITCP2 program will have been replaced by a trigger program that calls the Micro Focus Directory Server (MFDS) program. As far as CCI users are concerned, the Directory Server serves the same purpose as CCITCP2 and they behave in exactly the same way. Each machine that runs the Enterprise Server option must have the Directory Server program running on it. MFDS is a complete replacement for CCITCP2, is backwardly compatible with CCITCP2 and supports all the same command line options and syntax and all other functionality. Resolution: There are two types of servers controlled by the Directory Server Micro Focus Enterprise Server This is a server that provides an execution environment for COBOL programs running in response to service requests issued by several different client types. Micro Focus CCI Server This is a server that
Problem: When trying to link a program with Server Express on Solaris a number of messages are printed: ld: warning: global symbol '' has non-global binding: (file /opt/lib/cobol/lib/libcobrts.so value=LOCL); ld: warning: global symbol '' has non-global binding: (file /opt/lib/cobol/lib/libcobcrtn.so value=LOCL); ld: warning: global symbol '' has non-global binding: (file /opt/lib/cobol/lib/libcobmisc.so value=LOCL); Resolution: These warnings can be safely ignored. When Micro Focus creates libcobrts it is necessary to "hide" symbols. Solaris does not provide options to do this so the attributes of symbols are changed in the dynamic symbol table. The symbol names are NULL, hence the '' in the error message. Old KB# 7231
Problem: Assembler messages: Error: Can't open Z for reading. Z: No such file or directory Z:0: Error: Can't open DA1.1 for reading. Z:0: DA1.1: No error cob32: error(s) in assembling /var/tmp/cobAAAa29655/ldtab.s Resolution: Check to see if you have the Operating System's ANSI C compiler and GCC compiler installed. The GCC compiler also installs its own assembler and will reference some of its own header files for C instead of using the Operating System's. So ensure that it uses the right assembler, the Operating System's assembler, either by un-installing the gcc components or ensure that the gcc components are at the end of PATH searches and that it looks for the Operating System's ANSI C compiler first. Old KB# 7214
Problem: After installing a new version of our COBOL compiler the breakpoints in Animator between starts of the anim. gets lost Resolution: This is normal behaviour with Server Express as per the documentation, in Server Express an aif file is not created if you use COBSW= A. To preserve the aif file you must use the COBAIFNAME environment variable. export COBAIFNAME=myprog Old KB# 7232
Problem: I/O error : file 'AS1S' error code: 9/220 (ANS74), pc=0, call=1, seg=0 220 Attempt to execute more than one SORT or MERGE simultaneously The problem is input procedure is working fine and is releasing all records, but while returning the records it is abending and is throwing the error as mentioned above. What could be the reason for this, since no other sort or merge statements are being executed? 006200 PROCESS-RECORDS. 006400 SORT AS1S-SORT-FILE 006500 ON ASCENDING KEY AS1S-SD-NO 006600 INPUT PROCEDURE IS 3100-INPUT-PROCEDURE 006700 OUTPUT PROCEDURE IS 3200-OUTPUT-PROCEDURE. <snip> 007700 3100-INPUT-PROCEDURE SECTION. 007800* 007900 MOVE 100 TO AS1S
Problem: Installing Server Express v2.2, gets message about AIX version saying 'product was built on AIX 4.3.3 but you are running AIX 5.2.0, please confirm you want to continue'. Should he continue? Resolution: Yes. This is normal and expected in this case, he was installing the 32-bit version of Server Express v2.2. Old KB# 7213
Problem: Compiler directive HOSTARITHMETIC guarantees decimal truncation on arithmetic overflow when ON SIZE ERROR is not specified. Does 9 1 = 0? If a data item can hold only one digit (PIC 9), and currently has the value 9, what should be the result of adding 1? If the resulting value of an arithmetic expression is larger than the maximum value the target item can store, then a "size error" condition exists. If the ON SIZE ERROR clause is present, then no value is stored in the target, and the imperative statement(s) in the clause are executed. If no ON SIZE ERROR clause is present, then the arithmetic results are undefined. This rule is documented in the ANSI standard, as well as in Micro Focus and IBM documentation. Thus, the result of the following code fragment is undefined, and it is a programmatic error to rely on any specific result: 01 num-ws pic 9 value
Problem: In Server Express divding by zero always causes an error if you do not use the ON SIZE ERROR clause; otherwise the results are unpredictable. Resolution: Recode your program so that you can trap the error with an ON SIZE ERROR clause If, after decimal point alignment, the absolute value of a result of an arithmetic operation exceeds the largest value that can be contained in the associated resultant-identifier, a size error condition exists. Division by zero always causes a size error condition. Note that the results of division by zero when no ON SIZE ERROR phrase is specified are unpredictable. The size error condition applies only to the final results, except in MULTIPLY and DIVIDE statements, in which case the size error condition applies to the intermediate results as well. Violation of the rules for the evaluation of exponentiation always terminates the arithmetic operation and always causes a size error condition. If the ROUNDED
Problem: In Server Express, when a record is read with lock and then within the same process another attempt is made to read the record the extended file status code 9/068 will be returned. This would typically happen where a program reads a record with lock, then calls another porgram and attempts to read the same record. In Object COBOL this lock is ignored and a file status of '00' is returned but in Server Express 9/068 is returned. This only happens if the access takes place within the one process. Normal record locking applies to both products for for records lockded in another process. Resolution: It may be that you want Server Express to behave the same as Object COBOL Developer Suite, particularly in the case of legacy applications where the activation of the record lock is not expected. To disable the record lock and have a file status of '00' returned on the read of a record that has previously been read with lock within th
Problem: If you are migrating from an Object COBOL Developer Suite (OCDS) v4.1 release to a Server Express v2.x release, then there are some points you should have keep mind. Resolution: Source Code from OCDS should compile cleanly with Server Express. So, you should only need to move over your source files, recompile, and re-link your application. However, as you can no longer link your application as a static executable, you might need to change how your application is built. The following describes some of the changes pertinent to those moving applications from OCDS to Server Express. Cob flags now obsolete in Server Express: There are some cob flags that are no longer supported with in the Server Express product. These are: Cob flag Description -B mode[=lib] Select the system linker binding mode B mode[=lib] Select the system linker binding mode and pass to system linker after COBOL libraries -F Create an RTS quickly F
Problem: The behaviour of VARCHAR2 host variables have changed in Pro*COBOL v8.0 You have VARCHAR2 host variables defined as PIC X(n) and are having problems with tests/compares in your WHERE clause after upgrading your version of Oracle. Resolution: Oracle have a configuration option for Pro*COBOL to revert back to the old behaviour. In the $ORACLE_HOME/precomp/admin/pcbcfg.cfg file, add the following: PICX=VARCHAR2 From now on by default, PIC X(n) host variables will no longer have the trailing spaces truncated unless you have this configuration option. Old KB# 7280
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.