HP_DECset_for_OpenVMS_______________________________ Code Management System for OpenVMS Release Notes August 2003 These release notes describe important general information, new and changed features, current restrictions, and documentation notes that pertain to the Code Management System Version 4.2 for OpenVMS software. Operating System Version: HP OpenVMS VAX Version 6.2, 7.2, or 7.3 HP OpenVMS Alpha Version 6.2, 7.2-2, or 7.3-1 Software Version: HP DECset Version 12.5 for OpenVMS Code Management System Version 4.2 for OpenVMS Hewlett-Packard Company Palo Alto, California ________________________________________________________________ © 2003 Hewlett-Packard Development Company, L.P. Microsoft, Windows, Windows NT, and Visual C++ are U.S. registered trademarks of Microsoft Corporation. Motif is a trademark of The Open Group in the United States and other countries. Confidential computer software. Valid license from HP and/or its subsidiaries required for possession, use, or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendors standard commercial license. Neither HP nor any of its subsidiaries shall be liable for technical or editorial errors or omissions contained herein. The information in this document is provided "as is" without warranty of any kind and is subject to change without notice. The warranties for HP products are set forth in the express limited warranty statements accompanying such products. Nothing herein should be construed as constituting an additional warranty. _________________________________________________________________ Contents Preface................................................... v 1 General Information 1.1 Introduction..................................... 1-1 1.2 Associated Documents............................. 1-1 1.3 Associated Products.............................. 1-2 1.4 Using CMS with DECwindows Motif.................. 1-3 1.5 Installation Requirements........................ 1-3 2 New Features 2.1 Replace With Insertion Into Class................ 2-1 2.1.1 Routine Format and Arguments .................. 2-3 2.2 Message Changes and Additions.................... 2-3 3 New Features in Version 4.1 3.1 Improved Performance............................. 3-1 3.2 Change Remark on a Reservation................... 3-1 3.2.1 Routine Format and Arguments .................. 3-2 3.3 Delete with Remove............................... 3-3 3.3.1 Routine Format and Arguments .................. 3-4 3.4 Longer Variant Name Support...................... 3-5 3.4.1 Routine Format and Arguments .................. 3-6 3.4.2 Restrictions .................................. 3-7 3.5 Class Difference Command......................... 3-7 3.5.1 Routine Format and Arguments .................. 3-9 3.6 Disable Auto-fetch to LSE........................ 3-13 3.7 Copy a Group or Class............................ 3-14 3.7.1 Routine Format and Arguments .................. 3-14 3.8 Selective Deletion of History Records............ 3-15 3.8.1 Routine Format and Arguments .................. 3-15 iii 3.9 Insert a Generation Based on a Date.............. 3-16 3.9.1 Routine Format and Arguments .................. 3-16 3.10 Enhancements to the VERIFY Command............... 3-17 3.11 Message Changes and Additions.................... 3-17 3.11.1 Changed messages .............................. 3-17 3.11.2 New messages .................................. 3-17 4 Problems Fixed 5 Known Problems 5.1 General.......................................... 5-1 5.2 DECwindows Problems.............................. 5-13 5.3 Documentation Problems........................... 5-15 6 Restrictions iv _________________________________________________________________ Preface These release notes characterize the Code Management System Version 4.2 for OpenVMS (CMS) software. These notes contain information that either supplements or supersedes the information in the HP DECset Version 12.5 for OpenVMS (DECset) documentation set. Intended Audience These release notes are intended for users and system managers who need information about CMS on either of the OpenVMS operating system platforms (VAX or Alpha). Document Structure These release notes are organized as follows. o Chapter 1 contains general information about this release. o Chapter 2 contains a description of the new features included in this release. o Chapter 3 contains a description of the new features included in Version 4.1. o Chapter 4 describes all problems resolved by the current release. o Chapter 5 describes all known problems in the current release. o Chapter 6 describes all restrictions. v Related Documents For additional information about OpenVMS or DECset products and services, visit the following web site: http://www.hp.com/go/openvms Reader's Comments HP welcomes your comments on these release notes. Please send comments to either of the following addresses: Internet openvmsdoc@hp.com Mail Hewlett-Packard Company OSSG Documentation Group, ZKO3-4/U08 110 Spit Brook Rd. Nashua, NH 03062-2698 How To Order Additional Documentation For information about how to order additional documentation, visit the following World Wide Web address: http://www.hp.com/go/openvms/doc/ Conventions The following conventions are used in these notes. ___________________________________________________________ Convention__________Description____________________________ $ A dollar sign ($) represents the OpenVMS DCL system prompt. Ctrl/x The key combination Ctrl/x indicates that you must hold down the key labeled Ctrl while you press another key, for example, Ctrl/Y or Ctrl/Z or a pointing device button. boldface text Boldface text represents the introduction of a new term. monospace boldface Boldface monospace text represents user text input in interactive examples. vi ___________________________________________________________ Convention__________Description____________________________ italic text Italic text represents book titles, parameters, arguments, and information that can vary in system messages (for example, Internal error number). UPPERCASE Uppercase indicates the name of a command, routine, the name of a file, the name of a file protection code, or the abbreviation of a system privilege. lowercase Lowercase in examples indicates that you are to substitute a word or value ____________________of_your_choice.________________________ vii 1 _________________________________________________________________ General Information The information in these release notes pertain to the Code Management System Version 4.2 for OpenVMS software. HP suggests that you upgrade your environment incrementally with each new release, but there is no technical requirement to do so. It is also recommended that you review the release notes for each version of this software since they capture important release-oriented information and advise you of changes between versions. 1.1 Introduction Code Management System Version 4.2 for OpenVMS is a minor release. 1.2 Associated Documents The following documents contain information related to CMS. Note however, that for the DECset Version 12.5 release, only the software product descriptions and component product release notes have been updated. The other documents associated with CMS are: o Guide to DIGITAL Code Management System for OpenVMS Systems o DIGITAL Code Management System Reference Manual o DIGITAL Code Management System Callable Routines Reference Manual Also applicable are the general DECset documents: o Compaq DECset for OpenVMS Installation Guide o HP DECset for OpenVMS VAX Software Product Description o HP DECset for OpenVMS Alpha Software Product Description o Guide to Detailed Program Design for OpenVMS Systems General Information 1-1 o Using DECset for OpenVMS Systems In addition to the base CMS documentation, the DECset engineering team has also provided the HP DECset for OpenVMS Cookbook for an Integrated Product Development Environment. This document comprises a series of technical articles that describe how each of the component applications can be used in different programming environments. This document is provided in PostScript (.PS), HTML (.HTML), and ASCII text (.TXT) formats from the following location: SYS$SYSROOT:[SYSHLP.EXAMPLES.DECSET]DECSET_COOKBOOK.* 1.3 Associated Products The DECset Clients for CMS and MMS software provides access from a desktop personal computer (PC) to the CMS libraries and MMS features residing on OpenVMS Alpha and OpenVMS VAX Systems. Note that the DECset Clients for CMS and MMS software is packaged and distributed separately from the DECset, CMS, and MMS products. DECset Clients for CMS and MMS can be used from a personal computer running Microsoft Windows; see the associated Software Product Description for information on supported versions. Connection to a CMS library from the PC is possible once the server software (provided with the client) and the CMS for OpenVMS software are installed at the server site. The main DECset Client windows offer menu access to most of the CMS and MMS functions. DECset Client commands can also be performed by clicking the command buttons on the toolbar. In addition, DECset Client supports drag-and- drop functionality for manipulating data within the DECset Client window. For configuration management, a set of files is stored in a CMS library on the OpenVMS system. These files can be fetched, reserved, and replaced in either the PC environment using the CMS Client or the local OpenVMS environment using CMS. As a result, a common configuration can be maintained regardless of the operating environment. 1-2 General Information Additional information on DECset Clients for CMS and MMS can be found on the DECset web page: http://h71000.www7.hp.com/commercial/decset/clients_index.html 1.4 Using CMS with DECwindows Motif To use CMS with the DECwindows Motif interface, one of the following must be installed: o HP DECwindows Motif for OpenVMS Alpha Version 1.2-5, 1.2-6, or 1.3 o HP DECwindows Motif for OpenVMS VAX Version 1.2-5 or 1.2-6 1.5 Installation Requirements For a new installation of CMS, the following is required: For HP OpenVMS Alpha Systems Global Pages 3500 Global Sections 10 Disk Blocks 44000 For HP OpenVMS VAX Systems Global Pages 1500 Global Sections 15 Disk Blocks 9000 General Information 1-3 2 _________________________________________________________________ New Features The following enhancements were added to CMS for the Version 4.2 release. 2.1 Replace With Insertion Into Class The REPLACE command has been extended to allow newly created generations to be automatically inserted into one or more classes. The classes are specified in a new qualifier /INSERT_INTO_CLASS. The syntax for this command is as follows: REPLACE element-expression "remark" /CONFIRM /GENERATION=generation-expression /IDENTIFICATION_NUMBER=n /IF_CHANGED /INPUT[=file-specification] /INSERT_INTO_CLASS=(class_expression) /KEEP /LOG /OCCLUDE[=option,...] /RESERVE /INSERT_INTO_CLASS=(class_expression) Specifies one or more classes into which newly created generations are to be inserted. The class expression can be a class name, a wildcard expression, or a list of these separated by commas. If a list is not used, the parentheses can be omitted. The new generation of each element replaced is inserted into the specified classes. If no new generation is created, no insertion takes place. New Features 2-1 This qualifier effectively combines the REPLACE and INSERT GENERATION commands. It ensures that the new generation is inserted into the specified class of classes, avoiding the potential problem of other users updating the library between a REPLACE command and a subsequent INSERT GENERATION command. It also deals effectively with variants. For each of the specified classes, provided there is INSERT access to the class and it is not set to READ_ONLY, new generations are always inserted, irrespective of whether or not the class already contains a generation of the element. Any old generation is removed from the class before the new generation is inserted. This is like using the /ALWAYS qualifier in an INSERT GENERATION command. If other insertion modes, for example /SUPERSEDE, are required, create a temporary class and use that in the REPLACE command. Then use the temporary class as the value of the /GENERATION qualifier in an INSERT GENERATION command with the required mode. The insert operation takes place in the library where the new generation was created, so class occlusion does not apply to classes specified in this qualifier (class occlusion applies to a class specified in the /GENERATION qualifier). Any actions specified in access control entries associated with the INSERT GENERATION command, or with the classes into which generations are inserted, are executed after any actions associated with the REPLACE command or with elements being replaced. Use of this qualifier requires execute access to the INSERT GENERATION command. See the DIGITAL Code Management System Reference Manual for information on other qualifiers and parameters. 2-2 New Features 2.1.1 Routine Format and Arguments CMS$REPLACE ( library_data_block, element_expression, [remark], [variant], [reserve], [keep], [input_file], [input_routine], [user_arg], [msg_routine], [if_changed], [generation_expression], [identification_number], [insert_into_class]) insert_into_class Type: char_string Access: read Mechanism: by descriptor Specifies a list of classes into which newly created generations are to be inserted. 2.2 Message Changes and Additions The following message has been added. o CANTRESMRG - Cannot resolve merge, marked as conflict This warning message is the result of CMS discovering an inconsistency during a merge operation. The lines reported as being in conflict may not be from the corresponding parts of the two element generations that are being merged. When resolving conflicts, be aware of the above and perform the merge manually if necessary. New Features 2-3 3 _________________________________________________________________ New Features in Version 4.1 The following enhancements were added to CMS for the Version 4.1 release. 3.1 Improved Performance CMS Version 4.0 saw a decline in performance due to the addition of new functionality. This version of CMS has had its performance increased to match the level of CMS Version 3.9. 3.2 Change Remark on a Reservation The function of the MODIFY command has been extended to enable you to modify aspects of a particular reservation of an element. With the new MODIFY RESERVATION command, you can change the original remark entered for a specific reservation. The syntax for this command is as follows: MODIFY RESERVATION element_expression [modify_command_remark] /REMARK=new_remark_for_reservation (required) /GENERATION=generation_expression /IDENTIFICATION_NUMBER=n /CONFIRM /OCCLUDE[=option] The /REMARK qualifier is required for the MODIFY RESERVATION command. The new_remark_for_reservation is a quoted string that is to replace the remark currently on the reservation identified by the element expression and the /GENERATION and /IDENTIFICATION_NUMBER qualifiers. The following sections describe the format and arguments for the MODIFY RESERVATION routine as they pertain to the callable interface. New Features in Version 4.1 3-1 3.2.1 Routine Format and Arguments CMS$MODIFY_RESERVATION ( library_data_block, element_expression, [generation_expression], [identification_number], [modify_command_remark], new_remark_for_reservation, [msg_routine]) library_data_block Type: cntrlblk Access: modify Mechanism: by reference Specifies an intialized LDB. element_expression Type: char_string Access: read Mechanism: by descriptor Specifies one or more elements or groups of elements whose reservation remarks are to be changed. Wildcards and a comma-separated list are allowed. You must include a period (.) in the element expression to select one or more elements from the complete list of elements in the library. If you do not include a period, CMS interprets the parameter as a group name and selects elements based on the list of groups established in the library. generation_expression Type: char_string Access: read Mechanism: by descriptor Specifies the generation of an element reservation that is to be changed. identification_number Type: longword_signed Access: read Mechanism: by reference 3-2 New Features in Version 4.1 Specifies the reserved generation of the element whose remark is to be changed. CMS assigns a unique reservation identification number to each element when it is reserved. If an element generation has only one reservation, you can change that reservation remark by specifying the generation expression. However, if multiple reservations exist for the element generation, you must specify the identification number of the exact reservation. Use the CMS$SHOW_RESERVATIONS routine to determine the reservation number of a generation. modify_command_remark Type: char_string Access: read Mechanism: by descriptor Specifies the new remark string to be logged in the history file along with the command. new_remark_for_reservation Type: char_string Access: read Mechanism: by descriptor Specifies the remark string to replace the remark currently on the reservation. msg_routine Type: procedure Access: read Mechanism: by reference Specifies a message-handler routine. For information about writing a message-handler routine, see Section 1.8 of the DIGITAL Code Management System Callable Routines Reference Manual. 3.3 Delete with Remove This new qualifier to the DELETE command for classes and groups combines the DELETE command with the REMOVE command. It first removes any entries in the class or group, then deletes the class or group itself. New Features in Version 4.1 3-3 The syntax for this command is as follows: DELETE GROUP/REMOVE_CONTENTS group_expression DELETE CLASS/REMOVE_CONTENTS class_expression /LOG /CONFIRM /OCCLUDE[=option] 3.3.1 Routine Format and Arguments CMS$DELETE_CLASS ( library_data_block, class_expression, [remark], [msg_routine], [remove_contents]) CMS$DELETE_GROUP ( library_data_block, group_expression, [remark], [msg_routine], [remove_contents]) remove_contents Type: longword_signed Access: read Mechanism: by reference Determines whether CMS removes the contents of the group or class before the deletion. The default value of False (0) tells CMS not to delete the contents. Specify a value of True (1) to have CMS first remove the contents of the group or class before deleting it. For complete information on the CMS$DELETE_CLASS and CMS$DELETE_GROUP routines, see the DIGITAL Code Management System Callable Routines Reference Manual. 3-4 New Features in Version 4.1 3.4 Longer Variant Name Support Variant names are no longer limited to a single character. This facility has been expanded to allow a string of 255 alphabetic or underscore (_) characters. To use longer variant names, supply the long name to the REPLACE/VARIANT command. A new library attribute LONG_VARIANT_NAMES has been added. Before generations with long variant names can be replaced in a library, the LONG_VARIANT_NAMES attribute must be set for the library. The LONG_VARIANT_NAMES attribute can be set using the /LONG_VARIANT_NAMES qualifier with the CREATE LIBRARY and MODIFY LIBRARY commands, and reset using the /NOLONG_ VARIANT_NAMES qualifier. In the CMS DECwindows interface, the New Library and Modify Library dialog boxes also provide for control of the this attribute. The syntax for these commands is as follows: CREATE LIBRARY directory-specification /AFTER[=directory-specification] /BEFORE[=directory-specification] /[NO]CONCURRENT /[NO]CONFIRM /[NO]CREATE_DIRECTORY /[NO]EXTENDED_FILENAMES /[NO]KEEP /[NO]LOG /[NO]LONG_VARIANT_NAMES /REFERENCE_COPY=directory-specification /NOREFERENCE_COPY /REVISION_TIME[=option] /LONG_VARIANT_NAMES Used to create a CMS library that allows the use of long variant names. Use /NOLONG_VARIANT_NAMES to create a CMS library that does not allow the use of long variant names. /NOLONG_VARIANT_NAMES is the default. New Features in Version 4.1 3-5 MODIFY LIBRARY /[NO]CONCURRENT /[NO]CONFIRM /[NO]EXTENDED_FILENAMES /[NO]KEEP /[NO]LOG /[NO]LONG_VARIANT_NAMES /OCCLUDE[=option,...] /REFERENCE_COPY=directory-specification /NOREFERENCE_COPY /REVISION_TIME[=option] /LONG_VARIANT_NAMES Used to change the attribute of a CMS library to allow the use of long variant names. Use /NOLONG_VARIANT_NAMES to change the attribute to disallow the use of long variant names. If this qualifier is not specified the status of the attribute remains unchanged. 3.4.1 Routine Format and Arguments CMS$CREATE_LIBRARY ( library_data_block, directory, [remark], [reference_copy_dir], [msg_routine], [confirm_routine], [output_routine], [width], [position], [positional_dir_spec], [revision_time], [auto_create], [concurrent], [0], [keep], [extended_filenames], [long_variant_names]) 3-6 New Features in Version 4.1 CMS$MODIFY_LIBRARY ( library_data_block, [remark], reference_copy_dir, [msg_routine], [revision_time], [concurrent], [0], [keep], [extended_filenames], [long_variant_names]) long_variant_names Type: mask_longword Access: read Mechanism: by reference The default 0 does not allow long variant names. The value 1 allows long variant names. 3.4.2 Restrictions If you attempt to use an earlier version of CMS (prior to Version 4.1) to access to a library that has the long variant name attribute set, the following error message is displayed: %CMS-F-BADLIB, there is something wrong with your library * CMS-F-BADTYPSTR, header block type is 145; it should be 17 This occurs for any command issued against the library by an older version of CMS until a CMS Version 4.1 user successfully resets the attribute on the library. 3.5 Class Difference Command CMS now has the ability to compare two classes in several different ways. The differences are defined by using the /SHOW qualifier with a keyword that denotes the type of differences to display. If the particular generation of any element, that is a member of the class, differs between the classes, CMS creates a file that contains a listing of the class members that differ between them. If the contents of the classes are the same, CMS issues a message to that effect and does not create a differences file (unless the /FULL qualifier New Features in Version 4.1 3-7 is in effect). The /CLASS qualifier must be specified prior to any other qualifiers. The syntax for this command is as follows: DIFFERENCES/CLASS class-name1 class-name2 /APPEND /FULL /IGNORE=FIRST_VARIANT /LOG /OCCLUDE[=options] /OUTPUT[=file_specification] /PARALLEL /SHOW=(options[,...]) /WIDTH=n /IGNORE=FIRST_VARIANT Directs CMS to ignore any differences where the generation in one class is the first variant of the generation in the other class. For example, generation 2C1 is a first variant of generation 2 and generation 4B6D1 is a first variant of generation 4B6. /SHOW=(keyword[,...]) Specifies one or more of the following keywords. Each keyword indicates a type of class difference to show. GENERATION_DIFFERENCES - Directs CMS to show the difference if the generation in one class differs from the generation in the other class but one generation isn't a variant of the other generation. VARIANT_DIFFERENCES - Directs CMS to show the difference if the generation in one class differs from the generation in the other class and one generation is a variant of the other. If the /SHOW qualifier is not specified, both generation differences and variant differences are shown. If a generation of an element is in one class but no generation of the element is in the other class then the difference is always shown regardless of whether the /SHOW qualifier is specified or not. The /CLASS qualifier is required. See the DIGITAL Code Management System Reference Manual for information on other qualifiers and parameters. 3-8 New Features in Version 4.1 3.5.1 Routine Format and Arguments CMS$DIFFERENCES_CLASS ( library_data_block, class_expression1, class_expression2, [append], [format], [full], [ignore_mask], [nooutput], [parallel], [show_mask], [width], [output_file], [output_routine], [user_arg], [msg_routine]) All arguments not described below have the same functionality as in the CMS$DIFFERENCES routine. See the DIGITAL Code Management System Callable Routines Reference Manual for details. class_expression1 Type: char_string Access: read Mechanism: by descriptor Specifies the first class name to be used for the differences. class_expression2 Type: char_string Access: read Mechanism: by descriptor Specifies the second class name to be used for the differences. ignore_mask Type: mask_longword Access: read Mechanism: by reference New Features in Version 4.1 3-9 Specify whether CMS ignores the first variant of a generation. To treat the first variant as a difference, specify a value of 0. Use the constant CMS$M_IGNORE_FIRST_ VARIANT to ignore the first variant. Directs CMS to ignore any differences where the generation in one class is the first variant of the generation in the other class. For example generation 2C1 is a first variant of generation 2 and generation 4B6D1 is a first variant of generation 4B6. show_mask Type: mask_longword Access: read Mechanism: by reference Specifies one or more values for the show_mask argument. Values are predefined by using the following mask constants. CMS$M_ELEMENT_DIF - Include differences where an element is in one class but not the other. CMS$M_GENERATIONAL_DIF - Include differences where one member generation differs from the other by more than just its variant. Directs CMS to show the difference if the generation in one class differs from the generation in the other class but one generation isn't a variant of the other generation. CMS$M_VARIANT_DIF - Include differences where one member generation differs from the other by its variant. Directs CMS to show the difference if the generation in one class differs from the generation in the other class and one generation is a variant of the other. These values may be ORed together to allow combinations of these values to be used. If a NULL parameter or 0 is supplied the default is to show ELEMENT, GENERATIONAL and VARIANT differences. output_routine Type: procedure Access: read Mechanism: by reference 3-10 New Features in Version 4.1 The unformatted callback routine for CMS$DIFFERENCES_ CLASS() is called with the following parameters: diff_class_unformatted_callback(first_call, library_data_block, user_param, eof_flag, diff_flag, output_record_id1, output_record_id2, entry_number1, entry_number2) Parameters are all as documented for the unformatted callback routine for CMS$DIFFERENCES() in the DIGITAL Code Management System Callable Routines Reference Manual except where noted below: eof_flag Type: longword_signed Access: read Mechanism: by reference Same as described in DIGITAL Code Management System Reference Manual except that the penultimate sentence should read as follows: When eof_flag is true, the contents of diff_flag, output_ record_id1, output_record_id2, entry_number1, and entry_ number2 are undefined. diff_flag Type: longword_signed Access: read Mechanism: by reference Specifies whether the two records are different or not. If diff_flag is false (0), the two records are the same, but textually they may actually be different. This happens if a full listing is requested and there are generation members that differ between the two classes but are not flagged differently due to the options selected on the show_mask and ignore_mask arguments to CMS$DIFFERENCES_ CLASS. New Features in Version 4.1 3-11 If diff_flag is true (1), output_record_id1/entry_number1 and output_record_id2/entry_number1 describe generation members for the same element but whose generation number differs between the two classes. In addition if one of the entry numbers (entry_number1 or (entry_number2) is -1 it means that this element exists in one class but not the other. output_record_id1 Type: address Access: read Mechanism: by reference Specifies a string identifier for the generation member being passed from CMS$DIFFERENCES_CLASS() for class1. This parameter is only valid if entry_number1 contains a value other than -1. The string has the format: element-name(generation-name) "generation comment" If both output_record_id1 and output_record_id2 are supplied on the same call they always identify the same element, albeit different generations of that element. Use the CMS$GET_STRING routine to translate the string identifier. output_record_id2 Type: address Access: read Mechanism: by reference Specifies a string identifier for the generation member being passed from CMS$DIFFERENCES_CLASS() for class2. This parameter is only valid if entry_number2 contains a value other than -1. The string has the format: element-name(generation-name) "generation comment" If both output_record_id1 and output_record_id2 are supplied on the same call they always identify the same element, albeit different generations of that element. Use the CMS$GET_STRING routine to translate the string identifier. 3-12 New Features in Version 4.1 entry_number1 Type: longword_signed Access: read Mechanism: by reference Specifies the position of the generation member in the list of generation members that are members of class1. The generation members are labeled from 1 - n. Note that if particular elements are members of one class but not the other then the element has a different entry number in each class. This parameter is -1 if no entry from class1 is being specified by this call, in other words this element is in class2 but not in class1. entry_number2 Type: longword_signed Access: read Mechanism: by reference Specifies the position of the generation member in the list of generation members that are members of class2. The generation members are labeled from 1 - n. Note that if particular elements are members of one class but not the other then the element has a different entry number in each class. This parameter is -1 if no entry from class2 is being specified by this call, in other words this element is in class1 but not in class2. 3.6 Disable Auto-fetch to LSE CMS now provides a setting in the DECwindows interface that lets you specify whether a FETCH or RESERVE operation automatically opens an Language-Sensitive Editor Version 4.8 for OpenVMS buffer for the element. From the OPTIONS pull-down menu, choose LSE Views. Select Fetch, Reserve, both or neither to have CMS open LSE buffers or not for Fetched or Reserved elements. New Features in Version 4.1 3-13 3.7 Copy a Group or Class The Copy command has been expanded to include the capability of copying groups and classes within and between CMS libraries. The syntax for this command is as follows: COPY class_name new_class_name "remark" COPY group_name new_group_name "remark" /LIBRARY=library_specification /LOG /CONFIRM /OCCLUDE[=option] When copying between libraries, all the elements and generations must exist in the library to which the group or class is being copied. 3.7.1 Routine Format and Arguments CMS$COPY_CLASS ( library_data_block, input_class_expression, ouput_class_expression, [remark], [source_library_data_block], [msg_routine]) CMS$COPY_GROUP ( library_data_block, input_group_expression, ouput_group_expression, [remark], [source_library_data_block], [msg_routine]) The parameters and return codes for CMS$COPY_CLASS and CMS$COPY_GROUP are the same as the CMS$COPY_ELEMENT routine. See the DIGITAL Code Management System Callable Routines Reference Manual for details. 3-14 New Features in Version 4.1 3.8 Selective Deletion of History Records New qualifiers have been added for the DELETE HISTORY command to allow the deletion of history records The syntax for this command is as follows: DELETE HISTORY "remark" /OBJECT=object_name /TRANSACTIONS=(transaction[,...]) /USER=username All of the qualifiers shown above are new qualifiers for the DELETE HISTORY command and allow the deletion of history records based on the type of transaction, user name, or object name. 3.8.1 Routine Format and Arguments CMS$DELETE_HISTORY ( library_data_block, [remark], before, [transaction_mask], [output_routine], [user_arg], [msg_routine], [object], [user]) object Type: char_string Access: read Mechanism: by descriptor A string containing the name of the object whose history is to be deleted. user Type: char_string Access: read Mechanism: by descriptor A string containing the name of the user whose history is to be deleted. New Features in Version 4.1 3-15 For complete information on the CMS$DELETE_HISTORY routine, see the DIGITAL Code Management System Callable Routines Reference Manual. 3.9 Insert a Generation Based on a Date A new qualifier has been added to the INSERT GENERATION command. The qualifier is /BEFORE, which allows the user to specify a date instead of a generation number for inclusion into a class. The qualifier uses the date to determine which generation is inserted. The latest generation before the specified date is used. The syntax for this command is as follows: INSERT GENERATION element_expression class_name "remark" /BEFORE[=date] 3.9.1 Routine Format and Arguments CMS$INSERT_GENERATION ( library_data_block, element_expression, class_expression, [remark], [generation_expression], [always], [supersede], [if_absent], [msg_routine], [before]) before Type: date_time Access: read Mechanism: by reference Specifies a binary date and time value that CMS uses to select the generation for insertion into a class. For complete information on the CMS$INSERT_GENERATION routine, see the DIGITAL Code Management System Callable Routines Reference Manual. 3-16 New Features in Version 4.1 3.10 Enhancements to the VERIFY Command The VERIFY/REPAIR command has been enhanced such that the following conditions can be repaired when detected in a CMS library. o Inconsistent class back pointer list on a generation o Inconsistent free blocks o Inconsistent class back pointer list entry on a particular generation block o Inconsistent free block count o Inconsistent free block list end pointer o Lost free block 3.11 Message Changes and Additions The following messages have been added or changed in CMS. 3.11.1 Changed messages o COPIED - 'operation-type' 'library''object-name' copied to 'library''object-name' o COPIES - 'number' copy operation(s) completed o ERRCOPIES - 'number' copy operation(s) completed and 'number' error(s) occurred 3.11.2 New messages o BADLST - 'object' list for generation 'element'('number') is corrupted This error message is the result of CMS discovering an inconsistency or error in an internal list for the specified generation. Use VERIFY/REPAIR, if it is unable to correct the problem, restore a backup copy of your library. o BADREFHDR - reference copy file 'name' not closed by CMS This error message is the result of CMS discovering that a reference copy file was not closed by CMS. Someone has used something other than CMS to modify the file header information of this reference copy. New Features in Version 4.1 3-17 Use VERIFY/REPAIR to recreate the reference copy for the element. o DIFFCLASS - classes are different This message is the result of the DIFFERENCES/CLASS command. It is displayed when differences are found between the two classes. This is an informational message. o ERRVERGEN -generation 'name' verified with errors CMS encountered one or more errors while verifying a generation in your library. Use VERIFY/REPAIR, if it is unable to correct the problem, restore a backup copy of your library. o FREBLKCON - 'count' free blocks consolidated into other free blocks During a VERIFY/REPAIR operation CMS has consolidated free blocks in the library into other free blocks in order to improve future efficiency. This is an informational message. o IDENTCLASS - classes are identical The two classes compared by CMS are identical. This is an informational message. o INCLIBVER - library version is 'num', maximum supported version is 'num' This error message is displayed when an attempt is made to access a CMS library with a database version number that was greater than the maximum version supported by this version of CMS. Upgrade CMS to a version that understands the format of the library. o LONGVARFOUND - generation 'name' contains a long variant name This error message is the result of a failed MODIFY LIBRARY command. CMS has encountered a generation with a long variant name in the library during an attempt to change the library LONG_VARIANT_NAMES attribute from allow or disallow. Use DELETE GENERATION to delete this generation and any other generation that contains a long variant name. 3-18 New Features in Version 4.1 o NOBCKPTR - 'object' 'name' has no back pointer to 'object' 'name' This error message is the result of CMS encountering an internal error in the library control structure. Use VERIFY/REPAIR, if it is unable to correct the problem, use a backup copy of your library. o NODELACCESS - you do not have DELETE access to the element This error occurs if an element cannot be deleted due to the protection on the element file or an ACL preventing access to the element. Add DELETE access to the file associated with the element or change the ACL to allow DELETE access. o NOGENBEFORE - no generation exists from before 'date' The generations of the specified element were all created after the date specified on the /BEFORE qualifier. Correct the date to include the date of a generation. o NOREPBCKPTR - 'object' name, backpointer to 'object' 'name' not repaired CMS was unable to repair the specified backpointer list. Issue another VERIFY/REPAIR operation because later actions of the first VERIFY/REPAIR may make the list repairable. o REPBADLST - 'object' list for generation 'name' repaired CMS has successfully repaired the indicated condition in your library. This is an informational message. o REPBADTYP - 'object' block type repaired CMS has successfully repaired the indicated condition in your library. This is an informational message. o REPBCKPTR - 'object' name, backpointer to 'object' 'name' repaired CMS has successfully repaired the indicated condition in your library. This is an informational message. o REPCNTSTR - 'object' count repaired CMS has successfully repaired the indicated condition in your library. This is an informational message. New Features in Version 4.1 3-19 o REPENDPTR - 'object' list end pointer repaired CMS has successfully repaired the indicated condition in your library. This is an informational message. o REPMISBLK - a type 'object' missed block repaired CMS has successfully repaired the indicated condition in your library. This is an informational message. o TRUNCLST - 'object' list for generation 'element'('number') truncated CMS had to truncate an internal list during a VERIFY /REAPIR operation. This is an error message. Use VERIFY/REPAIR again, it should be able to correct the problem. If it is unable to correct the problem, restore a backup copy of your library. 3-20 New Features in Version 4.1 4 _________________________________________________________________ Problems Fixed The following problems were fixed and restrictions removed in CMS Version 4.2: o ID:23 - DIFFERENCES/SENTINEL on identical files could find differences. o ID:126 - When a replaced generation had no changes CMS failed to update the date attributes of the reference copy. o ID:173 - Error was possible in CMS$SHOW_RESERVATIONS for concurrent reservations. Callable routine CMS$SHOW_RESERVATIONS sometimes reported a concurrent reservation as not concurrent in the concurrent value of the callback data when one specific reservation was specified for the element_ expression parameter. This has been corrected. o ID:174 - Creating a CMS library with a very long directory specification produced a garbage error message. o ID:177 - When CMS with Extended File Specification support was installed, reference copy directories always had to be on an ODS-5 disk, even for libraries that did not allow elements with extended filenames. o ID:180 - The reference directory name could not start with CMS$LIB. o ID:181 - An access violation during merge operations has been fixed. This problem could also result in the following message on OpenVMS VAX systems: %STR-F-ILLSTRCLA, illegal string class Problems Fixed 4-1 o ID:183 - Fetching an indexed file to a remote DECnet node gave BADBLOSIZ error. o ID:189 - Incorrect messages were output when images were installed with privileges. SYS$STARTUP:CMS$STARTUP.COM has been updated so that it installs the image SYS$MESSAGE:CMSMSG.EXE. This ensures that textual messages are reported correctly if the main image, or any shareable images it uses, are installed with privileges. o ID:190 - CMS could fail with BAD_DATA_STR error on OpenVMS VAX systems. o ID:191 - The CMS library file 01CMS.CMS was created with incorrect attributes. The library file was being created with variable length record attributes. It is now created with undefined record attributes. o ID:192 - CMS could exceed LMF license limit when used from MMS. When the action lines in an MMS description file contain CMS commands, and multiple CMS libraries are accessed in resolving dependencies, more than one CMS license could be used. This could cause CMS to fail with: %LICENSE-F-NOAUTH, DEC CMS-USER use is not authorized on this node -LICENSE-F-EXCEEDED, attempted usage exceeds active license limits -LICENSE-I-SYSMGR, please see your system manager o ID:194 - VERIFY/REPAIR used large amounts of virtual memory. In Version 4.1, the VERIFY/REPAIR command could use large amounts of virtual memory. This has been corrected. o ID:195 - VERIFY/REPAIR reported incorrect errors. The VERIFY/REPAIR command would report -CMS-E-MSSBLKSTR errors when free space was consolidated. This has been corrected. o ID:199 - The reference copy was not updated after a REPLACE with no changes. 4-2 Problems Fixed The reference copy was not updated by a REPLACE command that created a new generation when there were no changes to the element. In a CMS library with the REVISION_TIME attribute set to STORAGE_TIME, this caused a subsequent VERIFY command to report errors on the reference copy. This problem has been corrected. o ID:200 - Incorrect output from DIFFERENCES/SENTINEL. The output from the DIFFERENCES/SENTINEL command could contain spurious characters at the end of a line. This has been corrected. o ID:201 - Confusing remarks from the DELETE HISTORY command. Remarks indicating the number of records deleted by a DELETE HISTORY command were not correctly maintained by further deletions. These remarks have been removed, and the remarks now match those produced by Version 4.0. o ID:202 - Spurious error messages from the callable interface routine CMS$DELETE_HISTORY have been removed. o ID:205 - The REPLACE command sometimes resulted in an access violation when the input file had different file attributes to the previous generation. o ID:211 - Library order was wrong following CREATE LIBRARY/AFTER with list. If a list of libraries was created with the CREATE LIBRARY/AFTER command, the resultant library list was in the wrong order. This has been corrected. o ID:212 - Spurious additional error messages removed. A spurious additional -CMS-E-OPENOUT message was produced for certain errors related to output files. This has been corrected. o ID:213 - When a user output routine was called from CMS$ANNOTATE and returned an error status, an access violation could result. o ID:214 - The default output filename for the SHOW command was incorrectly in lower case. o ID:221 - The severity level in %CMS-S-HISTDEL messages has been corrected. Problems Fixed 4-3 o ID:225 - DELETE ELEMENT could succeed when the reference copy could not be deleted. The DELETE ELEMENT command could, in some circumstances, successfully delete an element when there was insufficient privilege to delete the reference copy. This has been corrected. o ID:227 - CMS$SET_LIBRARY and CMS$SET_NOLIBRARY could corrupt memory. There was a low probability that the callable interface routines CMS$SET_LIBRARY and CMS$SET_NOLIBRARY could corrupt memory, in some circumstances. This has been corrected. o ID:229 - Wildcard matching occasionally failed. The wildcard algorithm very occasionally failed to match the appropriate classes, groups or elements. All commands which accept wildcards were affected. o ID:236 - DIFFERENCES/IGNORE with long lines failed. Using the IGNORE qualifier on a DIFFERENCES command where the file or element contains long lines of more than 516 characters caused an internal error. This has been corrected. o ID:241 - Merge operations could produce the wrong output when the common ancestor was a variant. Merge operations could fail to include the appropriate changes when the common ancestor of the two generations to be merged was a variant. For example, merging generations 4A6 and 4A3B2, the common ancestor is 4A3, which is a variant, so the result of the merge could be wrong. This has been corrected. o ID:242 - For the DIFFERENCES command with the /FORMAT=GENERATION_DIFFERENCES qualifier applied, the Generation Differences output could be wrong or missing. When comparing two generations of an element whose common ancestor is a variant, the Generation Differences section in the output could be wrong or missing. This has been corrected. 4-4 Problems Fixed 5 _________________________________________________________________ Known Problems The following known problems exist for CMS Version 4.2: 5.1 General o ID:11 - CMS-E-BADREF, reference copy for element. This problem occurs when an element is created from a file that is either indexed or fixed length with the History attribute set AND a reference copy directory defined. CMS attempts to log the history for the element, but since it is fixed, CMS cannot write to the file. At the time of creation, CMS issues a message that the History is not included in the element, but it fails to reset the attribute. This presents the reference copy as bad when it is not. To workaround this problem, either set the element attribute to NOHISTORY or NOREFERENCE. o ID:14 - CMS differences on VFC files displays incorrect line numbers. An attempt to perform a comparison of two VFC files using the DIFFERENCES command can generate incorrect line numbering in the differences output. As the files are different, a difference file is created, but the line numbers in the difference file are not correct. Instead of the correct line number, the line number is 36097/1. The problem occurs only with VFC files. o ID:15 - CMS incorrectly reports a conflict during a merge operation. See ID:25. o ID:25 - CMS occasionally performs merge operations incorrectly. Known Problems 5-1 There are a number of known problems related to merging. Problems seen include inconsistent reporting of conflicts and incorrect output both with and without conflicts being reported. From Version 4.2, all known examples of incorrect merging report conflicts. In most cases, the following message is also produced: %CMS-W-CANTRESMRG, Cannot resolve merge, marked as conflict The Guide to DIGITAL Code Management System for OpenVMS Systems contains advice on verifying merged changes. It is strongly recommended that the result of a merge operation is manually verified when conflicts are reported. o ID:26 - CMS reports merge conflicts inconsistently. See ID:25. o ID:34 - Problem with FETCH/GENERATION=class and ACLs. Errors may be reported while fetching from a class where the library contains elements that are protected by CMS ACLs. For example, if an element, BOGUS.DAT, has a CMS ACL that states that the user has no access to the element and no generations of the element are in a class C1, fetching using a wildcard specification that matches BOGUS.DAT and specifying the class C1 in the /GENERATION qualifier results in the following errors: $ CMS FETCH /GENERATION=C1 *.* %CMS-E-NOFETCH, error fetching element DISK:[DIR]BOGUS.DAT -CMS-E-NOACCESS, no FETCH access to element BOGUS.DAT o ID:40 - RMS-E-ISI errors performing wildcard CREATE ELEMENT with mixed files. Wildcarded CREATE ELEMENT commands can fail if non- DDIF files follow DDIF files. The following errors are produced: %RMS-E-ISI, invalid internal stream identifier (ISI) value -RMS-E-EXTNOTFOU, RMS Extension not found %CMS-F-BUG, there is something wrong with CMS ... -CMS-F-SYSFAIL, LIB$FREE_VM system service request failed -LIB-F-BADBLOSIZ, bad block size 5-2 Known Problems DDIF files later in the list are created without errors. The only known workaround is to avoid a wildcard CREATE of non-DDIF files after DDIF files. o ID:60 - Review state altered after REPLACE/IF_CHANGED is issued on unchanged elements. The review state of element generations is incorrectly altered after a REPLACE/IF_CHANGED of an unmodified element. o ID:70 - Merging mainline generation into variant produces different result from merging variant into mainline. See ID:25. o ID:71 - CMS cannot parse the /FORMAT string when it contains a plus sign (+). For example: $ CMS SHOW ELEMENT *.* /FORMAT="$ cms diff #e/gen=1 #e" - _$ /OUTPUT=differ.com ! Works $ CMS SHOW ELEMENT *.* /FORMAT="$ cms diff #e/gen=1+ #e" - _$ /OUTPUT=differ.com ! Fails %CMS-E-ERRPAREXP, error parsing element expression -CMS-E-ILLCHAR, illegal character in group name o ID:72 - /FORMAT splits long lines. CMS splits long output lines. For example: $ CMS SHOW ELEMENT *.* /OUTPUT=sys$scratch:x.tmp - _$ /FORMAT="$ IF F$SEARCH(""#e"") .NES. """" THEN - _$ CMS DIFFERENCE #e/GEN='p1 #e" If the library contains elements with long names, the output lines for these files can also be split by CMS. o ID:73 - CMS ignores commands starting with an at sign (@). CMS ignores any commands that begin with the at sign (@). For example: $ CMS CMS> @x.x CMS> No error messages are returned. Known Problems 5-3 o ID:79 - CMS may not be able to parse a /SINCE date-time string containing a plus sign (+). CMS may report an unrecognized keyword error in the /TRANSACTIONS qualifier of the SHOW HISTORY command if a plus sign (+) is used after the date-time string of the /SINCE or /BEFORE qualifier. For example: CMS> SHOW HISTORY - _CMS> /TRANSACTIONS=(CREATE)/BEFORE="15-AUG-1996 + 00:00:00" %CLI-W-IVKEYW, unrecognized keyword - check validity ... \(CREATE)\ Although the problem only occurs when the /TRANSACTIONS keywords are specified within parentheses, it is triggered by the plus sign (+) in the date-time string. The problem can be avoided by removing the plus sign (+) from the date-time string: CMS> SHOW HISTORY - _CMS> /TRANSACTIONS=(CREATE)/BEFORE="15-AUG-1996 00:00:00" o ID:81 - Quoted generation strings are processed incorrectly. When using /GENERATION=generation-expression, do not enclose the generation expression in quotes. o ID:85 - History and Notes problems on files with MRS attribute. CMS fails to recognize the maximum record size (MRS) attribute for Notes and History. As a result, CMS may add Notes or History to a record beyond its maximum size. On FETCH or RESERVE, CMS fails with the following error. CMS-F-BUG, there is something wrong with CMS ... CMS-F-NOQIO, $QIO failed RMS-F-RSZ, invalid record size o ID:94 - When a group and an element have almost the same name, for example group FOO and element FOO.BAR, the command CMS SHOW HISTORY F*.BAR does not resolve the wildcard correctly. The command shows the history for both the group and element. 5-4 Known Problems o ID:95 - If the remark field of the CMS MODIFY GENERATION command contains the exclamation point (!), CMS generates the following message: %CMS-F-BUG, there is something wrong with CMS ... -CMS-F-SYSFAIL, $FAOL system service request failed -SYSTEM-F-BADPARAM, bad parameter value o ID:96 - If CMS is unable to delete the input file after a CREATE ELEMENT or REPLACE operation, no message is issued to inform the user of the problem. The element is created or replaced without the file being deleted. o ID:97 - When using the SET ACL/DELETE command to delete a list of ACEs from an ACL, the operation terminates if it encounters an identifier that does not exist on the system. o ID:98 - Certain qualifiers that should only accept parameters in their non-negated form are also accepting them in their negated form, and the qualifier is then treated as if it were not negated. For example, the qualifier /NOHISTORY="#H" should be disallowed, but is being treated as /HISTORY="#H". o ID:104 - Using the /BEFORE qualifier on a library that was previously set returns both an error and success status without changing the position of the library in the search list. Known Problems 5-5 $ CMS SET LIBRARY [A], [B], [C] %CMS-I-LIBIS, library is DISK$USER:[A] %CMS-I-LIBINSLIS, library DISK$USER:[B] inserted at end of library list %CMS-I-LIBINSLIS, library DISK$USER:[C] inserted at end of library list %CMS-S-LIBSET, library is set $CMS SHOW LIBRARY Your CMS library list consists of: DISK$USER:[A] DISK$USER:[B] DISK$USER:[C] $ CMS SET LIBRARY [C]/BEFORE %CMS-E-LIBALRINLIS, library DISK$USER:[C] is already in the library list %CMS-S-LIBSET, library set Your CMS library list consists of: DISK$USER:[A] DISK$USER:[B] DISK$USER:[C] o ID:113 - CMS Callable Interface mishandles bad boolean values. When a parameter is passed to the Callable Interface whose value should be a boolean, if the value is not 0 or 1, CMS may fail. o ID:141 - CMS$SET_LIBRARY fails if the directory parameter does not contain valid information. o ID:143 - CMS$SHOW_ELEMENT with a bad parameter in the element name signals a fatal error before calling the output routine. o ID:144 - A call to CMS$SET_LIBRARY without a CMS license in place signals a fatal error before calling the output routine. o ID:145 - Calling CMS$INSERT_ELEMENT with a group_ expression or remark parameter that uses the wrong calling mechanism causes CMS to fail. o ID:149 - RESERVE/NOOUTPUT of a generation does not require RWD access to the element data file. o ID:153 - Spurious characters included in WORD or LONGWORD formatted differences. 5-6 Known Problems The output of the DIFFERENCES command formatted as WORD or LONGWORD includes spurious characters at the end of records. Characters are added to round up the record length to a multiple of the data partition size. These characters are repeated from earlier in the record. o ID:154 - Incorrect new_element value in callback from CMS$SHOW_GENERATION. CMS$SHOW_GENERATION, when applied to a library search list, sets the new_element argument of the callback to the value 1 for the first call for a new library in the list. The DIGITAL Code Management System Callable Routines Reference Manual states that the value 1 should only be used for the first call of the output routine. o ID:165 - Long CMS messages are truncated. CMS uses the OpenVMS SYS$PUTMSG routine while processing messages to be displayed. SYS$PUTMSG is hard coded to limit message size to 256 bytes. With the addition of long variants, CMS messages can be much longer than that and the SYS$PUTMSG limitation can cause both Command Line Interface and DECwindows messages to be truncated. o ID:166 - Some legal forms of extended filenames are not allowed by create element and insert element. File names combining spaces and commas in unusual combinations are sometimes not allowed in an element name: CMS> create element a^_^,.^, "" %CMS-E-NOCREATE, error creating element a^_^,.^, -CMS-E-ERRPAREXP, error parsing element expression -CMS-E-NEEDPERIOD, element name must include or end with a period CMS> create element ^_.^, "" %CMS-E-NOCREATE, error creating element DATA:[TST]^_.^ -RMS-E-SYN, file specification syntax error CMS> create element ^_^,.^, "" %CMS-E-NOCREATE, error creating element ^_^,.^, -CMS-E-ERRPAREXP, error parsing element expression -CMS-E-NEEDPERIOD, element name must include or end with a period Known Problems 5-7 A work-around is to use a wildcard specification to identify the file: CMS> create element /keep *.^, "" %CMS-I-CREATED, element DATA:[TST]^_^,.^, created %CMS-I-CREATED, element DATA:[TST]^_.^, created %CMS-I-CREATED, element DATA:[TST]a^_^,.^, created %CMS-I-CREATES, 3 creations completed o ID:171 - The object field in the history record is truncated to about 237 characters. o ID:172 - When using extended file name specifications, an element with a name longer than 224 characters may be deleted completely from a CMS library if an attempt is made to MODIFY the element. %CMS-S-MODIFIED, element DATA:[LIB1]1234567890A14A1234567890A28A1234567890A 42A1234567890A56A1234567890A70A1234567890A84A12345 67890A98A1234567890A112A. 1234567890A127A1234567890A141A1234567890A 155A1234567890A169A 1234567890A183A12345a200a123456789 -RMS-E-CRE, ACP file create failed -NONAME-W-NOMSG, Message number 00000000 -RMS-E-CRE, ACP file create failed -SYSTEM-W-BADFILENAME, bad file name syntax This problem can also cause a REPLACE operation to fail with element name longer than 224 characters. The offending element name can be much shorter if it contains escaped sequences. In this case the escapes also count in the length of the name. Also, if you do CREATE element using an element name that is more than 255 characters after the escapes are added the error message says it is an illegal element name. o ID:176 - REPLACE/IF_CHANGED can clear concurrent replacement. 5-8 Known Problems Using REPLACE/IF_CHANGED when there are no changes on an element with concurrent replacements can cause the element to no longer be marked as having concurrent replacements. Commands which normally warn about concurrent replacements and request confirmation will subsequently fail to do so. o ID:184 - Corrupt library can cause misleading error messages. A missing element data file can cause CMS to display the following messages: %CMS-F-BADBUG, there is an unrecoverable bug in CMS or something it calls -CMS-F-RBKNULBLK, Rollback block is null o ID:186 - SHOW GENERATION/FULL does not display MSB Var formatted byte bit. If a file has the MSB Var formatted byte bit set in the record attributes then SHOW GENERATION/FULL does not show this value. o ID:204 - SET ACL/REPLACE does not report errors when ACE does not exist. SET ACL/REPLACE does not report errors when the ACE to be replaced does not exist. The command appears to be successful, but the replacement ACE is not set. o ID:206 - SET ACL allows READ and WRITE access types. The SET ACL command accepts READ and WRITE as valid access types, although they have no meaning in CMS. For a READ access type, CMS grants EXECUTE access type. For a WRITE access type, nothing is granted. o ID:207 - Invalid OPTIONS field in Access Control Entry accepted. The OPTIONS field in an ACE must contain the keyword DEFAULT or NONE, and is only valid for object lists, i.e. CLASS_LIST, ELEMENT_LIST, and GROUP_LIST. CMS incorrectly allows: o A list of options o Various invalid keywords that are valid in OpenVMS ACLs Known Problems 5-9 o Defaults to be set on objects that are not object lists o ID:208 - CMS treats creation of action ACEs as an event. When an action Access Control Entry is created, CMS treats the creation as an event and performs the action. For example, the following command causes one event immediately, and a further event whenever a class is created (as this causes a new ACE to be created for the new class), in addition to the expected events when classes are deleted: $ CMS SET ACL/OBJECT=LIBRARY CLASS_LIST /ACL=(NOTIFY=USER, - $_ IDENTIFIER=*, OPTIONS=DEFAULT, ACCESS=DELETE) o ID:216 - Indexed files dependency on disk cluster size. When an indexed file is created as an output file from a CMS command, for example FETCH, or as a temporary working file, the exact file structure depends on the cluster size of the disk on which it is created. If the cluster size is different from that which applied when the file was originally created, the new and original files may not be identical. When this occurs, if the fetched file is compared to the original file, the OpenVMS DIFFERENCES command reports that the files are identical. However, the CMS DIFFERENCES command reports that the files are different. Another way in which this problem can be seen is if the file is reserved and replaced unchanged with the /IF_ CHANGED qualifier. In this case, a new generation is created when CMS sees the files as different. o ID:218 - Renaming elements with extended filenames. The MODIFY ELEMENT/NAME command does not work properly with extended filenames. In a library with the Noextended_filenames attribute, CMS incorrectly allows elements to be modified to have extended filenames, for example: 5-10 Known Problems $ CMS MODIFY ELEMENT A.B /NAME=A.B.C.D %CMS-S-MODIFIED, element DISK:[USER.NOEXT]A.B modified $ CMS SHOW ELEMENT Elements in CMS Library DISK:[USER.NOEXT] A^.B^.C.D "" Also, in a library with the Extended_filenames attribute, CMS does not recognize when an element is modified to have a non-extended filename, for example: $ CMS MODIFY ELEMENT W^.X^.Y.Z /NAME=Y.Z %CMS-S-MODIFIED, element DISK:[USER.EXT]W^.X^.Y.Z modified $ CMS MODIFY LIBRARY/NOEXTENDED %CMS-E-NOMODIFY, error modifying library DISK:[USER.EXT] -CMS-E-EXTFOUND, element Y.Z is an extended filename o ID:219 - CREATE ELEMENT does not check for extended filenames correctly. The CREATE ELEMENT/INPUT command does not check correctly for elements with extended filenames. Instead, the file specified by the /INPUT qualifier is checked. For example, given a library with the Noextended_ filenames attribute, the following is wrongly accepted: $ CMS CREATE ELEMENT A^.B^.C.D /INPUT=A.B %CMS-S-CREATED, element DISK:[USER.NOEXT]A^.B^.C.D created Also, the following is wrongly rejected: $ CMS CREATE ELEMENT A.B /INPUT=A^.B^.C.D %CMS-E-NOCREATE, error creating element DISK:[USER.NOEXT]A.B -CMS-E-NOEXTENDED, extended filenames are not available o ID:222 - Extra error message produced for errors related to file access. If a file access error occurs an additional spurious error message may be produced. For example, if there is no read access to the element data file, an extra -RMS-E_PRV message is produced: $ CMS FETCH TEST.DAT %CMS-E-NOFETCH, error fetching element DISK:[CMS.CMSLIB]TEST.DAT -RMS-E-PRV, insufficient privilege or file protection violation -RMS-E-PRV, insufficient privilege or file protection violation Known Problems 5-11 o ID:224 - SET ACL/BEFORE or /AFTER can give wrong error message. If the ACL specified in a /BEFORE or /AFTER qualifier does not exist, the error message may not match the specified ACL, for example: $ CMS SET ACL/AFTER=(ID=CMS_ADMIN) /OBJ=CLASS C - _$ /ACL=(ID=CMS_DEVL, ACCESS=CREATE+CONTROL) %CMS-E-NOMODACL, error modifying access control list for class DK:[LIB]C -CMS-W-NOACE, specified access control entry does not exist -CMS-I-TEXT, (IDENTIFIER=CMS_ADMIN,ACCESS=NONE) The "ACCESS=NONE" part of the error is wrong. o ID:230 - CMS DIFFERENCES/SENTINEL shows wrong line numbers. When you use the /SENTINEL qualifier to the CMS DIFFERENCES command, the line numbers reported in the output may not match the line numbers of the files being compared. They are wrong by the number of lines that are skipped for the sections of text delimited by the /SENTINEL qualifier. o ID:232 - Escaped percent character not handled correctly in element expressions. With Extended File Specifications support, an escaped '%' character in an element expression is incorrectly treated as a single character wildcard, rather than a literal character. For example: $ CMS SHOW ELEMENT *^%*.* The above command should display only those elements whose name contains a '%' character, but it incorrectly displays all elements containing a '^' character. o ID:233 - Element names containing Unicode or arbitrary characters are not correctly matched by single-character wildcards. With Extended File Specifications support, an element name that contains a 16-bit Unicode (UCS-2) character or an arbitrary character entered as a pair of hexadecimal digits, is not matched by the correct wildcard specifications. A Unicode character is matched by five single-character wildcards and an arbitrary character is 5-12 Known Problems matched by two single-character wildcards, rather than one. For example: $ CMS CREATE ELEMENT ^U1234.DAT $ CMS SHOW ELEMENT %.* %CMS-W-NOELE, no elements found $ CMS SHOW ELEMENT %%%%%.* Elements in CMS Library DISK:[DIRECTORY] ^U1234.dat "" o ID:234 - Illegal characters not handled correctly with Extended File Specifications support. Illegal characters in element expressions are not handled correctly in the version of CMS that supports Extended File Specifications. In the version with support for Extended File Specifications, illegal characters are not specifically checked for, and the processing relies on the failure to access the file to report an error. This results in different error messages to the version without support for Extended File Specifications. In addition, in some cases the incorrect command may work. For example: $ CMS CREATE ELEMENT A:B.C This should be rejected, as ":" is never valid in a filename, and hence not in an element name. This happens for the version without support for Extended File Specifications. In the version with support for Extended File Specifications, the command usually fails when the file is not found. If, however, "A" is a logical name that references a directory containing the file "B.C", the command wrongly succeeds, creating the element B.C. 5.2 DECwindows Problems The following known problems exist for the DECwindows interface in CMS Version 4.2: o ID:19 - The DECwindows interface ignores accelerator keys. Known Problems 5-13 The DECwindows accelerator keys Ctrl/O (open), Ctrl/C (close view) and Ctrl/E (exit) have no affect in the DECwindows interface. o ID:35 - DECwindows CREATE ELEMENT claims work in progress when it is not. Under certain circumstances, the CMS DECwindows CREATE ELEMENT function displays an erroneous work-in-progress box. It can be ignored. o ID:76 - DECwindows and file specifications greater than 255 characters. The DECwindows interface may produce strange results if the user inputs a file specification that is greater than 255 characters. DECwindows does not check the size and blindly passes this on to the low-level routines, which blindly moves the size into a byte field before processing. Thus, a 256-character file specification, is exactly like providing none. o ID:92 - Can not deselect REPAIR button in VERIFY dialog. Once the REPAIR button has been selected in the VERIFY dialog box from the MAINTENANCE menu, it can not be deselected. o ID:100 - When VIEW RESERVATIONS is selected, and the user double-clicks on a particular reservation then selects CONCURRENT REPLACEMENTS, VIEW, EXPAND, ALL, an incorrect error message is reported. o ID:105 - RESTRICT ELEMENT dialog box is laid out incorrectly. RESTRICT ELEMENT displays a button on top of a text field. o ID:107 - In the case of virtual memory being exhausted when updating the contents of a CMS View, if the view is iconified, an access violation occurs when CMS attempts to bring up a caution box. If the view is not iconified, after acknowledging the box, the cursor remains in a "watch" shape and attempting to bring up a dialog box can result in an access violation. 5-14 Known Problems The problem can be avoided through the use of the Customize Restrict functionality. For example, by default RESTRICT HISTORY displays only the previous 30 days' history. o ID:108 - If message logging has been customized to None, the Cancel Operation button may not be recognized until after the operation has been completed. o ID:109 - Some informational messages resulting from opening or closing libraries appears on the terminal where the CMS DECwindows interface was invoked rather than in the output window. This also occurs when manipulating a reserved element or an element under review. o ID:164 - The DECwindows interface does not display all of the messages that the Command Line Interface does. In general, only the first message in a set is displayed. 5.3 Documentation Problems o ID:111 - Using CMS$INSERT_GENERATION or CMS$INSERT_ GROUP with the if_absent parameter set to true and with a generation or group name that already exists in the class or group returns an error. The DIGITAL Code Management System Callable Routines Reference Manual states that the return is CMS$NORMAL. o ID:112 - The /SUPERSEDE qualifier is negatable. Its description is missing from HELP. o ID:116 - In the DIGITAL Code Management System Reference Manual, the description of the DIFFERENCES command should note that the /PARALLEL qualifier can only be used with record partitioning. o ID:117 - The values for the access parameter of the CMS$SHOW_RESERVATIONS callable routine are incorrect in the DIGITAL Code Management System Callable Routines Reference Manual. The correct values are: 0 - Concurrent reservations are allowed. 1 - Concurrent reservations are not allowed. Known Problems 5-15 3 - Existing reservation does not allow other reservations o ID:124 - The remark parameter for the CMS$REMARK routine cannot be greater than 1000 characters. o ID:130 - In the description of the CMS$REPLACE routine, the DIGITAL Code Management System Callable Routines Reference Manual states that the confirm_routine is used in CMS$SET_LIBRARY. The confirm_routine is also available in CMS$CREATE_LIBRARY. In addition, the confirm_routine can be used for CMS$UNRESERVE, CMS$FETCH and the delete routines. o ID:134 - HELP on DIFFERENCES/PARALLEL states that lines are truncated using a plus sign (+) when, in fact a asterisk (*) is used. o ID:136 - Section 1.4.2 of the DIGITAL Code Management System Callable Routines Reference Manual incorrectly states that the only user modifiable part of the LDB is the fifth longword. In fact, the sixth longword is also user modifiable. The sixth longword contain the occlusion mask. o ID:156 - The DIGITAL Code Management System Callable Routines Reference Manual incorrectly states that CMS$CREATE_CLASS and CMS$CREATE_GROUP operations are restricted to the first library in a search list. o ID:168 - The DIGITAL Code Management System Callable Routines Reference Manual needs to better document the CMS$SHOW_VERSION routine including more examples and the following table: When the absolute argument is passed to callable interface routine CMS$SHOW_VERSION, the following absolute version numbers are returned for the CMS releases: V3.7 100177 V3.8 100184 V3.9 100189 V4.0 100191 V4.1 100194 V4.2 100205 5-16 Known Problems o ID:175 - Section 3.1.1 of the Guide to DIGITAL Code Management System for OpenVMS Systems incorrectly states that OpenVMS systems limit directory trees to a depth of eight. This restriction is imposed by CMS, not OpenVMS. o ID:178 - Description of the /IDENTIFICATION_NUMBER qualifier is incomplete. The following is the correct description of the /IDENTIFICATION_NUMBER qualifier: /IDENTIFICATION_NUMBER=n Specifies which reservation is to be replaced or unreserved. This qualifier is required when you have multiple reservations of the same generation of an element. This qualifier is also required when multiple users have reserved the same generation of an element and you have BYPASS privilege or have been granted BYPASS access to the element by an access control list entry. You can use /IDENTIFICATION_ NUMBER instead of /GENERATION when you have multiple reservations. Use the SHOW RESERVATIONS command to determine the identification number of each reservation. The identification number appears in parentheses at the beginning of each line or before the user name. o ID:179 - NOREPSEQDATA and SEQMISMAT error messages are not documented. The following describes error messages omitted from the documentation. NOREPSEQDATA, cannot repair sequence data for element Error: CMS cannot repair sequence data for the element. During a VERIFY/REPAIR operation, CMS has discovered an inconsistency in the internal attributes of a sequenced element. (A sequenced element is an element containing at least one generation created from a file with VFC record format with a 0 or 2 byte header.) CMS cannot repair this type of corruption. User Action: Substitute a recent backup copy of the element file to insure the integrity of the data. SEQMISMAT, one or more generations are sequenced, element is not Known Problems 5-17 Error: One or more generations are sequenced, element is not. During a VERIFY operation, CMS has discovered an inconsistency in the internal attributes of a sequenced element. (A sequenced element is an element containing at least one generation created from a file with VFC record format with a 0 or 2 byte header.) This message indicates that the element file may have become corrupted. A corrupted element can be identified by extra data appearing in fetched copies, usually at the beginning of each record. CMS cannot repair this type of corruption. User Action: Substitute a recent backup copy of the element file to insure the integrity of the data. o ID:217 - Description of ANNOTATE/FULL needs clarification. When the same part of an element is updated multiple times, lines which were added and later removed can cause a "lines deleted" message to appear in the output. o ID:220 - BASIC code examples do not run on ALPHA. The DIGITAL Code Management System Callable Routines Reference Manual contains several examples in BASIC. These examples only run on VAX, not on Alpha. The message routine arguments are wrong. The correct BASIC declaration and arguments for a message routine are: long function message_handler (long sigvec() by ref, & long mechvec() by ref, & cntrlblk ldb) record cntrlblk long length long return_status string lib_dir_spec long user_paramter long occlusion_mask long reserved(44) end record cntrlblk If the arrays are not declared as BY REF, the program fails with an "arguments don't match" exception caused by the BASIC RTL calling jackets. o ID:223 - SET ACL/LIKE with library search lists. 5-18 Known Problems The documentation does not make it clear how the SET ACL/LIKE command behaves with a library search list. The command requires the object in the /LIKE qualifier to be in the same library as the object on which ACLs are to be set. Known Problems 5-19 6 _________________________________________________________________ Restrictions The following restrictions apply to CMS Version 4.2: o Rarely, when using CMS, the following error is encountered: %CMS-F-BUG, there is something wrong with CMS ... -CMS-F-NOMAP, Cannot map the appropriate control structure -CMS-F-TEXT, dynamic buffer space exhausted. Reenter CMS. This error is caused by a design limitation in CMS. Under extreme conditions, CMS does not have enough buffer space allocated to complete an operation, and it cannot deallocate the exhausted buffer and reallocate it again. This error should only occur when using the COPY ELEMENT command, and only for attempts to copy elements with hundreds of generations (typically more than 500-600). This problem has nothing to do with the number of elements being copied, it only depends on the number of generations within any particular element. If the problem is encountered, the primary workaround is to reduce the number of generations in the element that caused the error. Typically, elements with this many generations have been automatically created or altered, and in many cases, the generation history isn't uniformly interesting. Judicious use of DELETE GENERATION could get the number of generations down to a manageable number. o When using CMS library reference copies, certain file system related messages, such as RMS-F-DEV or RMS-E- PRV, may refer to the reference copy directory. The CMS messages do not make this explicit in some cases. When such problems are encountered, check the protections on reference copy directory. Restrictions 6-1 o Using VERIFY/RECOVER on a library that does not need recovery, fails with an error diagnostic, RECNOTNEC, stating that the library does not need recovery: $ CMS VERIFY/RECOVER %CMS-E-NORECOVER, error recovering library -CMS-E-RECNOTNEC, recovery is not necessary; the library is in a safe state o Use of CMS/LSE integration features. To use the CMS/LSE integration features, introduced in CMS Version 3.8, LSE Version 4.3 is required. If an earlier version of LSE is used, the CMS/LSE integration features are not available. No other features are effected by using an earlier version of LSE (prior to Version 4.3). o The following restrictions apply to the CMS DIFFERENCES command when used with a CMS library search list. If both file_1 and file_2 are element generation specifications, then both of the elements must reside in the same library of the library search list. CMS DIFFERENCES emits CMS-E-NOFETCH (or other messages returned by CMS$FETCH_OPEN) if it cannot locate a specified element generation. In a library search list, this may occur if one or both of the specified elements do not exist in the first library. These messages are issued for each library of the library search list in which the element is not found. The exact sequence of such messages depends on the values of the /OCCLUDE qualifier. In such cases, a CMS-E-NOFETCH message may be followed by a CMS-S-IDENTICAL or CMS-W-DIFFERENT message. These messages indicate the actual status of the operation, whereas the intervening CMS-E-NOFETCH messages are a side-effect of the library search list traversal. The same considerations apply to the callable routine CMS$DIFFERENCES. CMS$DIFFERENCES uses the callable fetch routines CMS$FETCH_OPEN, CMS$FETCH_GET, and CMS$FETCH_ CLOSE. Conditions may be signaled from these routines during the operation of CMS$DIFFERENCES. 6-2 Restrictions o The DECwindows Options Save_Options feature overwrites the current CMS resource data file in the DECW$USER_ DEFAULTS directory. If a version of the CMS resource data has been placed in this directory for customizing the interface for eXcursion small screen support, it is overwritten if this option is used. The customized values are not copied into the new version of the resource data file and no longer has any effect on the CMS DECwindows interface. o There have been several reports that CMS is corrupting source files via the use of the /NOTES qualifier. This occurs because CMS is strictly syntax driven when /NOTES is involved. During a CMS Replace, it looks at any information contained at the end of each line and remove this information if it looks like a valid notes field. (A notes field is parsed as a "left part" followed by a generation number followed by a "right part".) A notes field NOT containing any "left part" or "right part" contextual information and containing only a generation number field (most examples supplied with the reports specified that they used the /NOTES="#G" form) is especially vulnerable since the format of the generation number is, for many of its valid forms, exactly the same format as a numeric constant which commonly may show up at the end of a line in most programming languages. CMS does not (and probably cannot, in general) keep track of which specific lines it placed notes on. Thus when CMS replaces a file back into an element, it scans all input lines for notes information to be removed. The problem of remembering which lines had notes placed on them seems simple until you remember that the files have probably been edited so that the original context is relatively hard to recover except for the simplest cases. Even trying to depend on the /POSITION qualifier value to determine the "validity" of a particular string as a note is not trustworthy. To avoid this problem, take full advantage of the complexity allowed in the notes string syntax and define the notes string to have a form that would be very unlikely to be encountered using your normal coding styles. For example: Restrictions 6-3 /NOTES="/*--#G--*/" This syntax would probably be acceptable to a C programmer whose coding style did not typically include the "-" prefix and "-" suffix in comments. A side note: One of the COBOL examples received demonstrates this problem in a more subtle fashion. Specifically, when an element is reserved using /NONOTES, a subsequent REPLACE does not remember that it was reserved using /NONOTES and thus tries to remove the notes it finds (thus corrupting the file for the example received). The unfortunate part of this problem is that if we modify REPLACE to honor the state of the notes qualifier as reserved and NOT try to remove the notes from the file for this case, we now have a time bomb. The next time a RESERVE and REPLACE of the element is done WITH notes, the information will then likely be stripped off. In summary, when using /NOTES be careful when picking the notes prototype string to avoid colliding with otherwise legal syntax in the language being used. o CMS does not perform correctly when run from a detached process where no CLI present. Errors like LIB-F-NOCLI occur. o Callable CMS allows a command string to contain a maximum of 256 characters, where interactive CMS allows a maximum of 1024 characters. The workaround is to provide an input routine and use the continuation line when the library is set up. o The history line sent to the CMS event handler and seen in notification messages contain the letter 'W' after the transaction time field if the transaction resulted from a wildcard operation. This information should be suppressed, as it is by the SHOW HISTORY command. o CMS Version 2.n attempts to operate on a CMS Version 3.n library, despite having incompatible formats. This may result in a corrupted CMS Version 3.n library. Note that this problem does not exist for libraries created by or converted to CMS Version 3.5-5 or later. o A maximum of 65,536 characters can be copied from a CMS view to the DECwindows Clipboard. 6-4 Restrictions o When using CMS with extended filenames from the DCL command line, the DCL parse style must be set to extended filenames. Use the DCL command SET PROCESS /PARSE_STYLE=EXTENDED. For example: $ SET PROCESS/PARSE_STYLE=EXTENDED $ CMS SET LIBRARY DISK1:[PROGRAMS.CMSLIB_EXT] $ CMS DIFFERENCES Parser^[Old_Version^].CPP Parser^[New_Version^].CPP o If an attempt is made to use a version of CMS prior to Version 4.1 for access to a library that has the long variant name attribute set, an error message is displayed. This occurs for any command issued against the library by an older version of CMS until a CMS Version 4.1 or later user successfully restores the /NOLONG_VARIANT_NAMES attribute on the library. This is the exact error displayed for this condition: %CMS-F-BADLIB, there is something wrong with your library * CMS-F-BADTYPSTR, header block type is 145; it should be 17 o While using CMS Version 4.2 to VERIFY a library that was created by a version of CMS prior to Version 4.1, errors such as the following may be displayed because the new commands that were added in Version 4.1 have not yet been added to the library control file: %CMS-E-NOTFOUND, command DISK1:[CMS.LIB1]COPY_CLASS not found -CMS-E-USEREPAIR, use VERIFY/REPAIR %CMS-E-NOTFOUND, command DISK1:[CMS.LIB1]COPY_GROUP not found -CMS-E-USEREPAIR, use VERIFY/REPAIR %CMS-E-NOTFOUND, command DISK1:[CMS.LIB1]MODIFY_RESERVATION not found -CMS-E-USEREPAIR, use VERIFY/REPAIR %CMS-E-ERRVERCON, control file verified with errors Use VERIFY/REPAIR, if it is unable to correct the problem, use VERIFY/REPAIR a second time to complete the repair of the library and add the new commands to the library control file. o CMS still restricts directory trees to maximum depth of eight, even though OpenVMS no longer imposes that restriction. Restrictions 6-5