Document revision date: 19 July 1999
[Compaq] [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]
[OpenVMS documentation]

OpenVMS Version 7.2 Release Notes


Previous Contents Index


Chapter 5
Programming Release Notes

This chapter provides release notes about both application and system programming on OpenVMS systems.

For information about new programming features included in OpenVMS Version 7.2, refer to the OpenVMS Version 7.2 New Features Manual.

5.1 Backup API

This section contains release notes pertaining to the Backup application programming interface (API). See Section 4.2 for additional notes about the Backup utility.

5.1.1 Changes and Enhancements

The following section describes a new flag to the BCK_OPT_K_IGNORE_TYPES option structure.

5.1.1.1 New Flag BCK_OPTYP_IGNORE_K_STRUCTURE

V7.2

The BCK_OPT_K_IGNORE_TYPES option structure has a new flag: BCK_OPTYP_IGNORE_K_STRUCTURE.

Setting this flag allows ODS-5 to ODS-2 structure-level file conversion. When this flag is not set, file conversion is not allowed. Refer to the OpenVMS Utility Routines Manual for more information about using the BACKUP option structure types.

5.1.2 Problems and Restrictions

This section describes known problems and restrictions for the Backup API.

5.1.2.1 Unexpected Informational Message

V7.2

The Backup API may return an incorrect exit status, BACKUP-I-INCONQUALS, and display an informational message after the backup completes. The backup will, however, proceed as normal.

The following BCK_OPT_K_BEFORE_TYPE and BCK_OPT_K_SINCE_TYPE flags have been removed. If one or more of these flags is used, the informational message may be displayed.

5.1.2.2 Journaling Callback Events Restriction

V7.1

If an application registers a callback routine for any of the journaling events, it must register a callback routine for all the journaling callback events. The following is a list of the journaling callback events:

This is a permanent restriction.

See the Backup API chapter in the OpenVMS Utility Routines Manual for more information on registering callback routines.

5.1.2.3 Repetitive Calls to BACKUP$START Can Cause an Error

V7.1

Repetitive calls to BACKUP$START can cause the following error:


%BACKUP-F-INSBUFSPACE, insufficient buffer space 

The number of repetitive calls completed before receiving this error varies, depending on the previous backup operations performed.

The workaround for an application that receives this error is to exit the operation and restart.

This problem will be corrected in a future release.

5.2 Batch and Print Queues

This section contains release notes pertaining to batch and print queues.

5.2.1 Problems and Restrictions

This section describes problems and restrictions pertaining to batch and print queues.

5.2.1.1 Terminating Executing Batch Jobs

V6.2

Under the following conditions, the DELETE/ENTRY command might fail to stop an executing batch job:

The DELETE/ENTRY command causes the job to terminate in phases. A delete_process AST routine is given in user mode, supervisor mode, and then executive mode. Because there is a small delay between each mode, it is possible that, in a batch job, a user-mode image might terminate, and the command procedure might continue to execute until the supervisor-mode delete_process AST routine is executed.

The return status of the SYNCHRONIZE command is assumed to contain the termination status of the target batch job. In addition, command procedures would normally execute a command such as $ON ERROR THEN CONTINUE or $SET NOON before issuing the SYNCHRONIZE command. If a DELETE/ENTRY command is issued to the job executing the SYNCHRONIZE command, the JBC$_JOBABORT is interpreted as being the termination status of the target batch job rather than a return status of the SYNCHRONIZE command. The command procedure then continues to execute for a short period with this incorrect assumption and performs an operation such as requeuing the target batch job or incorrectly reporting a failure of the target batch job.

This problem has been fixed for the SYNCHRONIZE command by detecting this situation and waiting in an exit handler for longer than the delay between the user-mode and supervisor-mode termination delay.

Any other images that would report the job completion status obtained by the SJC$_SYNCHRONIZE_JOB function code of the $SNDJBC system service as the return status of the program should implement logic similar to the following:

  1. Declare an exit handler.
  2. In the exit handler, implement the following logic:


    IF (exit status is JBC$_JOBABORT) 
    THEN 
        Wait 10 seconds 
    ENDIF 
    

