Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Problem: How can I turn off the NoJoinOpt filter for a catalog when using the Data Manager? Resolution: Sometimes, the Relativity Data Manager's optimization filters do not work properly for Joins. This results in less efficient joins and poor performance. The following instructions will turn off the Join Optimization. First, backup your registry settings, then follow these steps: 1) On the Data Manager system, start the registry editor, regedt32. 2) Navigate to: HKEY_LOCAL_MACHINE\\Software\\ODBC\\ODBC.INI\\dsn where dsn is the name of the data source for the catalog. This will make the change only on the specific data source desired. 3) Create a new string "NoJoinOpt" and give it the value of "1". Now re-create the scenario where the problem occurs, and check the results. Old KB# 4654
Problem: Do you have a Cobol program to count records in an index file? Resolution: The attached zip file contains a utility that allows you to get a record count for an index file. The utility is called RMRECX. An example COBOL program, TSTRMREC.CBL, is included that demonstrates the proper use of this utility. The index file must be closed in the run unit that calls RMRECX, because it has to open the file as a binary sequential file to get the number of records in it. A conflict occurs when the file is currently open as an index file. It can't open it both ways at the same time. When the index file is open in the run unit at the time RMRECX is called, the file manager has a physical file descriptor indicating it is an index file. Thus, the binary sequential open fails as an organization mismatch. If the file is not open, the file manager doesn't know that it is an index file and the open succeeds. In the attached RMRECX utility, the error status returned from t
Problem: Are there any Runtime performance considerations? Resolution: Taking the default settings will give the most consistant performance ratings. Be careful not to increase buffer size to the size that the OS has to consider increased swapping, or the Runtime will lose performance. It has been found that the defaults allow the file I/O to execute at optimum levels. Old KB# 4659
Problem: Why does runcobol hang with ssh on AIX? Resolution: It may be a "bug" in OpenSSH. Please see the lenthy discussion here: http://bugzilla.mindrot.org/show_bug.cgi?id=1102 Try applying the patch (http://bugzilla.mindrot.org/attachment.cgi?id=1002&action=view) mentioned in the bug and see if the problem is resolved. Old KB# 4692
Problem: How can I pass environment variables to the COBOL runtime? Resolution: See the attached source code example. Attachments: cpass.cbl Old KB# 4639
Problem: How can I create an auto-erase ACCEPT? Resolution: Some user interface specifications require that a field with a default value be accepted 'as displayed' if the Enter key is pressed. If, however, the user starts typing in the field, the rightmost characters should be erased automatically, eliminating the need for the user to press repeatedly the space bar to erase to rightmost characters of the displayed default value. The attached zip file contains a subprogram, display-autoerase, which implements this behavior. Attachments: autoerase.zip Old KB# 4695
Problem: How do I convert an ASCII data file to EBCDIC characters? Resolution: See the attached source code example. Attachments: ebcasc.cbl Old KB# 4679
Problem: How can I show the cardinality of a table using ODBCtest? Resolution: Bring up ODBCtest and do a FULL CONNECT using the DSN of the Relatiivty catalog. Enter userID and password, if they exist. From the menu bar use Catalog->SQLStatistics and enter the TableName information, and set Unique=SQL_INDEX_ALL=1 (1.0). After the SQLStatistics displays succesfully, select Results->GetDataAll from the menu bar to get something like this: Get Data All: "TABLE_QUALIFIER", "TABLE_OWNER", "TABLE_NAME", "NON_UNIQUE", "INDEX_QUALIFIER", "INDEX_NAME", "TYPE", "SEQ_IN_INDEX", "COLUMN_NAME", "COLLATION", "CARDINALITY", "PAGES", "FILTER_CONDITION" plus the values. See also: RelClientTest Old KB# 4650
Problem: How can I assign a file name when printing to Adobe Acrobat PDF Writer? Resolution: Define the name of the file to print in the SELECT statement as ACROBAT. In the Windows Runtime configuration file, (runcobol.cfg), define the new device: DEFINE-DEVICE DEVICE=ACROBAT PATH=" Adobe PDF". In the program, use the "P$SetDocumentName" and assign a name that is incremented each time you print. Disable the property for the printer that asks for the name of the file to print. The attached example uses a free PDF file creator : Cute PDF Attachments: pdf.zip Old KB# 4685
Problem: How can I convert a 6 digit date to an 8 digit date? Resolution: Please see the attached Cobol program sample code. Attachments: cnvtdate.cbl Old KB# 4684
Problem: Is the Runtime CLUSTER aware? Resolution: RM/COBOL is not coded to any specific hardware platform or operating system. Therefore, there are no real optimizations for clustered or multiprocessor computing environments. Both RM/COBOL and InfoExpress are coded as single-threaded processes. Any parallelism that exists in the code would have to be extracted through the operating system and/or hardware of the machine. Even then, InfoExpress would be faster running on one server, with a sufficiently fast CPU and I/O subsystem, than using NFS. InfoExpress's strength is in it's ability to manage files that are being accessed by many concurrent users. RM/COBOL does not handle any of the locking process, but asks the operating system for a lock to occur and let's the operating system handle the actual locking of the file. Unfortunately, this means we are unable to optimize the locking mechanism as it is out of our control. Old
Problem: How can I print on Custom Forms without depending on a particular printer? Resolution: Each printer starts printing at a different physical position on the paper. This can cause issues when using a Custom Form and different printers. The program must take the physical offset into account when you calculate the X/Y positions. There is a way for an RM/Cobol program to print to an X/Y Position and allow for this physical offset. First, use P$GetDeviceCapabilities to retrieve the physical offset value for the printer. Then use P$TextOut instead of the Cobol WRITE statement to print text. Attached is an example program. The P$GetDeviceCapabilities call returns values in pixels. You must convert those pixels to inches, if you prefer inches (you have a choice). The example program does the math in inches. There is another example program in the samples folder of the RM/Cobol Development system called PDEVICE.CBL. You can compile this and run it to see t
Problem: How do I fix a "duplicate presentation sequence" error? Resolution: Chances are this error is coming from very old version of Relativity, since this problem was fixed in version 4.2. However, the cause may actually be in the catalog. If so, you will need to use the attached utility to fix it. If you are running an earlier version than 4.2 and still get this error after trying the utility, then you will need upgrade to the latest version of Relativity. To fix the catalog with the attached utility, follow these steps: 1. Close the datasource completely if it is open under the Relativity Designer or other ODBC access tool. 2. Double click on the reldbfix.exe icon. 3. Select the datasource containing the tables that generate the "Duplicate Presentation Sequence" error message. 4. Select "Repair sequence numbers" from the list of available actions. 5. Press the OK button. 6. Enter login information for the catalog. &
Problem: How can I minimize record locking issues? Resolution: Please see the attached zip file for a procedure and supporting example program. Attachments: RecordLocking.zip Old KB# 4688
Problem: What does the error "The system file is not suitable" mean? Resolution: If you get the following message during installation: "16-bit MS-DOS Subsystem C:\\Windows\\System32\\Autoexec.nt. The system file is not suitable for running MS-DOS and Microsoft Windows applications. Choose 'Close' to terminate the application" There is a well documented problem in Windows XP SP2 that sometimes causes the autoexec.nt file to disappear. When this happens, running 16-bit applications will generate this message. C:\\Windows\\repair should have a backup copy of this file. Old KB# 4673
Problem: How can you change the columns and rows for the runtime display? Resolution: You can use a configuration file and setup a TERM-ATTR configuration record and define the COLUMNS and ROWS which will be displayed on the terminal screen. A sample configuration file is in the installation folder, called WINDOWS.CFG. Old KB# 4660
Problem: How can I reindex the output from RECOVER2? Resolution: Please see the attached source code sample. Attachments: reindex.cbl Old KB# 4667
Problem: Why can't I install RMCOBOL on my 64 bit Linux system? Resolution: You will need to edit the original install.sh and make sure the ARCH_TYPE section looks like this: case $ARCH_TYPE in i?86) MACH="i386" ;; 3*) MACH="i386" ;; x86_64) MACH="i386" ;; sun4*) MACH="sparc" ;; . . . Just add the x86_64 line, so the script will recognize the output that the "uname -m" command returns. Old KB# 4663
Problem: How can I define decimal numbers with ODBCLink/SE and InstantSQL? Resolution: In order to get numbers with fractional parts (i.e. decimals) the SQL data type must be SQL_DECIMAL. The Image data types that convert to SQL_DECIMAL are: DECIMAL (Internal representation is packed decimal) Image Zoned (Z) Image Packed (P) Image I3 (48-bit integer) Image I4 (64-bit integer) It is certainly possible to have a BINARY (i.e. 32-bit integer physical storage) data item use a picture such as PIC 9(6)v99 -- at least this is possible in RM/COBOL, and is required by the COBOL standard. So this might be the case where the implementation is overloading an underlying integer data type with a decimal scale factor (the V99 part of the PIC) that is not known to the Image database per se. It would be interesting to find some capability of configuring the ODBC driver so that it will return SQL_DECIMAL for those Image fields that are described in COBOL
Problem: How can I recover from "Lock file lock error 13: Permission denied"? Resolution: If you get an "unauthorized use of runtime error", or an Loc 801, 802, 804, 806, or 807 error on a UNIX/Linux system, run the command: rmucutil <serial number with use count > runtime details where <serial number with use count > is the registration number with the use count as displayed by the runtime banner. If this returns: "Lock file lock error 13: Permission denied", try deleting the lock file: 32-bit runtime: rm -rf /tmp/.RmCobolUC32 64-bit runtime: rm -rf /tmp/.RmCobolUC64 If you still get the error, try the following recommendations: Clear the RM/COBOL shared memory Check the license.vlt file permissions, and, ensure that all users/groups have read, and write, access. Reboot the affected system. #RMCOBOL#RMCobol#TipfromSupport
Problem: How can I remove Data Manager DSNs? Resolution: If you've already removed the Relativity Data Manager from the system, and the MS ODBC Administrator refuses to delete the corresponding User DSNs because it can no longer find the driver, you can delete the entries from the registry manually: HKEY_CURRENT_USER\\Software\\ODBC\\ODBC.INI Old KB# 4656
Problem: How can I fix 30, 64 errors on my Windows systems? Resolution: A 30, 64 error is an Microsoft Windows error. According to the Microsoft, it stands for "ERROR_NETNAME_DELETED" and means: "The specified network name is no longer available." Here are some suggestions that might help. 1. Turn off opportunistic locking on the data Server. In the SupportTools folder execute the "suptool1.exe rmccheck" from a command prompt. You can also execute "suptool1 contents" for a complete list of the Window tools available. 2. Turn off auto disconnect. See the following Microsoft Knowledge Base article: http://support.microsoft.com/default.aspx?scid=kb;en-us;138365 3. Update network card drivers to the latest version. 4. Read the following Microsoft Knowledge Base article on troubleshooting network problems: http://support.microsoft.com/default.aspx?scid=kb;[LN];325487 5. Some customers who have experienced 30,64 errors have been
Problem: Developing multi-threaded Java application that need to call COBOL programs, then we need the COP Framework. Where can we find the Java COP Jar file, COPClient.jar Best regards, Norton Resolution: The COP framework was never part of Server Express It was a Net Express feature only. 'What is the COP framework'? The COP framework is an add on to Net Express Service pack 1. We have full EJB support in Server Express to interoperate with java, not by using the COP framework. That was created as a temporary measure on Windows until incorporated Enterprise Server and it's EJB support . SX 4.0 and up have the full J2EE support. Since we have released Net Express 4.0 and Enterprise Server we recommend making use of the J2EE interoperability provided by those products. It fully supports the standards and provide an effective contained environment for COBOL to execu
Problem: Is there a place in a .int file where it shows the compiler directives used? Resolution: There is no direct way to retrieve directives from a .int file. If the .int was compiled with a listing output (.lst file) and the SETTINGS directive was used, the .lst file will contain the directives. The time stamps (ls -l) on the .lst and .int files will be identical or very close in time. That permits the user to infer the directive settings shown in the .lst file were the ones used to compile the .int. Example: cd cp $COBDIR/demo/tictac/tictac.cbl ./ cob -P tictac.cbl -C SETTINGS ls -l tictac.* -rw-r--r-- 1 username usergrp 8739 2006-08-09 15:05 tictac.cbl -rw-r--r-- 1 username usergrp 51968 2006-08-09 15:06 tictac.idy -rw-r--r-- 1 username usergrp 3840 2006-08-09 15:06 tictac.int -rw-r--r-- 1 username usergrp&n
Problem: Customer has an IBM AIX machine with MQ Series. Request for help, linking MQ Series for AIX with Server Express. Resolution: Kb article 17817 talks about creating stand-alone programs and shared objects which include the MQ libraries. With a little adaptation it is possible to build an RTS that includes MQ support. The way to do this is as follows: 1. Create an 'export' file to make the MQ series entry point visible. This should include all of the MQ entry points used by your application. Example: echo "MQCONN" >mq.exp echo "MQOPEN" >> mq.exp echo "MQCLOSE" >> mq.exp echo "MQGET" >> mq.exp echo "MQCMIT" >> mq.exp echo "MQPUT" >> mq.exp echo "MQDISC" >> mq.exp 2. Create the run-time using the following cob command: cob -xto newrts -e"" -Q -bE:mq.exp -lmqmcb_r
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.