VMS Help
V73 Features, Programming Features

 *Conan The Librarian (sorry for the slow response - running on an old VAX)

    This topic describes new features of interest to application and
    system programmers.

  1 - 3D Graphics Support

    The PowerStorm 300 (PBXGD-AD) and PowerStorm 350 (PBXGD-AE)
    graphics cards are now supported on Alpha-based systems. The
    OpenGL 3D graphics API is now provided as part of the OpenVMS
    base operating system. The version of OpenGL supported on the
    PowerStorm 300 and PowerStorm 350 graphics cards is Version 1.1.

    The implementation of OpenGL Version 1.1 for the PowerStorm 300
    or PowerStorm 350 is designed to coexist with installations
    of the Open3D layered product for older graphics cards. The
    images shipped with OpenVMS are named DECW$OPENGLSHR_V11 and
    DECW$OPENGLUSHR_V11. The _V11 suffix is used to distinguish the
    OpenGL Version 1.1 images from the OpenGL Version 1.0 images
    shipped with Open3D (DECW$OPENGLSHR and DECW$OPENGLUSHR).

    Applications using only OpenGL V1.0 features may be linked
    against either the Open3D images or the new Version 1.1 images.
    Applications using OpenGL Version 1.1 features should be linked
    explicitly against the Version 1.1 images.

    For further information on OpenGL support for the PowerStorm 300
    and PowerStorm 350, refer to the PowerStorm 300/350 Installation
    Guide and Release Notes documentation shipped with the graphics
    card.

                                 WARNING

       If 3D graphics will be used extensively, particularly in
       an environment using multiple PowerStorm 300 and PowerStorm
       P350s in a single system, read and strictly observe the
       guidelines for setting SYSGEN parameters and account quotas
       contained in the PowerStorm 300/350 OpenVMS Graphics Support
       Release Notes Version 1.1 and the Compaq PowerStorm 300/350
       Graphics Controllers Installation Guide shipped with the
       graphics card. The Release notes can also be accessed on the
       OpenVMS Documentation CD-ROM in the following directory:

       Directory                File Name

       [73.DOCUMENTATION.PS_    P300_350_REL_NOTES.PS,TXT
       TXT]

  2 - 3X-DAPBA-FA and 3X-DAPCA-FA ATM LAN Adapters (Alpha)

    The 3X-DAPBA-FA (HE155) and 3X-DAPCA-FA (HE622) are PCI based
    ATM LAN adapters for Alpha based systems that provide high
    performance PCI-to-ATM capability. The 3X-DAPBA-FA adapter offers
    a 155 Mbps fiber connection; the 3X-DAPCA-FA adapter offers a 622
    Mbps fiber connection.

    The datalink drivers for these adapters function in a new
    OpenVMS ATM environment. The new OpenVMS ATM environment is fully
    compatible with the existing legacy ATM support and allows both
    ATM environments to be configured on a single system. Also, the
    LANCP management interface is the same for both ATM environments.

    For additional information about the 3X-DAPBA-FA PCI HE155
    ATM and 3X-DAPCA-FA PCI HE622 ATM LAN adapters, refer to the
    following URL:

    http://www.compaq.com/alphaserver/products/options

  3 - COBOL RTL Enhancements

    The COBOL RTL for both Alpha and VAX supports five new intrinsic
    functions with four-digit year formats:

       YEAR-TO-YYYY
       DATE-TO-YYYYMMDD
       DAY-TO-YYYYDDD
       TEST-DATE-YYYYMMDD
       TEST-DAY-YYYYDDD

    The COBOL RTL for Alpha has improved performance for the DISPLAY
    statement redirected to a file and for programs compiled with the
    /MATH=CIT3 and /MATH=CIT4 qualifiers.

    This RTL's handling of ON SIZE ERROR is now more compatible with
    that of Compaq COBOL for OpenVMS VAX.

  4 - Compaq C Run-Time Library Enhancements

    The following sections describe the Compaq C RTL enhancements
    included in OpenVMS Version 7.3. For more details, refer to the
    revision of the Compaq C RTL Reference Manual that ships with
    Compaq C Version 6.3 or later.

 4.1 - Strptime Function Is XPG5-Compliant

    The strptime function has been modified to be compliant with
    X/Open CAE Specification System Interfaces and Headers Issue
    5 (commonly known as XPG5). The change for XPG5 is in how the
    strptime function processes the "%y" directive for a two-digit
    year within the century if no century is specified.

    When a century is not otherwise specified, XPG5 requires that
    values for the "%y" directive in the range 69-99 refer to years
    in the twentieth century (1969 to 1999 inclusive), while values
    in the range 00-68 refer to years in the twenty-first century
    (2000 to 2068 inclusive). Essentially, for the "%y" directive,
    strptime became a "pivoting" function, with 69 being a pivoting
    year.

    Before this change, the strptime function interpreted a two-digit
    year with no century as a year within twentieth century.

    With OpenVMS Version 7.3, XPG5-compliant strptime becomes a
    default strptime function in the Compaq C RTL. However, the
    previous nonpivoting XPG4-compliant strptime function is retained
    for compatibility.

    The pivoting is controlled by the DECC$XPG4_STRPTIME logical
    name. To use the nonpivoting version of strptime, either:

    o  Define DECC$XPG4_STRPTIME to any value before invoking the
       application.

       OR

    o  Call the nonpivoting strptime directly as the function
       decc$strptime_xpg4.

 4.2 - Nested Directory Levels Limitation Lifted (Alpha)

    The Compaq C RTL I/O subsystem was enhanced to remove the
    restriction of eight nested directory levels for an ODS-5 device.
    This affects Compaq C RTL functions such as access, mkdir,
    opendir, rmdir, and stat.

 4.3 - Improved Support for Extended File Specifications (Alpha)

    The following sections describe improved Compaq C RTL support for
    extended file specifications.

 4. 3.1 - Case Preservation

    Programs linked against the Compaq C Run-Time Library DECC$SHR
    can now preserve the case of file names on ODS level 5 disks.
    This applies when creating or reporting file names. By default,
    this feature is disabled. To enable this feature, enter the
    following command:

    $ DEFINE DECC$EFS_CASE_PRESERVE ENABLE

    If file names are all in uppercase, use the following command to
    convert the names to lowercase when reporting the name in UNIX
    style:

    $ DEFINE DECC$EFS_CASE_SPECIAL ENABLE

    If file names are not all in uppercase, then DEFINE DECC$EFS_
    CASE_SPECIAL ENABLE preserves case.

    The commands to disable the preceding logical-name settings are:

    $ DEFINE DECC$EFS_CASE_PRESERVE DISABLE
    $ DEFINE DECC$EFS_CASE_SPECIAL DISABLE

    The setting for the DECC$EFS_CASE_SPECIAL logical name, if not
    set to DISABLE, supersedes any setting for the DECC$EFS_CASE_
    PRESERVE logical name.

    The DECC$EFS_CASE_PRESERVE and DECC$EFS_CASE_SPECIAL logicals
    are checked only once per image activation, not on a file-by-file
    basis.

 4. 3.2 - Long File Names

    For OpenVMS Alpha Version 7.2, some basic Compaq C RTL I/O
    functions (creat, stat, and the functions from the open family
    of functions) were enhanced to accept long OpenVMS-style file
    names for an ODS-5 device.

    For OpenVMS Alpha Version 7.3, all other Compaq C RTL functions,
    except chdir and the functions from the exec family of functions,
    were also enhanced to accept long OpenVMS-style file names for an
    ODS-5 device.

    All C RTL functions that accept or report full file
    specifications will process file specifications up to 4095 bytes
    long, subject to the rules defined for the media format. For
    file specifications in OpenVMS format, there are no special
    restrictions. In situations where a full file specification
    cannot be reported because the buffer is too short, the function
    attempts to report the abbreviated name.

    UNIX file names have the following restrictions:

    o  Names containing special characters, such as multiple periods,
       caret, or multinational characters, may be rejected.

    o  A function call may report failure if the output buffer is
       not large enough to receive the full name. For OpenVMS style
       names, the reported name would contain a file ID-abbreviated
       name. There is no representation of file ID-abbreviated names
       defined for UNIX.

 4.4 - Exact Case Argv Arguments (Alpha)

    Nonquoted command-line arguments passed to C and C++ programs
    (argv arguments) can now optionally have their case preserved,
    rather than being lowercased as in previous versions.

    By default, this feature is disabled.

    To enable this case preservation feature, define the logical
    name DECC$ARGV_PARSE_STYLE to "ENABLE" and set the process-level
    DCL parse style flag to "EXTENDED" in the process running the
    program:

    $ DEFINE DECC$ARGV_PARSE_STYLE ENABLE
    $ SET PROCESS/PARSE_STYLE=EXTENDED

    Enabling this feature also ensures that the image name returned
    in argv[0] is also case-preserved.

    To disable this feature, use any one of the following commands:

     $ SET PROCESS/PARSE_STYLE=TRADITIONAL

    or

    $ DEFINE/SYSTEM DECC$ARGV_PARSE_STYLE DISABLE

    or

    $ DEASSIGN DECC$ARGV_PARSE_STYLE

    The value of the DECC$ARGV_PARSE_STYLE logical is case-
    insensitive.

 4.5 - Implicitly Opening Files for Shared Access

    The Compaq C RTL was enhanced to open all files for shared access
    as if the "shr=del,get,put,upd" option was specified in the open*
    or creat call.

    To enable this feature, define the logical name DECC$FILE_SHARING
    to the value "ENABLE". The value is case-insensitive.

    DECC$FILE_SHARING is checked only once per image activation, not
    on a file-by-file basis.

 4.6 - Translating UNIX File Specifications

    The Compaq C RTL was enhanced to allow interpreting the leading
    part of a UNIX-style file specification as either a subdirectory
    name or a device name.

    The default translation of a "foo/bar" UNIX-style name to a
    "foo:bar" VMS-style name remains the default.

    To translate a "foo/bar" UNIX-style name to a "[.foo]bar" VMS-
    style name, define the logical name DECC$DISABLE_TO_VMS_LOGNAME_
    TRANSLATION to ENABLE.

    DECC$DISABLE_TO_VMS_LOGNAME_TRANSLATION is checked only once per
    image activation, not on a file-by-file basis.

 4.7 - New Functions

    The Compaq C RTL has added the following functions in OpenVMS
    Version 7.3:

    fchown
    link
    utime
    utimes
    writev

  5 - Fortran Support for 64-Bit Address (Alpha)

    Support has been added to OpenVMS Alpha to allow Fortran
    developers to use static data in 64-bit address space.

    For more information about how to use this feature, refer to the
    Fortran documentation.

  6 - Large Page-File Sections (Alpha)

    Page-file sections are used to store temporary data in private
    or global (shared) sections of memory. In previous releases of
    OpenVMS Alpha, the maximum amount of data that could be backed up
    to page files was 32 GB per process (4 process page files, each 8
    GB) and 504 GB per system (63 page files, each 8 GB).

    With OpenVMS Alpha Version 7.3, the previous limits for page-file
    sections were extended significantly to take advantage of larger
    physical memory. Now images that use 64-bit addressing can map
    and access an amount of dynamic virtual memory that is larger
    than the amount of physical memory available on the system.

    With the new design, if a process requires additional page-
    file space, page files can be allocated dynamically. Space is
    no longer reserved in a distinct page file, and pages are no
    longer bound to an initially assigned page file. Instead, if
    modified pages must be written back, they are written to the best
    available page file.

    Each page or swap file can hold approximately 16 million pages
    (128 GB), and up to 254 page or swap files can be installed.
    Files larger than 128 GB are installed as multiple files.

  7 - Multipath System Services

    The new Multipath system services provide the capability to
    return path information and allow you to enable, disable, and
    switch specific I/O paths to any device.

    The concept of multiple I/O paths to storage devices was
    introduced in OpenVMS Version 7.2-1. It is now possible to select
    more than one I/O path to a device in the event that the path in
    use should fail.

    To assist in decision making when configuring a system's I/O
    structure, the following DCL commands were made available to
    allow you to display I/O path information and change the current
    settings affecting these paths:

    o  SET DEVICE device-name/PATH=path-description-string/SWITCH

    o  SET DEVICE device-name/PATH=path-description-string/[NO]ENABLE

    o  SHOW DEVICE/MULTIPATH device-name

    In OpenVMS Version 7.3, the capability to return path information
    and allow you to enable, disable, and switch specific I/O paths
    to any device is now implemented in the following new system
    services:

    o  SYS$DEVICE_PATH_SCAN

       This service returns path information for a given Multipath
       I/O device. Each call to the service returns the name of one
       of the paths to the device. A context argument is used to
       maintain continuity between calls. This mechanism is similar
       to the one currently used for SYS$GETDVI.

    o  SYS$SET_DEVICE[W]

       Use this service to switch the selected path that handles I/O
       to a device, or to enable or disable a path for future use in
       the event of failover. When switching a path, the path change
       is initiated at the time the request is made by the system
       service.

       The current functions of this service include forcing an
       immediate path switch and enabling or disabling paths.

       A synchronous version of this service, SYS$SET_DEVICEW, is
       also provided. This service returns to the caller only after
       the path switch attempt has been made. Should the path switch
       fail, an error condition is returned to the caller.

       Currently, $SET_DEVICE allows only one valid item list entry.

    For additional information, refer to the OpenVMS System Services
    Reference Manual.

  8 - Multiprocess Debugging (Alpha)

    For Version 7.3, debugger support for multiprocess programs has
    been extensively overhauled. Problems have been corrected and the
    user interface has been improved.

    The multiprocess debugging enhancements include the following
    features:

    o  Greater control over individual process and groups of
       processes, including:

          Execution of processes (or groups of processes)
          Suspension of processes (or groups of processes)
          Exiting processes (or groups of processes), with or without
          exit handler execution

    o  Ability to create user-defined groups of processes

    o  Easier to start a multiprocess debugging session; the default
       configuration of the kept debugger is for a multiprocess
       session

    o  Applications that use $HIBER WAIT (LIB$WAIT, $SCHDWK, and so
       on) can now be debugged in a multiprocess debugging session

    These enhancements make it much easier to debug multiprocess
    programs.

  9 - Performance API

    The Performance Application Programming Interface (API) provides
    a documented functional interface-the $GETRMI system service-that
    allows performance software engineers to access a predefined list
    of performance data items.

    For more information about $GETRMI, refer to the OpenVMS System
    Services Manual.

  10 - POLYCENTER Software Installation Utility Enhancements

    PDL Changes shows the changes made to the product description
    language (PDL) for the POLYCENTER Software Installation
    utility.

    Table 5-1 PDL Changes

    Statement          Description

    execute upgrade    New statement.
    execute            Modified to execute on a reconfigure
    postinstall        operation.
    file               Refinements made to their conflict detection
    module             and resolution algorithms. For example, when a
                       file from the kit contains the same non-zero
                       generation number as the same file already
                       installed, the file from the kit is selected
                       to replace the file on disk. Previously,
                       in this tie situation, the file on disk was
                       retained to resolve the conflict.
    bootstrap block    Obsolete. However, the utility will continue
    execute release    to process these statements in a backward
    patch image        compatible manner to support existing kits
    patch text         that might have used them.

    Function           Description

    upgrade            Enhanced to fully support version range
                       checking.

    The POLYCENTER Software Installation Utility Developer's Guide
    has been extensively revised for this release. Major improvements
    include:

    o  Updated descriptions for most PDL statements.

    o  A comprehensive presentation on using custom command
       procedures with execute statements (added to the Advanced
       Topics chapter).

    o  New tables, diagrams, and examples.

  11 - New Process Dump Tools (Alpha)

    OpenVMS Version 7.3 contains new tools for processing dump files.
    Note that these new-style process dump and process dump analysis
    tools are not compatible with the old-style process dumps. That
    is, if you have a problem you want to analyze with the new tools,
    you must generate a new process dump using the new process dump
    image.

    The following sections describe the new tools.

 11.1 - DCL ANALYZE PROCESS DUMP (Alpha)

    The DCL ANALYZE/PROCESS_DUMP command invokes the OpenVMS debugger
    to analyze a process dump, giving you access to debugger commands
    for your analysis. In OpenVMS Version 7.3, most of the old DCL
    ANALYZE/PROCESS_DUMP qualifiers have no effect. Only the /FULL
    and /IMAGE qualifiers are still valid. Both these qualifiers are
    still optional.

    /FULL now causes the debugger to execute the debugger SHOW IMAGE,
    SHOW CALL, and SHOW THREAD/ALL commands after a process dump file
    has been opened.

    /IMAGE has been renamed to /IMAGE_PATH, and is now a directory
    specification, rather than a file specification. /IMPAGE_PATH
    specifies a directory in which to look for the debug symbol
    information files (.DSF or .EXE files, in that order) that belong
    to the process dump file. The name of the symbol file must be
    the same as the image name in the process dump file. For example,
    for MYIMAGE.DMP, the debugger searches for file MYIMAGE.DSF or
    MYIMAGE.EXE.

    Version 7.3 and later debuggers check for dumpfile image
    specification and DST file link date-time mismatches and issue
    a warning if one is discovered.

    For more information about the DCL ANALYZE/PROCESS_DUMP command,
    refer to the OpenVMS DCL Dictionary: A-M.

 11.2 - Debugger ANALYZE PROCESS DUMP Command

    The debugger has a new command:

    ANALYZE/PROCESS_DUMP/IMAGE_PATH[=directory-spec] dumpfile.

    This command is available only in the kept debugger. The kept
    debugger is the image you invoke with the command DEBUG/KEEP,
    which allows you to run and rerun programs from the same
    debugging session.

    The qualifier /PROCESS_DUMP is required.

    For more information, refer to the OpenVMS Debugger Manual.

 11.3 - Debugger SDA Command

    The new debugger SDA command invokes the System Dump Analyzer
    (SDA) to allow you to look at a process dump from within the
    OpenVMS debugger. For example:

     DBG> SDA

     OpenVMS (TM) Alpha process dump analyzer

     SDA> ..
     .
     .
     SDA> EXIT
     DBG>

    This allows you to use SDA to analyze a process dump without
    terminating a debugger session.

    For more information, refer to the OpenVMS Debugger Manual.

 11.4 - Analyzing Process Dumps on Different Systems

    You can analyze a process dump file on a system different from
    the one on which it was generated. However, if there is a base
    image link date/time mismatch between the generating system
    and analyzing system, you must copy SYS$BASE_IMAGE.EXE from the
    generating system and point to it with the SDA$READ_DIR logical
    name.

    For threaded process dump analysis on a system different from the
    one on which it was generated, it may also be necessary to copy
    and logically point to the generating system's PTHREAD$RTL and
    PTHREAD$DBGSHR (POSIX Threads Library debug assistant).

 11.5 - Forcing a Process Dump

    You can force a process dump with the DCL command
    SET PROCESS/DUMP=NOW process-spec. This command causes the
    contents of the address space occupied by process-spec to be
    written immediately to the file named image-name.DMP in the
    current directory (image-name is the same as the file name).

    For more information about the DCL SET PROCESS/DUMP command,
    refer to the OpenVMS DCL Dictionary: N-Z.

 11.6 - Security and Diskquotas

    A process dump is either complete or partial. A complete process
    dump contains all of process space and all process-pertinent data
    from system space. A partial process dump contains only user-
    readable data from process space and only those data structures
    from system space that are not deemed sensitive. Privileged
    or protected data, such as an encryption key in third-party
    software, might be considered sensitive.

    In general, nonprivileged users should not be able to read
    complete process dumps, and by default they cannot do so.
    However, certain situations require nonprivileged users to be
    able to read complete process dumps. Other situations require
    enabling a user to create a complete process dump while at
    the same time preventing that user from being able to read the
    complete process dump.

    By default, process dumps are written to the current default
    directory of the user. The user can override this by defining
    the logical name SYS$PROCDMP to identify an alternate directory
    path. Note that the name of the process dump file is always the
    same as the name of the main image at the time the process dump
    is written, with the file extension .DMP.

 11. 6.1 - Special Rights Identifiers

    You can use the new rights identifier IMGDMP$READALL to allow
    a nonprivileged user to read a complete process dump. You
    can use the new rights identifier IMGDMP$PROTECT to protect
    a complete process dump from being read by the user that
    created the process dump. These rights identifiers are created
    during the installation of OpenVMS Version 7.3 by the image
    SYS$SYSTEM:IMGDMP_RIGHTS.EXE, which is also run automatically
    during system startup to ensure that these rights identifiers
    exist with the correct values and attributes.

    If these rights identifiers have been deleted, you can run
    SYS$SYSTEM:IMGDMP_RIGHTS.EXE to recreate them.

    Note that IMGDMP$READALL has no attributes, but IMGDMP$PROTECT is
    created with the RESOURCE attribute.

 11. 6.2 - Privileged Users

    For this discussion, a privileged user is one who satisfies one
    of the following conditions:

    o  Has one or more of the privileges CMKRNL, CMEXEC, SYSPRV,
       READALL, or BYPASS

    o  Is a member of a system UIC group (by default [10,n] or
       lower). Such users are treated as though they hold SYSPRV
       privilege.

    Holders of CMKRNL or CMEXEC can write complete process dumps.
    Holders of any of the other privileges can read a process dump
    wherever it has been written.

 11. 6.3 - Nonprivileged Users

    To allow a nonprivileged user to write and read complete process
    dumps, grant the rights identifier IMGDMP$READALL to the user.
    If the IMGDMP$READALL rights identifier does not exist, run the
    image SYS$SYSTEM:IMGDMP_RIGHTS.EXE to create it (see Special
    Rights Identifiers). Then use AUTHORIZE to grant the rights
    identifier to the user. For example:

        $ DEFINE /USER SYSUAF SYS$SYSTEM:SYSUAF.DAT  !if necessary
        $ RUN SYS$SYSTEM:AUTHORIZE
        UAF> GRANT /IDENTIFIER IMGDMP$READALL <user>
        UAF> EXIT

    Note that the user must log out and log in again to be able to
    receive the rights identifier. A nonprivileged user with rights
    identifier IMGDMP$READALL can read and write complete process
    dumps without restriction.

 11. 6.4 - Protecting Process Dumps

    You can allow a nonprivileged user to write a complete process
    dump and at the same time prevent the user from reading the
    process dump just written. To do so, perform the following
    procedure:

    1. If the IMGDMP$PROTECT rights identifier does not exist, run
       the image SYS$SYSTEM:IMGDMP_RIGHTS.EXE to create it (see
       Special Rights Identifiers).

    2. Create a protected directory with rights identifier
       IMGDMP$PROTECT.

    3. Define protected logical name SYS$PROTECTED_PROCDMP to point
       to the protected directory.

       If DISKQUOTA is to be used on the disk containing the
       protected directory, specify the maximum disk space to be
       used for process dumps.

                                 CAUTION

       Do not grant IMGDMP$PROTECT to any user. It is granted and
       revoked as needed by SYS$SHARE:IMGDMP.EXE from executive
       mode while writing a process dump. If you grant it
       permanently to a user, that user has access to all process
       dumps written to the protected directory.

    You can choose to set up additional ACLs on the protected
    directory to further control which users are allowed to read
    and write process dumps there.

    Note that to take a process dump when the image is installed with
    elevated privileges or belongs to a protected subsystem, the user
    must hold CMKRNL privilege, and is by definition a privileged
    user (see Privileged Users).

  12 - RMS Locking Enhancements

    This section introduces the new Record Management Services (RMS)
    enhancements provided in this release.

 12.1 - RMS Locking Performance (Alpha)

    The following sections describe RMS locking performance
    enhancements that are in OpenVMS Alpha Version 7.2-1H1 and in
    OpenVMS Version 7.3.

 12. 1.1 - RMS Global Buffer Read-Mode Locking

 In the RMS run-time processing environment, the use of global
 buffers can minimize I/O operations for shared files. This release
 introduces read-mode bucket locking that minimizes locking for
 shared access to global buffers. This new functionality:

    o  Allows concurrent read access to the global buffers. Accesses
       are no longer serialized, waiting to acquire an exclusive lock
       for a read access.

    o  Caches the read-mode lock as a system lock, which is retained
       over accesses and only lowered to null when the lock is
       blocking an exclusive write request. This functionality
       significantly reduces both local and remote lock request
       traffic (the number of $ENQ and $DEQ system service calls)
       as well as associated IPL-8 spinlock activity and System
       Communications Services (SCS) messages for a cluster.

    o  Does not increase lock resource names or the number of active
       system or process locks on the system.

    o  Is functionally compatible in mixed version clusters that
       include both Alpha and VAX computers.

    This new functionality applies to read operations (using the $GET
    and $FIND services) for all three file organizations: sequential,
    relative, and indexed. It also applies to a write operation
    (using the $PUT service) for the read accesses used for index
    buckets the first time through an index tree for the write.

    You do not need to make changes to existing applications to
    implement the read-only global bucket locks. However, global
    buffers must be set on a data file to take advantage of the
    enhancement. Use the following DCL command, where n is the number
    of buffers:

    $ SET FILE/GLOBAL_BUFFER=n <filename>

    For information about specifying the number of buffers, refer
    to the OpenVMS DCL Dictionary. For general information about
    using global buffers, refer to the section entitled Using
    Global Buffers for Shared Files in the Guide to OpenVMS File
    Applications.

    In a mixed cluster environment where there may be high contention
    for specific buckets, the Alpha nodes that are using read-mode
    global bucket locking may dominate accesses to write-shared
    files, thereby preventing timely access by other nodes.

    With the new /CONTENTION_POLICY=keyword qualifier to the SET RMS_
    DEFAULT command, you can specify the level of locking fairness at
    the process or system level for environments that experience high
    contention conditions.

    For more information about using the /CONTENTION_POLICY=keyword
    qualifier, refer to the SET RMS_DEFAULT section of the OpenVMS
    DCL Dictionary.

 12. 1.2 - No Query Record Locking Option

    This release introduces new functionality that can minimize
    record locking for read accesses to shared files, thereby
    avoiding the processing associated with record locking calls
    to the Lock Manager.

    In previous releases, if a file is opened allowing write sharing,
    an exclusive record lock is taken out for all record operations
    (both read and write). Applications may obtain record locking
    modes other than the exclusive lock (default) by specifying
    certain options to the RAB$L_ROP field. However, all the options
    involve some level of record locking. That is, the options
    require $ENQ or $DEQ system service calls to the Lock Manager.

    The user record locking options include the RAB$V_NLK (no lock)
    query locking option, which requests that RMS take out a lock
    to probe for status and not hold the lock for synchronization.
    If the lock is not granted (exclusive lock held) and the read-
    regardless (RAB$V_RRL) option is not set, the record access fails
    with an RMS$_RLK status. Otherwise, the record is returned with
    one of the following statuses:

    o  RMS$_SUC - No other writers

    o  RMS$_OK_RLK - Record can be read but not written

    o  RMS$_OK_RRL - Exclusive lock is held (lock request denied) but
       the read-regardless (RAB$V_RRL) option is set

    When only the RAB$V_NLK option is specified, record access can
    be denied. When both the RAB$V_NLK and RAB$V_RRL options are
    specified, an application can guarantee the return of any record
    with a success or alternate success status.

    This release introduces the no query record locking option,
    which allows applications to read records (using $GET or $FIND
    services) without any consideration of record locking. This
    option:

    o  Does not make a call to the Lock Manager

    o  Is equivalent to both RAB$V_NLK and RAB$V_RRL being set
       except that the RMS$_OK_RLK or RMS$_OK_RRL status will not
       be returned

    This functionality is independent of bucket locks. It applies to
    both local and global buffers and to all three file organizations
    (sequential, relative, and indexed).

    Three alternate methods for specifying the no query record
    locking option are outlined in Methods Available for Specifying
    No Query Record Locking.

    Note the following:

    o  The first method allows the option to be enabled externally,
       potentially without any application change.

    o  You should use any of the methods only as appropriate for
       the application. In particular, you should check for any
       dependency in an existing application on the alternate success
       status RMS$_OK_RLK or RMS$_OK_RRL.

    Table 5-2 Methods Available for Specifying No Query Record
              Locking

    To...                  Use This Method...

    Disable query record   Enter the following DCL command to request
    locking at the         that RMS use no query record locking for
    process or system      any read operation with both RAB$V_NLK
    level.                 and RAB$V_RRL options set in the RAB$L_ROP
                           field:

                           $ SET RMS_DEFAULT/QUERY_LOCK=
                                             DISABLE[/SYSTEM]

                           Keys on RAB$V_NLK and RAB$V_RRL options in
                           existing applications.
    Enable no query        Set the RAB$V_NQL option in the RAB$W_ROP_
    record locking on      2 field.
    a per-record read
    operation.             The RAB$V_NQL option takes precedence
                           over all other record locking options. Use
                           only if the current read ($GET or $FIND)
                           operation is not followed by an $UPDATE or
                           $DELETE call.
    Enable no query        Set the FAB$V_NQL option in the FAB$B_SHR
    record locking at      field to request that RMS use no query
    the file level.        locking for the entire period the file is
                           open for any read record operation with
                           both RAB$V_NLK and RAB$V_RRL options set
                           in the RAB$L_ROP field.

                           This option can be used with any
                           combination of the other available FAB$B_
                           SHR sharing options. Keys on RAB$V_NLK and
                           RAB$V_RRL options in applications.

    RMS precedence for the no query record locking option is as
    follows:

    o  The RAB$V_NQL option set in the RAB$W_ROP_2 field

    o  At file open (and applied, if RAB$V_NLK and RAB$V_RRL are set
       for the read operation):

       -  The FAB$V_NQL option set in the FAB$B_SHR field

       -  The SET RMS_DEFAULT/QUERY_LOCK=DISABLE setting at the
          process level

       -  The SET RMS_DEFAULT/QUERY_LOCK=DISABLE setting at the
          system level. If the process /QUERY_LOCK setting equals
          SYSTEM_DEFAULT (the default when the process is created),
          RMS uses the system specified value.

    For more information, see OpenVMS Record Management Services
    Reference Manual.

 12.2 - Record Locking Options

    RMS uses the distributed Lock Manager ($ENQ system service) for
    record locking.

    To help prevent false deadlocks, the distributed Lock Manager
    uses the following flags for lock requests:

    Flag           Purpose

    LCK$M_         When set, the lock management services do not
    NODLCKWT       consider this lock when trying to detect deadlock
                   conditions.
    LCK$M_         When set, the lock management services do not
    NODLCKBLK      consider this lock as blocking other locks when
                   trying to detect deadlock conditions.

    In previous releases, RMS did not set these flags in its record
    lock requests.

    With this release, you can optionally request that RMS set
    these flags in record lock requests by setting the corresponding
    options RAB$V_NODLCKWT and RAB$V_NODLCKBLK in the new RAB$W_ROP_2
    field. For more information about using these options, refer to
    the flag information in the $ENQ section of the OpenVMS System
    Services Reference Manual: A-GETUAI.

  13 - OpenVMS Registry

    Beginning in OpenVMS Version 7.3, the $REGISTRY system service
    and the OpenVMS Registry server have been enhanced to use the
    Intra-Cluster Communications (ICC) protocol. ICC provides a
    high-performance communication mechanism that is ideal for large
    transfers. Using ICC eases restrictions on the amount of data
    that can be transferred between the $REGISTRY system service
    and the Registry server. These restrictions previously prevented
    large key values from being stored and retrieved, and prevented
    full searches of large databases. The changes made in OpenVMS
    Version 7.3 result in an incompatibility between the OpenVMS
    Version 7.2 $REGISTRY service and Registry server and the OpenVMS
    Version 7.3 $REGISTRY service and Registry server. However, these
    changes substantially benefit OpenVMS customers in this release
    and in future releases, when we plan to further reduce these
    restrictions.

    Also in OpenVMS Version 7.3, registry operations are
    client/server based, and as such require some length of time
    for the server to respond to a request. If the server is too
    busy or the timeout value is too small, or both, the server
    will not respond in time and the $REGISTRY service will return
    a REG$_NORESPONSE error. This does not necessarily mean that
    the operation failed; it only means that the server was not able
    to respond before the time expired. Most operations complete
    immediately. However, Compaq recommends that you specify the
    timeout value be a minimum of 5 seconds.

    The new format of the $registry system service is:

    $REGISTRY [efn], func, [ntcredentials], itmlst, [iosb] [,astadr]
    [,astprm] [,timeout]

    Note that astadr, astprm and timeout are optional arguments.
    These optional arguments cannot be defaulted, which means that to
    specify the timeout argument, you must specify astadr and astprm
    (or specify them as 0). Some languages, such as Bliss and Macro,
    provide macros to do this for you.

 13.1 - REG$CP Registry Utility

    The REG$CP Registry Utility has been enhanced to use the timeout
    argument. REG$CP commands now support a /WAIT=numberofseconds
    qualifier, allowing you to specify the number of seconds to
    wait for the Registry Server to respond to the command. /WAIT is
    negatable (by using /NOWAIT). However, like the timeout argument,
    Compaq recommends that you specify a minimum of 5 seconds.

    The REG$CP Registry Utility has also been enhanced to display
    security descriptors. The LIST command can now be used to display
    the security descriptor associated with a particular key. This
    includes the security descriptor structure itself, and may also
    include Security Identifiers (SIDs), System Access-Control Lists
    (SACLs), and Discretionary Access-Control Lists (DACLs). You
    must have access to the key to display the security descriptor;
    in other words, you must have proper credentials to read the
    security information, or you must be suitably privileged.

    For more information, refer to the OpenVMS Connectivity Developer
    Guide, which is available on the OpenVMS Alpha CD-ROM in
    directory [COM_ALPHA_011A].

  14 - Alpha SDA Commands, Parameters, and Qualifiers

    The OpenVMS Version 7.3 software release offers a number of new
    Alpha SDA commands, parameters, and qualifiers. OpenVMS Version
    7.3 also offers many new parameters and qualifiers for existing
    commands.

    For more detailed information, refer to the OpenVMS Alpha System
    Analysis Tools Manual.

 14.1 - New Alpha SDA Commands

    The following section lists and defines the new System Dump
    Analyzer commands with their parameters and qualifiers.

 14. 1.1 - DUMP

    The DUMP command displays the contents of a range of memory
    formatted as a comma-separated variable (CSV) list, suitable
    for inclusion in a spreadsheet.

    The following table shows the parameter for the DUMP command:

    Parameter          Meaning

    range              The range of locations to be displayed. The
                       range is specified in one of the following
                       formats:  Meaning

                       m:n       Range from address m to address n
                                 inclusive
                       m;n       Range from address m for n bytes

    The following table shows the qualifiers for the DUMP command:

    Qualifier                   Meaning

    /COUNT=[{ALL|records}]      Gives the number of records to be
                                displayed. The default is to display
                                all records.
    /DECIMAL                    Outputs data as decimal values.
    /FORWARD                    Causes SDA to display the records
                                in the history buffer in ascending
                                address order. This is the default.
    /HEXADECIMAL                Outputs data as hexadecimal values.
                                This is the default.
    /INDEX_ARRAY [={LONGWORD    Indicates to SDA that the range
    (default)|QUADWORD}]        of addresses given is a vector
                                of pointers to the records to be
                                displayed. The vector can be a
                                list of longwords (default) or
                                quadwords. The size of the range
                                must be an exact number of longwords
                                or quadwords as appropriate.
    /INITIAL_POSITION           Indicates to SDA which record is
                                is the lowest addressed record if
                                /FORWARD is used, and the highest
                                addressed record if /REVERSE is used.
                                The initial position may be given as
                                a record number within the range, or
                                the address at which the record is
                                located.
    /LONGWORD                   Outputs each data item as a longword.
                                This is the default.
    /PHYSICAL                   Indicates to SDA that all addresses
                                (range and/or start position) are
                                physical addresses. By default,
                                virtual addresses are assumed.
    /QUADWORD                   Outputs each data item as a quadword.
    /RECORD_SIZE=size           Indicates the size of each record
                                within the history buffer, the
                                default being 512 bytes. Note that
                                this size must exactly divide into
                                the total size of the address range
                                to be displayed, unless /INDEX_ARRAY
                                is specified.
    /REVERSE                    Causes SDA to display the records
                                in the history buffer in descending
                                address order.

 14. 1.2 - SET_SYMBOLIZE

    The SET SYMBOLIZE command enables or disables symbolization of
    addresses in the display from an EXAMINE command.

    The following shows the parameters for the SET SYMBOLIZE command:

    Parameter  Meaning

    ON         Enables symbolization of addresses
    OFF        Disables symbolization of addresses

    There are no qualifiers for this command.

 14. 1.3 - SHOW_MEMORY

    The SHOW MEMORY command displays the availability and usage of
    those memory resources that are related to memory.

    There are no parameters for this command. The following shows the
    qualifiers for the SHOW MEMORY command, which are the same as for
    the existing DCL command:

    Qualifier            Meaning

    /ALL                 Displays all available information;
                         that is, information displayed by the
                         /FILES, /PHYSICAL_PAGES, /POOL, and /SLOTS
                         qualifiers. This is the default display.
    /BUFFER_OBJECTS      Displays information about system resources
                         used by buffer objects.
    /CACHE               Displays information about the Virtual
                         I/O Cache facility. The cache facility
                         information is displayed as part of the SHOW
                         MEMORY and SHOW MEMORY/CACHE/FULL commands.
    /FILES               Displays information about the use of
                         each paging and swapping file currently
                         installed.
    /FULL                Displays additional information about
                         each pool area or paging or swapping
                         file currently installed, when used with
                         the /POOL or the /FILES qualifier. This
                         qualifier is ignored unless the /FILES or
                         the /POOL qualifier is specified explicitly.
                         When used with the /CACHE qualifier, /FULL
                         displays additional information about the
                         use of the Virtual I/O Cache facility.
    /GH_REGIONS          Displays information about the granularity
                         hint regions (GHR) that have been
                         established. For each of these regions,
                         information is displayed about the size of
                         the region, the amount of free memory, the
                         amount of memory in use, and the amount of
                         memory released to OpenVMS from the region.
                         The granularity hint regions information is
                         also displayed as part of SHOW MEMORY, SHOW
                         MEMORY/ALL, and SHOW MEMORY/FULL commands.
    /PHYSICAL_PAGES      Displays information about the amount of
                         physical memory and the number of free and
                         modified pages.
    /POOL                Displays information about the usage of each
                         dynamic memory (pool) area, including the
                         amount of free space and the size of the
                         largest contiguous block in each area.
    /RESERVED            Displays information about memory
                         reservations.
    /SLOTS               Displays information about the availability
                         of partition control block (PCB) vector
                         slots and balance slots.

 14. 1.4 - SHOW_RAD

    The SHOW RAD command displays the settings and explanations of
    the RAD_SUPPORT system parameter fields, and the assignment
    of CPUs and memory to the Resource Affinity Domains (RADs).
    This command is only useful on platforms that support RADs. By
    default, the SHOW RAD command displays the settings of the RAD_
    SUPPORT system parameter fields.

    The following shows the parameter for the SHOW RAD command:

    Parameter   Meaning

    number      Displays information on CPUs and memory for the
                specified RAD

    The following shows the qualifier for the SHOW RAD command:

    Qualifier  Meaning

    /ALL       Displays settings of the RAD_SUPPORT parameter fields
               and the CPU and memory assignments for all RADs

 14. 1.5 - SHOW_TQE

    The SHOW TQE command displays the entries in the Timer Queue. The
    default output is a summary display of all timer queue entries
    (TQEs) in chronological order.

    There are no parameters for this command. The following shows the
    qualifiers for the SHOW TQE command:

    Qualifier       Meaning

    /ADDRESS=n      Outputs a detailed display of the TQE at the
                    specified address
    /ALL            Outputs a detailed display of all TQEs
    /BACKLINK       Outputs the display of TQEs, either detailed
                    (/ALL) or brief (default), in reverse order,
                    starting at the entry furthest into the future
    /PID=n          Limits the display of the TQEs that affect the
                    process with the specified internal PID
    /ROUTINE=n      Limits the display of the TQEs for which the
                    specified address is the fork PC

 14. 1.6 - UNDEFINE

    The UNDEFINE command causes SDA to remove the specified symbol
    from its symbol table.

    The following shows the parameter for the UNDEFINE command:

    Parameter       Meaning

    symbol          The name of the symbol to be deleted from SDA's
                    symbol table. A symbol name is required.

    There are no qualifiers for this command.

 14.2 - Parameters and Qualifiers for Existing Commands

    The following section lists and defines new parameters and
    qualifiers for existing commands.

 14. 2.1 - REPEAT

    The REPEAT command has the following new parameter:

    Parameter        Meaning

    count            The number of times the previous command is to
                     be repeated. The default is a single repeat.

    The REPEAT command has the following new qualifier:

    Qualifier        Meaning

    /UNTIL=condition Defines a condition that terminates the REPEAT
                     command. By default, there is no terminating
                     condition.

 14. 2.2 - SEARCH

    The /STEPS qualifier of the SEARCH command now allows any step
    size. In addition to the keywords QUADWORD, LONGWORD (default),
    WORD, or BYTE, any value can be specified.

    Qualifier                       Meaning

    /STEPS={QUADWORD|LONGWORD|WORD  Specifies the step factor of
    |BYTE|value}                    the search through the specified
                                    memory range. After the SEARCH
                                    command has performed the
                                    comparison between the value of
                                    expression and memory location,
                                    it adds the specified step factor
                                    to the address of the memory
                                    location. The resulting location
                                    is the next location to undergo
                                    the comparison. If you do not
                                    specify the /STEPS qualifier, the
                                    SEARCH command uses a step factor
                                    of a longword.

 14. 2.3 - SET_OUTPUT

    The SET OUTPUT command has the following new qualifiers:

    Qualifier       Meaning

    /[NO]HEADER     The /HEADER qualifier causes SDA to include a
                    heading at the top of each page of the output
                    file. This is the default. The /NOHEADER
                    qualifier causes SDA to omit the page headings.
                    Use of /NOHEADER implies /NOINDEX.
    /SINGLE_        Indicates to SDA that the output for a single
    COMMAND         command is to be written to the specified file
                    and that subsequent output should be written to
                    the terminal.

 14. 2.4 - SET_PROCESS

    The SET PROCESS command has the following new qualifier:

    Qualifier   Meaning

    /NEXT       Causes SDA to locate the next valid process in the
                process list and select that process. If there are
                no further valid processes in the process list, SDA
                returns an error.

 14. 2.5 - SHOW_DEVICE

    The SHOW DEVICE command has the following new qualifiers:

    Qualifier      Meaning

    /CDT=address   Identifies the device by the address of its
                   Connector Descriptor Table (CDT). This applies
                   to cluster port devices only.
    /PDT           Displays the Memory Channel Port Descriptor Table.
                   This qualifier is ignored for devices other than
                   memory channel.
    /UCB=ucb-      This is a synonym for /ADDRESS=ucb-address.
    address

 14. 2.6 - SHOW_GCT

    The SHOW GCT command has the following new qualifier:

    Qualifier     Meaning

    /CHILDREN     When used with /ADDRESS=n or /HANDLE=n, the
                  /CHILDREN qualifier causes SDA to display all nodes
                  in the configuration tree that are children of the
                  specified node.

 14. 2.7 - SHOW_LOCK

    The SHOW LOCK command's qualifier /STATUS has the following new
    keyword:

    Keyword    Meaning

    DPC        Indicates a delete pending cache lock

 14. 2.8 - SHOW_PFN_DATA

    The SHOW PFN_DATA command has the following new qualifier:

    Qualifier        Meaning

    /RAD             Displays data on the disposition of pages among
    [={n|ALL}]       the Resource Affinity Domain on applicable
                     systems

 14. 2.9 - SHOW_POOL

    The SHOW POOL command has the following new qualifiers:

    Qualifier          Meaning

    /BRIEF             Displays only general information about pool
                       and its addresses.
    /CHECK             Checks all free packets for POOLCHECK-style
                       corruption, in exactly the same way that
                       the system does when generating a POOLCHECK
                       crashdump.
    /MAXIMUM_BYTES     Displays only the first n bytes of a pool
    [=n]               packet; default is 64 bytes.
    /STATISTICS [=     Displays usage statistics about each lookaside
    ALL]               list and the variable free list. For each
                       lookaside list, its queue header address,
                       packet size, the number of packets, attempts,
                       fails, and deallocations are displayed. (If
                       pool checking is disabled, the attempts,
                       fails, and deallocations are not displayed.)
                       For the variable free list, its queue header
                       address, the number of packets and the
                       size of the smallest and largest packets
                       are displayed. /STATISTICS can be further
                       qualified by using either /NONPAGED, /BAP, or
                       /PAGED to display statistics for a specified
                       pool area. (Note that for paged pool, only
                       variable free list statistics are displayed.)

                       If /STATISTICS is specified without the ALL
                       keyword, only active lookaside lists are
                       displayed. Use /STATISTICS = ALL to display
                       all lookaside lists.
    /UNUSED            Displays only variable free packets and
                       lookaside list packets, not used packets.

 14. 2.10 - SHOW_PROCESS

    The SHOW PROCESS command has the following new qualifiers:

    Qualifier          Meaning

    /FID_ONLY          When used with /CHANNEL or /PROCESS_SECTION_
                       TABLE (/PST), the /FID_ONLY qualifier causes
                       SDA to not attempt to translate the FID
                       (File ID) to a file name when invoked with
                       ANALYZE/SYSTEM.
    /GSTX=index        When used with the /PAGE_TABLES qualifier, it
                       causes SDA to only display page table entries
                       for the specific global section.
    /IMAGES [= ALL]    By default, /IMAGES now only displays the
                       address of the image control block, the start
                       and end addresses of the image, the activation
                       code, the protected and shareable flags, the
                       image name, and the major and minor IDs of the
                       image. If /IMAGES = ALL qualifier is used, it
                       also displays the base, end, image offset, and
                       section type for installed resident images in
                       use by this process.
    /NEXT              Causes SDA to locate the next valid process
                       in the process list and select that process.
                       It there are no further valid processes in the
                       process list, SDA returns an error.
    /PST               This is a synonym for /PROCESS_SECTION_TABLE.

 14. 2.11 - SHOW_RESOURCE

    The SHOW RESOURCE command has the following new qualifier:

    Qualifier   Meaning

    /OWNED      Causes SDA to only display owned resources

 14. 2.12 - SHOW_SPINLOCKS

    The SHOW SPINLOCKS command has the following new qualifier:

    Qualifier     Meaning

    /COUNTS       Produces a display of Acquire, Spin, and Wait
                  counts for each spinlock

 14. 2.13 - SHOW_SUMMARY

    The SHOW SUMMARY command has the following new qualifier:

    Qualifier              Meaning

    /PROCESS_              Displays only processes with the specified
    NAME=process_name      process name. Wildcards can be used in
                           process_name, in which case SDA displays
                           all matching processes. The default
                           action is for SDA to display data for all
                           processes, regardless of process name.

  15 - SDA Commands for Spinlock Tracing

    The OpenVMS Version 7.3 software release includes the new
    Spinlock Tracing utility. With the implementation of this
    utility, you can now tell which spinlock is heavily used, and who
    is acquiring and releasing the contended spinlocks. The Spinlock
    Tracing utility allows a characterization of spinlock usage, as
    well as collection of performance data for a given spinlock on
    a per-CPU basis. The tracing ability can be enabled or disabled
    while the system is running, allowing the collection of spinlock
    data for a given period of time without system interruption.

    To use the Spinlock Tracing utility, SDA has implemented new
    commands and qualifiers. These SDA commands and qualifiers are
    described as follows:

 15.1 - SPL_LOAD

    This command loads the SPL$DEBUG execlet. This must be done prior
    to starting spinlock tracing. It has no qualifiers.

 15.2 - SPL_SHOW_COLLECT

    This command displays the data collected for a specific spinlock.
    It has no qualifiers.

 15.3 - SPL_SHOW_TRACE

    This command displays spinlock tracing information. Qualifiers
    for the SPL SHOW TRACE Command shows the qualifiers for this
    command.

    Table 5-3 Qualifiers for the SPL SHOW TRACE Command

    Qualifier          Meaning

    /SPINLOCK=spinlock Specifies the display of a specific
                       spinlock, for example, /SPINLOCK=LCKMGR or
                       /SPINLOCK=SCHED.
    /NOSPINLOCK        Specifies that no spinlock trace information
                       be displayed. If omitted, all spinlock trace
                       entries are decoded and displayed.
    /FORKLOCK=forklock Specifies the display of a specific
                       forklock, for example, /FORKLOCK=IOLOCK8 or
                       /FORKLOCK=IPL8.
    /NOFORKLOCK        Specifies that no forklock trace information
                       be displayed. If omitted, all fork trace
                       entries are decoded and displayed.
    /ACQUIRE           Displays any spinlock acquisitions.
    /NOACQUIRE         Ignores any spinlock acquisitions.
    /RELEASE           Displays any spinlock releases.
    /NORELEASE         Ignores any spinlock releases.
    /WAIT              Displays any spinwait operations.
    /NOWAIT            Ignores any spinwait operations.
    /FRKDSPTH          Displays all invocations of fork routines
                       within the fork dispatcher. This is the
                       default.
    /NOFRKDSPTH        Ignores all of the operations of the /FRKDSPTH
                       qualifier.
    /FRKEND            Displays all returns from fork routines within
                       the fork dispatcher. This is the default.
    /NOFRKEND          Ignores all operations of the /FRKEND
                       qualifier.
    /SUMMARY           Stops the entire trace buffer and displays a
                       summary of all spinlock and forklock activity.
                       It also displays the top ten callers.
    /CPU=n             Specifies the display of information for a
                       specific CPU only, for example, /CPU=5 or
                       /CPU=PRIMARY. By default, all trace entries
                       for all CPUs are displayed.
    /TOP=n             Displays a different number other than the
                       top ten callers or fork PC. By default, the
                       top ten are displayed. This qualifier is only
                       useful when you also specify the /SUMMARY
                       qualifier.

 15.4 - SPL_START_COLLECT

    This command accumulates information for a specific spinlock.
    Qualifiers for the SPL START COLLECT Command shows the qualifiers
    for this command:

    Table 5-4 Qualifiers for the SPL START COLLECT Command

    Qualifier          Meaning

    /SPINLOCK=spinlock Specifies the tracing of a specific
                       spinlock, for example, /SPINLOCK=LCKMGR or
                       /SPINLOCK=SCHED
    /ADDRESS=n         Specifies the tracing of a specific spinlock
                       by address

 15.5 - SPL_START_TRACE

    This command enables spinlock tracing. Qualifiers for the SPL
    START TRACE Command shows the qualifiers for this command.

    Table 5-5 Qualifiers for the SPL START TRACE Command

    Qualifier          Meaning

    /SPINLOCK=spinlock Specifies the tracing of a specific spinlock.
    /NOSPINLOCK        Disables spinlock tracing and does not collect
                       any spinlock data. If omitted, all spinlocks
                       are traced.
    /FORKLOCK=forklock Specifies the tracing of a specific
                       forklock, for example, /FORKLOCK=IOLOCK8 or
                       /FORKLOCK=IPL8.
    /NOFORKLOCK        Disables forklock tracing and does not collect
                       any forklock data. If omitted, all forks are
                       traced.
    /BUFFER=pages      Specifies the size of the trace buffer (in
                       Alpha page units). It defaults to 128 pages,
                       which is equivalent to 1MB, if omitted.
    /ACQUIRE           Traces any spinlock acquisitions. This is the
                       default.
    /NOACQUIRE         Ignores any spinlock acquisitions.
    /RELEASE           Traces any spinlock releases. This is the
                       default.
    /NORELEASE         Ignores any spinlock releases.
    /WAIT              Traces any spinwait operations. This is the
                       default.
    /NOWAIT            Ignores any spinwait operations.
    /FRKDSPTH          Traces all invocations of fork routines within
                       the fork dispatcher. This is the default.
    /NOFRKDSPTH        Ignores all of the /FRKDSPTH operations.
    /FRKEND            Traces all returns from fork routines within
                       the fork dispatcher. This is the default.
    /NOFRKEND          Ignores all of the operations of the /FRKEND
                       qualifier.
    /CPU=n             Specifies the tracing of a specific CPU
                       only, for example, /CPU=5 or /CPU=PRIMARY.
                       By default, all CPUs are traced.

 15.6 - SPL_STOP_COLLECT

    This command stops the spinlock collection, but does not stop
    spinlock tracing. It has no qualifiers.

 15.7 - SPL_STOP_TRACE

    This command disables spinlock tracing, but it does not
    deallocate the trace buffer. It has no qualifiers.

 15.8 - SPL_UNLOAD

    This command unloads and cleans up the SPL$DEBUG execlet. Tracing
    is automatically disabled and the trace buffer deallocated. It
    has no qualifiers.

    For more information, refer to the OpenVMS Alpha System Analysis
    Tools Manual.

  16 - System Services

    The following table describes new and updated system services for
    OpenVMS Version 7.3.

    For additional information, refer to the OpenVMS System Services
    Reference Manual.

    System Service      Documentation Update

    $CHECK_PRIVILEGES   The description of the 'prvadr' argument has
                        been updated.
    $CLRAST             This service has been documented for Version
                        7.3.
    $DCLEXH             The description has been updated, and a BASIC
                        example has been added.
    $DELETE_INTRUSION   This service has been updated in support of
                        Clusterwide Intrusion.
    $DEVICE_PATH_SCAN   This is a new service in support of
                        Multipath.
    $DISMOU             The following item codes have been added:
                        DMT$M_MINICOPY_REQUIRED, DMT$M_MINICOPY_
                        OPTIONAL, and DMT$M_FORCE.
    $EXPREG             The text for condition value, SS$_ILLPAGCNT,
                        has been updated.
    $GETDVI             The item codes, MT3_DENSITY and MT3_
                        SUPPORTED, have been added.

                        The item codes, DVI$_FC_NODE_NAME, DVI$_FC_
                        PORT_NAME, and DVI$_WWID, have been added.

                        The description for the DVI$_MOUNTCNT item
                        code has been updated.
    $GETJPI             The following item codes have been added:
                        JPI$_RMS_DFMBC, JPI$_RMS_DFMBFIDX, JPI$_
                        RMS_DFMBFREL, JPI$_RMS_DFMBFSDK, JPI$_RMS_
                        DFMBFSMT, JPI$_RMS_DFMBFSUR, JPI$_RMS_DFNBC,
                        JPI$_RMS_EXTEND_SIZE, JPI$_RMS_FILEPROT, and
                        JPI$_RMS_PROLOGUE.

                        The following item codes have been added for
                        Multithreads support: JPI$_INITIAL_THREAD_
                        PID, JPI$_KT_COUNT, JPI$_MULTITHREAD, and
                        JPI$_THREAD_INDEX.

                        The code example has been updated for VAX and
                        Alpha usage.
    $GETRMI             This is a new service in support of
                        Performance API.
    $GETQUI             The item code, QUI$V_JOB_REQUEUE, has been
                        added.
    $GETSYI             The item code, SYI$_SERIAL_NUMBER, has been
                        added.
    $IO_PERFORM         The 'porint' argument in the format section
                        has been changed to 'devdata, to match the C
                        prototype.
    $MGBLSC             The text for the 'inadr' argument has been
                        updated, and the SS$_INVARG condition value
                        has been added.
    $MOUNT              The following item codes have been added:
                        MNT$M_MINICOPY_OPTIONAL, MNT$M_MINICOPY_
                        REQUIRED, MNT$M_REQUIRE_MEMBERS, and MNT$M_
                        VERIFY_LABELS.
    $PERSONA_QUERY      Tables for Common, General, and NT item codes
                        have been added.
    $PROCESS_SCAN       The following item codes have been added for
                        Multithreads support: PSCAN$_KT_COUNT and
                        PSCAN$_MULTITHREAD.
    $REGISTRY           This service is now documented in the OpenVMS
                        System Services Reference Manual: GETUTC-Z
                        and online help.
    $SCAN_INTRUSION     This service has been updated in support of
                        Clusterwide Intrusion.
    $SCHED              The condition value, SS$_INCLASS, has been
                        added, and SS$_ILLSER has been deleted.
    $SET_DEVICE         This is a new service in support of
                        Multipath.
    $SET_SECURITY       The condition value, SS$_INVFILFOROP, has
                        been added.
    $SET_SYSTEM_EVENT   A new item code, SYSEVT$C_TDF_CHANGE, has
                        been added.
    $SHOW_INTRUSION     This service has been updated in support of
                        Clusterwide Intrusion.
    $WAKE               This service now accepts 64-bit addresses.

  17 - TCPIP Files for SDA READ

    Modules Containing Global Symbols and Data Structures Used by SDA
    shows the TCP/IP files that contain global symbols for the VAX
    and Alpha SDA READ commands.

    Table 5-6 Modules Containing Global Symbols and Data Structures
              Used by SDA

    File                    Contents

    TCPIP$NET_GLOBALS.STB   Contains data structure definitions for
                            TCP/IP Internet driver, execlet, and ACP
                            data structures
    TCPIP$NFS_GLOBALS.STB   Contains data structure definitions for
                            TCP/IP NFS server
    TCPIP$PROXY_            Contains data structure definitions for
    GLOBALS.STB             TCP/IP proxy execlet
    TCPIP$PWIP_GLOBALS.STB  Contains data structure definitions
                            for TCP/IP PWIP driver, and ACP data
                            structures
    TCPIP$TN_GLOBALS.STB    Contains data structure definitions for
                            TCP/IP TELNET/RLOGIN server driver data
                            structures

    These files are only available if TCP/IP services has
    been installed. They are found in SYS$SYSTEM, and are not
    automatically read in when you issue a READ/EXEC command.

    Modules Defining Global Locations Within the Executive Image
    shows the TCP/IP files that define global locations within the
    Executive Image for the VAX SDA command.

    Table 5-7 Modules Defining Global Locations Within the Executive
              Image

    File                    Contents

    TCPIP$BGDRIVER.STB      TCP/IP Internet driver
    TCPIP$INETACP.STB       TCP/IP Internet ACP
    TCPIP$INTERNET_         TCP/IP Internet execlet
    SERVICES.STB
    TCPIP$NFS_SERVICES.STB  Symbols for the TCP/IP NFS server
    TCPIP$PROXY_            Symbols for the TCP/IP proxy execlet
    SERVICES.STB
    TCPIP$PWIPACP.STB       TCP/IP PWIP ACP
    TCPIP$PWIPDRIVER.STB    TCP/IP PWIP driver
    TCPIP$TNDRIVER.STB      TCP/IP TELNET/RLOGIN server driver

    These files are only available if TCP/IP services has
    been installed. They are found in SYS$SYSTEM, and are not
    automatically read in when you issue a READ/EXEC command.

    For more detailed information, refer to the OpenVMS VAX System
    Dump Analyzer Utility Manual and the OpenVMS Alpha System
    Analysis Tools Manual.

  18 - Visual Threads Version 2.1 (Alpha)

    Visual Threads is a unique tool that lets you debug and
    analyze multithreaded applications. You can use Visual Threads
    to automatically diagnose common problems associated with
    multithreading including deadlock, mutex, and thread usage
    errors. Also, you can use Visual Threads to monitor the thread-
    related performance of an application, helping you to identify
    bottlenecks or locking granularity problems. Visual Threads
    helps you identify problem areas in an application even if the
    application does not show specific symptoms.

    Visual Threads includes the following features:

    o  Collects detailed information about significant thread-related
       state changes ("events").

    o  Analyzes common threading problems automatically based on
       predefined rules applied to the event stream.

    o  Rule customization for application-specific parameters and
       actions.

    o  Automatic statistics gathering, by sampling the event stream.

    o  Categories of analysis: data protection errors (race
       conditions), deadlocks, programming errors, lock activity,
       performance.

    o  Graphical visualization of the frequency of thread-related
       events and thread state, snapshots of historical program
       state, and object-specific graphs for each collected
       statistic.

    o  Lock activity profiling to reveal where various types of lock
       activity are occurring in your application, including: Number
       of Locks, Contended Locks, Locked Time, and Wait Time. Lock
       activity is collected and displayed for individual locks.

    o  Summarizes the program run and provides reports.

    o  Threads Snapshot view displays the historical state of threads
       represented at specific times in the main thread overview
       graph.

    o  Find and Filter support in the Event Window to allow you to
       quickly locate particular events.

    o  CPU Utilization Window shows the CPU percentage used by each
       thread.

    o  Thread Transitions Window depicts each state change for a
       detailed view.

    For more information about these features, refer to the Visual
    Threads product documentation, which is available on the OpenVMS
    Alpha CD-ROM in directory [VISUAL_THREADS_021], or by using the
    online Help system.
  Close     HLB-list     TLB-list     Help  

[legal] [privacy] [GNU] [policy] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.