5.3 COM for OpenVMS (Alpha Only)

For release notes about COM for OpenVMS, see the OpenVMS Connectivity Developer's Guide, which is installed as part of the COM for OpenVMS installation process. That document is available in PostScript, HTML, and PDF formats.

The OpenVMS Connectivity Developer's Guide is also available from the OpenVMS website at the following location:

http://www.openvms.digital.com/openvms/products/dcom/

COM for OpenVMS field test customers should also read the note in Section 3.1.1.1.

5.4 Debugging Modes

This section contains a release note pertaining to special debugging modes.

5.4.1 Problems and Restrictions

The following note explains how you can avoid getting a CPUSPINWAIT bugcheck.

5.4.1.1 Avoiding CPUSPINWAIT Bugchecks

V7.1

The OpenVMS operating system has a number of special modes of operation designed to aid in debugging complex hardware and software problems. In general terms, these special modes enable an extra level of tracing, data recording, and consistency checking that is useful in identifying a failing hardware or software component. These modes of operation are controlled by several system parameters: MULTIPROCESSING, POOLCHECK, BUGCHECKFATAL, and SYSTEM_CHECK.

If you are using one of these special modes (for example, to debug a device driver or other complex application), under certain conditions, generally related to high I/O loads, it is possible to incur a CPUSPINWAIT bugcheck. To prevent a CPUSPINWAIT bugcheck, use the system default settings for these system parameters, or reduce the loading of the system.

If you have reason to change the default settings, you can reduce the likelihood of encountering a problem by setting the SMP_LNGSPINWAIT system parameter to a value of 9000000.

5.5 DEC Ada Run-Time Library

This section contains release notes pertaining to the DEC Ada Run-Time Library.

5.5.1 Changes and Enhancements

The following note describes some resources that are available to advanced Ada programmers.

5.5.1.1 OpenVMS Text Libraries Containing Ada Declarations

V7.2

The following files are optional OpenVMS text libraries that contain Ada declarations:

These files can be used by advanced Ada programmers who write programs that must interact explicitly with the OpenVMS operating system. These files provide the basis for such programs, in contrast to the seamless precompiled libraries that come with the DEC Ada compiler.

The STARLET library contains declarations for recent components that may not yet have been incorporated into the kit for the latest DEC Ada compiler. As new versions of DEC Ada add declarations for these components, successive operating system releases remove them from this text library.

Declarations in the LIB library are for special purposes and are subject to becoming incompatible with future operating system releases, as are corresponding files for other languages.

5.5.2 Problems and Restrictions

This section describes a potential problem.

5.5.2.1 Unexpected Storage Errors (Alpha Only)

V7.0

In OpenVMS Alpha Version 7.0 and later, binary compatibility fails for some DEC Ada programs that make incorrect assumptions about the amount of task space used by DEC Ada tasks. If a task gets a storage error that it did not previously get, you may need to add a length clause specifying the storage size for the task. If you already use a length clause, you might need to increase the amount of storage specified. This is necessary only in cases where the specified size (or default size) is not large enough for the task's execution.

5.5.3 Corrections

The following section notes the correction of a problem that required a workaround in past releases.

5.5.3.1 AST Procedures No Longer Get Access Violations

V7.2

DEC Ada written AST procedures used to get access violations if the AST that invoked them occurred when the null thread or a non-DEC Ada thread was running.

The workaround (rewrite the program to use a task entry point that has pragma AST_ENTRY on it) is no longer necessary.

5.6 DEC C Run-Time Library

The following sections contain release notes pertaining to the DEC C Run-Time Library (RTL).

5.6.1 Changes and Enhancements

This section describes changes and enhancements that are included in Version 6.0 or later of the DEC C RTL software. For more details, see the revision of the DEC C Run-Time Library Reference Manual for OpenVMS Systems that ships with DEC C Version 6.0 or later.

5.6.1.1 Internationalization Support

V7.2

The DEC C RTL has added capabilities to allow application developers to create international software. The DEC C RTL obtains information about a language and a culture by reading this information from locale files.

