Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Problem: After applying a fix patch to Server Express 4.0 SP2 a customer noticed a difference between the COMPUTE statement in that it correctly calculates an int file but gave the wrong results in a gnt file. Resolution: After setting the Compiler directive HOSTARITHMETIC the desired results were achieved. There is a KB article about HOSTARITHMETIC as new compiler directive: (KB 19918) which is recommended to read as it contains detailed information to this compiler directive. Old KB# 4512
Problem: An application moved cursor focus to a group field when pressing a specific key. i.e. to the index 9 in an array of 12. This apparently worked OK on a pre 4.0 version of OCDS but not on Server Express. Resolution: The dialog (local code associated with a panel) pertaining to the group field TOGGLE is shown below. This is the field to jump to when pressing END (that doesn't work). It's a 12 member array of 7 bytes, the application jumps to index 9. PANEL GROUP PRE-GRP VERTICAL LINE 13 COLUMN 59 HEIGHT 9 WIDTH 7 TYPE DATA ACC-EXIT BAR SELECT BAR LENGTH 7 &n
Problem: The RTS error on failure is one which may be caused by an environment variable setting problem, e.g. 173, 211, 114, etc. How to check the environment while running in CGI mode and compare it to the command line environment? Resolution: One good way to compare environments is to run the mfsupport utility from the successful command line environment and from the cgi environment. A comparison of the environment sections of both output files may reveal the problem. However, it is not simple to run mfsupport in the cgi environment. To do the latter, write a small cgi program which contains the following fragments: 01 mfsupport-command-line. 10 mfsupport-command pic x(200) value 'mfsupport > /dev/null 2>&1'. &
Problem: A program, including the routine CBL_READ_SCR_CHATTRS, is generated using NetExpress and runs correctly on a Windows platform. However, when porting this application to a UNIX platform under Server Express, the routine no longer works in that it no longer reads the screen attributes (backgound colours) of the screen. Resolution: The problem can be solved by inserting CBL_SCR_SET_PC_ATTRIBUTES at the beginning of the program. Old KB# 4546
Problem: Compiling a program and/or running cob -V from the command line, and getting an error similar to the following: cob32: invalid symbol __iob in sidefile /opt/cobol/lib/cobisym Resolution: Make certain your $PATH environment variable is set correctly. Old KB# 4549
Problem: A customer wanted to know how comptible .int code really was: for example, could he take an .int file compiled as 64-bit on net Express 5.0, and then run it on a UNIX box? Also, would this have to be a 64-bit UNIX system? Resolution: A 64-bit .int built on Net Express will run on a 32- or a 64-bit UNIX box. Old KB# 4560
Problem: You may be trying to do a very simple rebuild on a small ISAM file but for some reason the command is not finding the input file to be rebuilt (even though it is in the present working directory). You may have been following the suggestions in the manual & it seems like it should work.... Resolution: The first thing to consider is the way the file is named. If it is FILENAME.dat and FILENAME.idx, then you are probably using the IDXNAMETYPE filehandler configuration option. By default, the name of the data portion of the indexed will be exactly as specified in ASSIGN clause in the SELECT statement of the program. Therefore, if the program has ASSIGN "CCSTAT.dat", then the data part of the file would be CCSTAT.dat - however the indexed part of the file would be created as CCSTAT.dat.idx. For you to have the file extensions as you have - CCSTAT.dat and CCSTAT.idx, you probably have the IDXNAMETYPE configuration option set to 2 in the fil
Problem: When compiling an executable on SCO v6.0.0, with Server Express v4.0, the above error is displayed. Resolution: The full library name is libintl.so and is the library that provides Native Language Support. On SCO 6, it is found in /usr/gnu/lib, which when added to the PATH corrects the problem Old KB# 4492
Problem: How does the Dialog export command help me as a developer? Resolution: The export command allows a developer to dump every detail about a dialog screenset. This both helps with debugging and also re-coding. Alt/F10 brings up the export option where a filename.txt file can be designated for output. Pressing the SPACE bar allows you to toggle which components are selected Components Screenset Dets Data Block Error Messages Validations Global Dialog Panels This is followed by a list of panels which can be de-selected by use of SPACE. For debugging, one is usually only interested in a subset of panels. The resultant output is a text file containing every detail of the selected components. This is part of the Global Dialog setion. GLOBAL DIALOG CASE-SENSITIVITY ON EK F1 [RETC ] &nb
Problem: Load error : file '$JAVA$CallVendorServices' error code: 198, pc=93, call=1, seg=0 198 Load failure Resolution: If your Environment Settings are correct, test this by trying to make a direct call to your Java application. You need to run this as a multithreaded application by using the cobjrun. Old KB# 4530
Problem: Rebuild -f:c63d5 <file-name> returns the followin error: -f:c63d5 <file-name> ^ REBUILD aborted - Invalid option Resolution: This Rebuild validatation command is no longer valid. The correct sytax is: rebuild -f:c9 <file-name> The -f performs a full integrity cheeck on a file, display all possible information The -c Specifies the validation performed. You can select any combination of checks 1, 2 and 8 by adding the appropriate numbers together. (The more checks you perform, the longer the validation takes.) The default is 11. 1 Checks the data file structure and counts the number of records. 2 Checks the structure of the free space list (FSL). 8 Checks the index file structure. 256 Checks the data file structure and counts the number of records with the file open for sharing in another process. You cannot
Problem: A customer had a routine that used libcurses for screen handling. When this was called from Animator, the application crashed out of animator, displaying the command line prompt, locking up the session and leaving a looping "rts32" process. Resolution: This is actually a complex area. The libcurses routine does not work correctly if anything else changes the screen (without notifying it). curses works by keeping an internal representation of the screen contents, cursor position, etc. When the program asks curses to change what's on the screen (or, more precisely, when it wants to change anything about the state of the tty), curses computes a hopefully optimal set of control codes (based on the tty description in termcap/terminfo) and display characters and sends that to stdout. If anything else has changed anything about the tty state, curses' internal representation will be wrong, so the commands it sends to the tty will be wr
Problem: The ability to pipe input and output between commands is a powerful feature of Unix. Can Cobol programs pipe to or from Unix commands and/or other Cobol programs? Resolution: Yes. The way in which a pipe file name is specified is documented in programming guide manual "File Handling", chapter "Filenames", section "Setting up Pipes". The pipe direction (in, out, or bidirectional) character, the name of the other command, and that command's command line arguments may be specified as a literal in the SELECT statement or as the value of the DD_assign-name environment variable. Examples: select infile assign to '<cat $COBDIR/etc/cobver' organization is line sequential. *The "<" character defines an input pipe to the program. select infile assign to external filespec &nbs
Problem: Call of the "make all" (Make-File see below) returns the following error: Undefined first referenced symbol in file SQLADR sample1.o SQLBEX sample1.o SQLADRVC sample1.o ld: fatal: Symbol referencing errors. No output written to sample1 make: Fatal error: Command failed for target 'sample1' # # AUTOMATICALLY GENERATED MAKEFILE - DO NOT MODIFY # # Makefile created usin
Problem: Using Server Express, when a record is read with lock and within the same process another attempt is made to read the same record, file status code 9/068 will be returned. This behaviour did not occur in Object Cobol Developer Suite. This would typically occur where a program reads a record with lock, then calls a sub program. Sub program attempts to read the same record which results in record lock condition. When using Object Cobol this behavior did not occur and file status of '00' is returned. Resolution: In order for Server Express to behave like Object Cobol , set the following run time tunable: Note: The default is different in this tunable. intra_process_record_locking=FALSE In the Runtime Configuration Manual under Runtime Tunables : intra_process_record_locking Specifies whether the run-time system can share a file and set record locks against a file within a process. Syntax: >>-----set intra_process_record_locking=---.
Problem: How can I get information about input and output files? Resolution: Rebuild -i <file-name> Displays information about the input and output files, including record lengths, file type and key structure. If you only want to see the information and do not want to perform any other operation, use the -n option instead. Old KB# 4554#COBOL#ServerExpress#netexpress#AcuCobol#RMCOBOL
Problem: Compiling an XML program result in many error messages, which start with: 6 organization is XML * 131-S**************************************** ** ** Unrecognized phrase in SELECT clause Resolution: 1. The XML-preprocessor has to be used to compile the program: $set p(prexml) endp MF COBOL versions before Server Express 4.0 or Net Express 4.0 cannot compile this program. Hint: you can review the XML-preprocessor output by adding the o(filename) option, e.g. $set p(prexml) o(ppoutput.cob) endp to get the output into the file ppoutput.cob 2. If
Problem: Given: 01 MyData PIC X(1000). When MyData contains an Ampercent sign, it cannot be used as a normal character so it is substituted as AmpercentHash38Semicolon. When parsing MyData by XML PARSE the ampercent is not returned neither as CONTENT-CHARACTER nor as CONTENT-CHARACTERS Hint: The wording Ampercent, Hash, Semicolon used in that article to avoid viewing garbage characters in an HTML environment. Resolution: When using AmpercentHash38Semicolon the ampercent is returned in the register XML-NTEXT as CONTENT-NATIONAL-CHARACTER Event. Also, when specified as AmpercentHashx26Semicolon = its hex value. When using AmpercentampSemicolon the ampercent is returned in the register XML-TEXT as CONTENT-CHARACTER Event. When MyData contains: <data>My Data AmpercentampSemicolon Your Data</data> 3 Events will occur and the text have to be concatenated, i.e. by a STRING with POINTER. Old KB# 4435
Problem: In Winforms you can use the Tooltip provider to add tooltips to controls. This allows you to define tooltips at design time for the controls on a Form. How can you change tooltip text at runtime from COBOL ? Resolution: You can do this using code such as :- invoke tooltip1::"SetToolTip"(numericupdown1 , "New Text for tooltip") tooltip1 is an instance of the tooltip provider that was added to the form. Old KB# 4437
Problem: Trying to validate alphabetic characters in numeric fields (i.e to get rts error 163 returned) in an application that has the RM compiler directive set, the validation is not applied in all cases. Even with the COBSW= F environment variable set to force the validation it doesn't work. Resolution: Take the following code: $SET RM Working-storage section. 01 numerica pic 9(3). 01 alfabetica pic x(3). 01 blank-field pic x(3).
Problem: You can use the WinHTTP COM objects in Windows to issue HTTP Request from a COBOL Application. How can you specify timeout values for the HTTP Request ? Resolution: WinHTTP has a "setTimout" method that allows you to specify :- ResolveTimeout ConnectTimeout SendTimeout ReceiveTimeout To call this from COBOL you would first need to set the OLE Dispatch type as the method name starts with "set" so by default COBOL would attempt a property fetch. The code on COBOL you need to issue would be:- invoke olesup "setDispatchType" using by value 0 ******* The next line would force a timeout * invoke ws-winhttp "setTimeouts" using by value 500 500 500 500 ******* We can set to something more reasonable for the
Problem: NetExpress 5.1 not printing in Microsoft Windows Vista Ultimate (Assumption is made that a default printer has been defined, and that it is connected to a USB port, not a legacy LPT parallel port) Resolution: In Vista, right-click on the NetExpress 5.1 icon, select "Properties", select "Compatibility Mode", and select "Microsoft Windows XP Service Pack 2 (SP2)". Click "OK". NetExpress should now print on USB printer. Old KB# 4452
Problem: A customer using a build script found that intlevel(1) as a compiler directive gave the error * Invalid qualifier - intlevel(1) * 155-U 155 Illegal command line Resolution: On Server Express INTLEVEL can only be set to 2, 4 or 5, hence the error message. It's unlikely that this will cause a problem for any customer, as INTLEVEL set to 1 is for use with Micro Focus COBOL products on DOS and COBOL/2 on UNIX. Old KB# 4488
Problem: The output filename for XML should be "C:\\Files\\My File\\DATA.XML" However, after the program ran without any error a file "C:\\Files\\My" has been generated. Obviously the SPACE is truncating the name. SELECT XML-STREAM ASSIGN "C:\\Files\\My File\\DATA.XML" ORGANIZATION IS XML FILE STATUS IS XMLSTAT. XD XML-STREAM. &nb
Problem: In .NET it is now possible to create an Inner Class within a class. How to access this inner class from COBOL? Resolution: Accessing an Inner class by defining it in the repository section but there is the need to use " " to denote the inner class. For example: repository. class innerclass as "MyClassLibrary.TheOuterClassName TheInnerClassName" . will allow to create instances of the innerclass. Old KB# 4407
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.