Document revision date: 19 July 1999 | |
Previous | Contents | Index |
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.
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
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
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:
IF (exit status is JBC$_JOBABORT) THEN Wait 10 seconds ENDIF |
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:
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 |
privacy and legal statement | ||
6534PRO_012.HTML |