If you are using these DEC C RTL capabilities, you must install a separate kit to provide these files to your system. The save set, VMSI18N072, is provided on the same media as the OpenVMS operating system.

To install this save set, follow the standard OpenVMS installation procedures using this save set name as the name of the kit. There are several categories of locales that you can select to install. You can select as many locales as you need by answering the following prompts:


   Do you want European and US support? 
   Do you want Chinese support? 
   Do you want Japanese support? 
   Do you want Korean support? 
   Do you want Thai support? 
   Do you want the Unicode converters? 

This kit also has an Installation Verification Procedure that Compaq recommends you run to verify the correct installation of the kit.

In OpenVMS Version 7.2, the DEC C RTL has added a universal Unicode locale based on UTF-8 as a multibyte-character encoding and UCS-4 as wide-character encoding. The name of the locale is UTF8-20. The locale is based on Version 2.0 of the Unicode standard. Unlike other locales, the UTF8-20 locale is distributed with the operating system, not with the VMSI18N072 kit.

In OpenVMS Version 7.2, the DEC C RTL has added Unicode codeset converters for Microsoft Code Page 437 (CP437). These codeset converters are also distributed with the operating system.

5.6.1.2 Euro Support

V7.2

To facilitate the use of the Euro sign by applications that currently use the ISO8859-1 character set, DEC C RTL has added proprietary codeset ISO8859-1-EURO. This codeset is the same as the ISO8859-1 codeset except for the 0xa4 codepoint, which is defined as the international currency sign in ISO8859-1 and as a Euro sign in ISO8859-1-Euro (Unicode codepoint U+20AC). For every locale based on ISO8859-1, DEC C RTL added a "Euro" locale based on ISO8859-1-EURO.

The DEC C RTL has also added Unicode codeset converters for the ISO8859-1-EURO codeset and the ISO8859-15 codeset (also known as Latin-9). The Euro locales and new codeset converters are distributed with the VMSI18N072 kit.

5.6.1.3 New Functions

V7.2

In OpenVMS Version 7.2, the DEC C RTL has added the following functions:


asctime_r                           
ctime_r                             
gmtime_r                            
localtime_r                         
dlclose                             
dlerror                             
dlopen                              
dlsym                               
fcntl (a subset of commands)        
decc$set_child_standard_streams     
decc$write_eof_to_mbx               
decc$validate_wchar                 

See the DEC C Run-Time Library Reference Manual for OpenVMS Systems for DEC C Version 6.0 for details.

5.6.1.4 Cache of OpenVMS Environment

V7.2

In OpenVMS Version 7.2, a cache of OpenVMS environment variables (that is, logical names and DCL symbols) has been added to the getenv function to avoid the library making repeated calls to translate a logical name or to obtain the value of a DCL symbol. By default, the cache is disabled. If your application does not need to track changes in OpenVMS environment variables that can occur during the run of the application, the cache can be enabled by setting the DECC$ENABLE_GETENV_CACHE logical before invoking the application (any equivalence string).

5.6.1.5 mmap Function Allows Creation of Global and Permanent Sections

V7.2

In OpenVMS Version 7.2, the mmap function was enhanced to accept an additional argument, which is passed to the SYS$CRMPSC service when processing a MAP_SHARED request. Applications that use this additional argument must be compiled with DEC C Version 6.0 or higher. See the DEC C Run-Time Library Reference Manual for OpenVMS Systems for DEC C Version 6.0 for the details.

5.6.1.6 wait Functions Can Return Completion Code of Child Process

V7.2

With OpenVMS Version 7.2, the waitpid, wait3, and wait4 functions, compiled with the _VMS_WAIT macro defined, put the OpenVMS completion code of the child process at the address specified in the status_location argument. When compiled without the _VMS_WAIT macro, these functions convert the OpenVMS completion code of the child process to a value consistent with macros for analysis of process status in the wait.h header, which is the standard behavior for the wait functions.

Applications that use nonstandard wait functions must be compiled with DEC C Version 5.7 or higher.


Previous Next Contents Index

  [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]  
  privacy and legal statement  
6534PRO_012.HTML