[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

HP OpenVMS System Analysis Tools Manual


Previous Contents Index


Part 4
OpenVMS System Service Logging Utility

Part IV describes the System Service Logging utility. It explains how to:
  • Start logging
  • Stop logging
  • Display logged information


Chapter 14
System Service Logging

This chapter presents an overview of the System Service Logging utility and describes the System Service Logging commands.

14.1 Overview

System service logging (SSLOG) is used to record system service activity in a process. Its primary purpose is to troubleshoot process failure or misbehavior. This utility is available on OpenVMS Alpha and Integrity server platforms.

Once enabled, the SSLOG mechanism records information about system services requested by code running in the context of that process. The system services logged are:

  • Executive and kernel-mode services
  • Within privileged shareable image services
  • Within the OpenVMS executive
SSLOG does not log the mode of caller services.

SSLOG information is initially recorded in process space buffers. When a buffer is full, it is written to a disk file in the process's default disk and directory. After the disk file is closed, you can analyze it with the ANALYZE/SSLOG utility.

Recorded Information

SSLOG records the following information for each service:

  • Service identification
  • Location of service request - image and offset
  • Access mode of requestor
  • Service arguments (passed by value; only the addresses of arguments passed by reference)
  • Timestamp
  • Completion status
  • Kernel thread, POSIX thread (PTHREAD), and CPU identifiers

The information is recorded as follows:

  • It is initially recorded in a ring of P2 space buffers with each process having its own P2 space buffers.
  • A full buffer is written to a disk file. By default, the file is SSLOG.DAT in the current default disk and directory. However, if the logical name SSLOG is defined, its equivalence string is used to form the log file name.

14.2 Enabling Logging

To enable any system service logging, check that the dynamic system parameter SYSSER_LOGGING is 1. If not, set it to a value of 1. Once logging is enabled, you can start system service logging for a particular process by DCL command, as shown in the following example.


$ SET PROCESS /SSLOG=(STATE=ON,COUNT=4)

By default, execution of this command affects the current process. To target another process, use the /ID qualifier or specify the process by name.

Use the COUNT keyword to specify the number of P2 space buffers to allocate for the process you are logging.

Buffers are pageable and therefore are charged against PGFLQUOTA. They are not deallocated until the process is deleted.

For additional information on this command, see the full description of the SET PROCESS/SSLOG command.

14.3 Disabling Logging

There are two ways to disable logging, depending on whether you want the option to enable logging again on the same process.

  • If you might want to re-enable logging on this process, use the following command to disable logging:


    $ SET PROCESS /SSLOG=(STATE=OFF)
    

    You can then re-enable logging later by executing the same command with STATE=ON.
  • If you want to permanently end logging on this process, use the following command to close and truncate the log file:


    $ SET PROCESS /SSLOG=(STATE=UNLOAD)
    

    After you execute this command, you cannot enable logging on this process again.

14.4 Displaying Logged Information

You display logged information with the DCL command ANALYZE/SSLOG filename , where the default filename is SSLOG.DAT. For additional information on this command and examples, see the command ANALYZE/SSLOG .


ANALYZE/SSLOG

Displays the collected data.

Format

ANALYZE/SSLOG [/BRIEF | /FULL | /NORMAL | /STATISTICS] [/OUTPUT=filename] [/SELECT=(option[,...])] [/WIDE] [filespec]


Parameters

filespec

Optional name of the log file to be analyzed. The default filename is SSLOG.DAT.

Qualifiers

/BRIEF

Displays abbreviated logged information.

/FULL

Displays logged information, error status messages and sequence numbers.

/NORMAL (Default)

Displays basic logged information.

/STATISTICS[=BY_STATUS]

Displays statistics on system services usage; accepts BY_STATUS keyword. Outputs a summary of the services logged with a breakdown by access mode. Output is ordered with the most frequently requested services first. If BY_STATUS is included, the summary is further separated by completion status. Output is displayed up to 132 columns wide.

/OUTPUT=filename

Identifies the output file for storing the results of the log analysis. An asterisk (*) and percent sign (%) are not allowed as wildcards in the file specification. There is no default file type or filename. If you omit the qualifier, results are output to the current SYS$OUTPUT device.

/SELECT=([option[,...]])

Selects entries based on your choice of options. You must specify at least one of the following:
Keyword Meaning
ACCESS_MODE= mode Selects data by access mode.
IMAGE= image-name Selects data by image name.
STATUS[= n] Selects data by status. n is optional. /SELECT=STATUS displays all entries that have an error status.
SYSSER= service-name Selects data by service name.

/WIDE

Provides for a display of logged information up to 132 columns wide.

Description

The ANALYZE/SSLOG command displays the collected logged data. Note that a system service log must be analyzed on the same platform type as the one on which it was created; for example, a log created on an OpenVMS Alpha system must be analyzed on an OpenVMS Alpha system.


Examples

The following examples demonstrate usage of the ANALYZE/SSLOG command.

#1

$ ANALYZE /SSLOG /BRIEF
START   1.1     00000414 HERE               IA64       !25-MAY-2004 14:55:17.77 
        NAK   ::SYSTEM                             4  65024 
 
SYS$EXIT_INT                            sts: --------  acmode: U   !14:55:17.80 
       image:                         IMAGE_MANAGEMENT+00047ed0  argct: 01 
SYS$RMSRUNDWN                           sts: 00010001  acmode: S   !14:55:17.80 
       image:                                      DCL+00070370  argct: 02 
SYS$DCLAST                              sts: 00000001  acmode: E   !14:55:17.80 
       image:                                      RMS+000e5840  argct: 03 
SYS$RMS_CLOSE                           sts: 00010001  acmode: E   !14:55:17.80 
       image:                                      RMS+000d66c0  argct: 03 
SYS$SETEF                               sts: 00000009  acmode: E   !14:55:17.80 
       image:                                      RMS+00125df0  argct: 01 
SYS$RMS_CLOSE                           sts: 00010001  acmode: E   !14:55:17.80 
       image:                                      RMS+000d66c0  argct: 03 
SYS$SETEF                               sts: 00000009  acmode: E   !14:55:17.80 
       image:                                      RMS+00125df0  argct: 01 
SYS$ERNDWN                              sts: 00000001  acmode: S   !14:55:17.80 
       image:                         IMAGE_MANAGEMENT+000274d0  argct: 01 
SYS$CMKRNL                              sts: 8318ae00  acmode: E   !14:55:17.80 
       image:                         IMAGE_MANAGEMENT+00027890  argct: 02 
[...] 
      

The above example shows abbreviated SSLOG output.

The first entry displayed is a START message that describes the enabling of system service logging. The major and minor version numbers associated with this log file are both 1. Logging was initiated by process ID 0000041416 whose username was SYSTEM. This log file is from an OpenVMS Integrity server platform. The timestamp shows when logging was started. The process whose services were logged was named HERE and ran on node NAK. Logging was done into four buffers of 65024 bytes each.

Each subsequent entry describes a system service request. The leftmost column is the service name. The next item displayed is the hexadecimal completion status from that service request. If the status is displayed as "--------", one of the following circumstances occurred:

  • The buffer filled and was written to disk before the service completed.
  • The service returned to the system service dispatcher at an interrupt priority level (IPL) above 2. Because the process space buffers are pageable and page faults are not allowed above IPL 2, completion status cannot be logged when a service returns above IPL 2.
The next item displayed is the access mode from which the service was requested, followed by the time at which the service was requested. The next line shows the image and offset within the image of the service request and the number of arguments with which the service was requested. Service arguments are not displayed when you enter the command ANALYZE/SSLOG/BRIEF.
#2

$ ANALYZE /SSLOG /FULL
      


START  version: 1.2 process: 0000042f                  ! 5-JUN-2006 14:03:20.07 
       username: SYSTEM                           node: XK150S  platform: ALPHA 
       buffer count: 6    size: 65024   start_flags:  00000003 
 
SYS$SETEXV                          acmode: U                      !14:03:20.20 
       sts: %SYSTEM-S-NORMAL, normal successful completion                    
       image:                   PROCESS_MANAGEMENT_MON+00008f3c  argct: 04 
       arg  1:0000000000000002  2:ffffffff818e8510  3:0000000000000000 
       arg  4:0000000000000000 
       entry number: 00000002    number at completion: 00000002 
    cpu id:   000   kernel thread ID:  0000  Pthread ID:                0 
[...] 
SYS$GETDVI                          acmode: U                      !14:03:20.28 
       sts: %SYSTEM-S-NORMAL, normal successful completion                    
       image:                        SYSTEM_PRIMITIVES+00054dec  argct: 08 
       arg  1:0000000000000000  2:0000000000000000  3:000000000004000c 
       arg  4:000000007ae59e10  5:000000007ae59e08  6:0000000000000000 
       arg  7:0000000000000000  8:0000000000000000 
       entry number: 00000193    number at completion: 00000193 
    cpu id:   000   kernel thread ID:  0000  Pthread ID:                1 
 
MOUNTSHR                                :00010000    acmode: U     !14:03:20.28 
       sts: %SYSTEM-S-NORMAL, normal successful completion                    
       image:                                 MOUNTSHR+0009008c  argct: 02 
       arg  1:0000000000000003  2:0000000000000000 
       entry number: 00000194    number at completion: 00000195 
     cpu id:   000   kernel thread ID:  0000  Pthread ID:                1 
 
SYS$SETPRT                          acmode: E                      !14:03:20.28 
       sts: %SYSTEM-S-NORMAL, normal successful completion                    
       image:                                 MOUNTSHR+00091d94  argct: 05 
       arg  1:000000007ff8bf88  2:0000000000000000  3:0000000000000000 
       arg  4:0000000000000004  5:0000000000000000 
       entry number: 00000195    number at completion: 00000195 
    cpu id:   000   kernel thread ID:  0000  Pthread ID:                1 
 
SYS$SETSFM                          acmode: U                      !14:03:20.28 
       sts: %SYSTEM-S-NORMAL, normal successful completion                    
       image:                                 MOUNTSHR+000900a8  argct: 01 
       arg  1:0000000000000000 
       entry number: 00000196    number at completion: 00000196 
    cpu id:   000   kernel thread ID:  0000  Pthread ID:                1 
 
MOUNTSHR                                :00010000    acmode: U     !14:03:20.28 
       sts: %SYSTEM-S-NORMAL, normal successful completion                    
       image:                                 MOUNTSHR+000901ac  argct: 02 
       arg  1:0000000000000001  2:000000007ae5a080 
       entry number: 00000197    number at completion: 0000019B 
     cpu id:   000   kernel thread ID:  0000  Pthread ID:                1 
 
[...] 

The above example shows full SSLOG output.

In the /FULL display, the START entry also shows the flags with which logging was initiated:

  • Bit 0, when set, means that service arguments were logged.
  • Bit 1, which is always set, means that the P2 space buffers are being written to a file.

The /FULL display shows the arguments for each system service request, as well as its entry number, and interprets the completion status. The display includes kernel thread and POSIX thread identifiers in addition to the identifier of the CPU on which the system service began.

The system service name is not available for services implemented in privileged shareable images. Instead the image name and an internally generated service number are displayed.

When logging is initiated for a particular service, an entry sequence number is associated with that entry. The sequence number is incremented with each attempt to log a system service. The /FULL display shows the sequence number associated with each service request and the number current at the time the service completed. If the service requests no other loggable system services, the two numbers are identical; otherwise, the two numbers differ.

Note that the number at completion is 0 for a service whose completion status could not be logged.

In this example, the number when the second MOUNTSHR system service request is issued is 19716, and the number at completion is 19B16. From this you can infer that four other services were requested as part of processing MOUNTSHR system service request, namely, the services whose entry numbers are 19816 through 19B16.

#3

$ ANALYZE /SSLOG /BRIEF /WIDE
      


 
START   1.2    0000042e  XK150S ::USER              ALPHA  2 65024  ! 5-JUN-2006 10:52:51.95 
service                           status     mode imagename+offset                       time 
-------                           ------     ---- ----------------                       ---- 
SYS$SETEXV                        00000001   U       PROCESS_MANAGEMENT_MON+00008f3c    !10:52:52.06 
SYS$SETPRT                        00000001   U       PROCESS_MANAGEMENT_MON+0005274c    !10:52:52.06 
SYS$SETPRT                        00000024   U       PROCESS_MANAGEMENT_MON+0005274c    !10:52:52.06 
SYS$SETPRT                        00000024   U       PROCESS_MANAGEMENT_MON+0005274c    !10:52:52.06 
SYS$IMGACT                        00000001   U             IMAGE_MANAGEMENT+000163b8    !10:52:52.06 
SYS$CMKRNL                        00000001   U                     LOGINOUT+00030174    !10:52:52.06 
SYS$GETJPI                        00000001   U       PROCESS_MANAGEMENT_MON+000527e4    !10:52:52.06 
SYS$GETDVI                        00000001   U            SYSTEM_PRIMITIVES+00054dec    !10:52:52.06 
SYS$SETPRV                        00000001   U                     LOGINOUT+0003323c    !10:52:52.06 
SYS$SETPRV                        00000001   U                     LOGINOUT+00033278    !10:52:52.06 
SYS$PERSONA_EXPORT_ARB            00000001   K       PROCESS_MANAGEMENT_MON+0004e9e8    !10:52:52.06 
SYS$TRNLNM                        000001bc   U                     LOGINOUT+000365f8    !10:52:52.06 
SYS$SETPRV                        00000001   U                     LOGINOUT+00030a08    !10:52:52.06 
[...] 
SYS$ASSIGN_LOCAL                  00000154   E              IO_ROUTINES_MON+0001a544    !10:52:52.14 
SYS$CMKRNL                        8180e100   E                     MOUNTSHR+000964a8    !10:52:52.14 
missing entry numbers: curr:1082 prev: 721 
 
SYS$SYNCH_INT                     --------   S       PROCESS_MANAGEMENT_MON+00035634    !10:52:52.15 
SYS$SYNCH_INT                     --------   S       PROCESS_MANAGEMENT_MON+00035634    !10:52:52.15 
SYS$RMS_FLUSH                     00018001   S                          RMS+00056808    !10:53:52.10 
SYS$QIO                           00000001   E                          RMS+000742bc    !10:53:52.10 
[...] 

The above example shows abbreviated SSLOG output in a wide format.

Sometimes system services are requested too quickly for logging to keep up. When a buffer fills, it is written asynchronously to the log file. If there are only two buffers, as in this example, the second can fill while the first is still being written and thus not yet available. In that case, entries are lost.

Because each attempt to log a service request has an entry number associated with it, the ANALYZE/SSLOG utility can detect gaps in entry numbers. In this example, the line that begins "missing entry numbers" indicates a gap of 361 entries.

#4

$ ANALYZE /SSLOG /NORMAL
      


START  version: 1.1 process: 00000414 HERE             !25-MAY-2004 14:55:17.77 
       username: SYSTEM                           node: NAK     platform: IA64 
 
     buffer count: 4    size: 65024   start_flags:  00000003 
SYS$EXIT_INT                            sts: --------  acmode: U   !14:55:17.80 
       image:                         IMAGE_MANAGEMENT+00047ed0  argct: 01 
       arg  1:0000000010000001 
        entry number: 00000002    number at completion: 00000000 
 
SYS$RMSRUNDWN                           sts: 00010001  acmode: S   !14:55:17.80 
       image:                                      DCL+00070370  argct: 02 
       arg  1:000000007ffabf14  2:0000000000000000 
        entry number: 00000003    number at completion: 00000008 
 
SYS$DCLAST                              sts: 00000001  acmode: E   !14:55:17.80 
       image:                                      RMS+000e5840  argct: 03 
       arg  1:ffffffff832f70b0  2:0000000000000002  3:0000000000000000 
        entry number: 00000004    number at completion: 00000004 
 
SYS$RMS_CLOSE                           sts: 00010001  acmode: E   !14:55:17.80 
       image:                                      RMS+000d66c0  argct: 03 
       arg  1:000000007ff67e20  2:0000000000000000  3:0000000000000000 
        entry number: 00000005    number at completion: 00000006 
 
SYS$SETEF                               sts: 00000009  acmode: E   !14:55:17.80 
       image:                                      RMS+00125df0  argct: 01 
       arg  1:000000000000001e 
        entry number: 00000006    number at completion: 00000006 
 
SYS$RMS_CLOSE                           sts: 00010001  acmode: E   !14:55:17.80 
       image:                                      RMS+000d66c0  argct: 03 
       arg  1:000000007ff67e20  2:0000000000000000  3:0000000000000000 
        entry number: 00000007    number at completion: 00000008 
 
[...] 

The above example shows normal SSLOG output in narrow format.

The difference between the /NORMAL and /FULL displays is that the service completion status is interpreted in a /FULL display.

#5

$ ANALYZE /SSLOG /WIDE
      


START  version: 1.1 process: 20200224 HERE2 !28-APR-2004 14:17:58.54 
       username: USER                       node: NODEAZ  platform: ALPHA 
 
SYS$EXIT_INT                      sts: --------  acmode: U  image:    IMAGE_MANAGEMENT+00010838    !14:17:58.82 
argct:01  1:0000000010000001 
 
 
SYS$RMSRUNDWN                     sts: 00010001  acmode: S  image:             DCL.EXE+000804b0    !14:17:58.82 
argct:02  1:000000007ff9cb34  2:0000000000000000 
 
 
 
SYS$DCLAST                        sts: 00000001  acmode: E  image:   RMS+0004e200    !14:17:58.82 
argct:03  1:00000000811338b0  2:0000000000000002  3:0000000000000000 
 
 
 
SYS$RMS_CLOSE                     sts: 00010001  acmode: E  image:   RMS+000484b8    !14:17:58.82 
argct:03  1:000000007ff8beb0  2:0000000000000000  3:0000000000000000 
 
 
 
SYS$SETEF                         sts: 00000009  acmode: E  image:   RMS+0005fe70    !14:17:58.82 
argct:01  1:000000000000001e 
 
 
 
SYS$RMS_CLOSE                     sts: 00010001  acmode: E  image:   RMS+000484b8    !14:17:58.82 
argct:03  1:000000007ff8beb0  2:0000000000000000  3:0000000000000000 
 
 
 
SYS$SETEF                         sts: 00000009  acmode: E  image:   RMS+0005fe70    !14:17:58.82 
argct:01  1:000000000000001e 
[...] 

The above example shows normal (default) SSLOG output in a wide format.

#6

$ ANALYZE /SSLOG /WIDE /FULL
      


 
START  version: 1.1 process: 00000415 HERE                          !11-MAY-2006 10:41:38.82 
       username: SYSTEM                           node: NAK     platform: IA64 
 
SYS$EXIT_INT                  sts: --------  acmode: U  image:          IMAGE_MANAGEMENT+00047600    !10:41:38.85 
argct:01  1:0000000010000001         entry number: 00000002    number at completion: 00000000 
    cpu id:   000   kernel thread ID:  0000  Pthread ID:                0 
 
SYS$RMSRUNDWN                       acmode: S   image:           DCL+0006fdb0                !10:41:38.85 
       sts: %RMS-S-NORMAL, normal successful completion 
argct:02  1:000000007ffabf14  2:0000000000000000 
         entry number: 00000003    number at completion: 00000008 
    cpu id:   000   kernel thread ID:  0000  Pthread ID:                0 
 
SYS$DCLAST                          acmode: E   image:           RMS+000e3ca0                !10:41:38.85 
       sts: %SYSTEM-S-NORMAL, normal successful completion 
argct:03  1:ffffffff842f68b0  2:0000000000000002  3:0000000000000000 
         entry number: 00000004    number at completion: 00000004 
    cpu id:   000   kernel thread ID:  0000  Pthread ID:                0 
 
SYS$RMS_CLOSE                       acmode: E   image:           RMS+000d4d90                !10:41:38.85 
       sts: %RMS-S-NORMAL, normal successful completion 
argct:03  1:000000007ff67e20  2:0000000000000000  3:0000000000000000 
         entry number: 00000005    number at completion: 00000006 
    cpu id:   000   kernel thread ID:  0000  Pthread ID:                0 
 
SYS$SETEF                           acmode: E   image:           RMS+00123740                !10:41:38.85 
       sts: %SYSTEM-S-ACCVIO, access violation, reason mask=!XB, virtual address=!XH, PC=!XH, PS=!XL 
argct:01  1:000000000000001e 
         entry number: 00000006    number at completion: 00000006 
    cpu id:   000   kernel thread ID:  0000  Pthread ID:                0 
 
SYS$RMS_CLOSE                       acmode: E   image:           RMS+000d4d90                !10:41:38.85 
       sts: %RMS-S-NORMAL, normal successful completion 
argct:03  1:000000007ff67e20  2:0000000000000000  3:0000000000000000 
         entry number: 00000007    number at completion: 00000008 
    cpu id:   000   kernel thread ID:  0000  Pthread ID:                0 
) 

The above example shows full SSLOG output in a wide format.

#7

$ ANALYZE /SSLOG /WIDE /SELECT=(IMAGE=DCL,SYSSER=SYS$IMGACT)-
_$ /OUTPUT=SSL_SEL2.LOG SSLOG.DAT
      


START  version: 1.1 process: 2020041b SYSTEM                                      !30-AUG-2004 18:30:28.79 
       username: SYSTEM                           node: WFGLX4  platform: ALPHA 
 
SYS$IMGACT                    sts: 00000001  acmode: S  image:                 DCL+0007eb40    !18:30:44.26 
argct:08 1:000000007ff9cd58 2:000000007ff9cd50 3:000000007ffcf800 4:0000000000000000 
         5:0000000000000000 6:0000000000000000 7:0000000000000000 8:0000000000000000 
        entry number: 0000002E    number at completion: 000000B7 
 
SYS$IMGACT                    sts: 00000001  acmode: S  image:                 DCL+0007eb40    !18:30:49.81 
argct:08 1:000000007ff9cd58 2:000000007ff9cd50 3:000000007ffcf800 4:0000000000000000 
         5:0000000000000000 6:0000000000000000 7:0000000000000000 8:0000000000000000 
        entry number: 00000195    number at completion: 00000203 
 
SYS$IMGACT                    sts: 00000001  acmode: S  image:                 DCL+0007eb40    !18:31:06.19 
argct:08 1:000000007ff9cd58 2:000000007ff9cd50 3:000000007ffcf800 4:0000000000000000 
         5:0000000000000000 6:0000000000000000 7:0000000000000000 8:0000000000000000 
        entry number: 000003FB    number at completion: 0000046A 
 
STOP                                                                              !30-AUG-2004 18:31:06.19 

The above example selects only those entries that describe SYS$IMGACT requests made from DCL and writes the analysis to file SSL_SEL2.LOG. (Parts of the display have been moved left to fit within manual page boundaries.)

#8

$ ANALYZE /SSLOG /STATISTICS /OUTPUT=SSL_STAT.LOG SSLOG.DAT
      


START  version: 1.1 process: 2020041b SYSTEM           !30-AUG-2004 18:30:28.79 
       username: SYSTEM                           node: WFGLX4  platform: ALPHA 
 
     buffer count: 2    size: 65024   start_flags:  00000003 
 
Service                              Count      User       Super      Exec       Kernel     Rate/sec 
--------                             ------     ------     ------     ------     ------     -------- 
SYS$TRNLNM                              168          4          0        164          0          4.5 
SYS$RMS_SEARCH                          129        129          0          0          0          3.4 
SYS$QIO                                 121          0          0         94         27          3.2 
SYS$SYNCH_INT                            92         88          4          0          0          2.5 
SYS$RMS_PUT                              85         85          0          0          0          2.3 
SYS$CMKRNL                               55          0          0         55          0          1.5 
SYS$SETPRT                               51         36          0         15          0          1.4 
SYS$DASSGN                               49          0          0         24         25          1.3 
SYS$GETDVI                               46          2          0         44          0          1.2 
SYS$ASSIGN_LOCAL                         44          0          0         44          0          1.2 
SYS$MGBLSC                               40          0          0         40          0          1.1 
SYS$CRMPSC                               27          0          0         27          0          0.7 
SYS$GETJPI                               22         22          0          0          0          0.6 
SYS$RMS_OPEN                             21          0          0         21          0          0.6 
SYS$DEQ                                  19          0          0          8         11          0.5 
SYS$IMGACT                               18         15          3          0          0          0.5 
SYS$CRETVA                               16          0          0         16          0          0.4 
SYS$ENQ                                  15          0          0          8          7          0.4 
SYS$SETRWM                               12          0          0          6          6          0.3 
SYS$DELTVA                               12          0          0          0         12          0.3 
SYS$PERSONA_ASSUME                       12          0          0         12          0          0.3 
SYS$EXPREG                               12          9          0          3          0          0.3 
SYS$RMS_CLOSE                             7          1          0          6          0          0.2 
SYS$CLRCLUEVT                             6          0          0          0          6          0.2 
SYS$SETEF                                 6          0          0          6          0          0.2 
SYS$DACEFC                                6          0          0          0          6          0.2 
SYS$PERSONA_EXTENSION_LOOKUP              6          0          0          0          6          0.2 
SYS$GETSYI                                5          5          0          0          0          0.1 
SYS$DCLAST                                5          0          0          5          0          0.1 
SYS$RMSRUNDWN                             3          0          3          0          0          0.1 
SYS$ERNDWN                                3          0          3          0          0          0.1 
SYS$SETEXV                                3          3          0          0          0          0.1 
SYS$KRNDWN                                3          0          3          0          0          0.1 
SYS$EXIT_INT                              3          3          0          0          0          0.1 
SYS$RMS_GET                               3          0          3          0          0          0.1 
SYS$DCLEXH                                3          0          3          0          0          0.1 
SYS$PERSONA_EXPORT_ARB                    3          0          0          0          3          0.1 
SYS$DALLOC                                3          0          0          0          3          0.1 
SYS$SETPFM                                3          0          0          0          3          0.1 
SYS$PERSONA_CLONE                         2          0          0          2          0          0.1 
SYS$PERSONA_DELETE                        2          0          0          2          0          0.1 
SYS$RMS_CREATE                            2          2          0          0          0          0.1 
SYS$RMS_CONNECT                           2          2          0          0          0          0.1 
SYS$SET_PROCESS_PROPERTIESW               1          1          0          0          0          0.0 
SYS$RMS_PARSE                             1          1          0          0          0          0.0 
SYS$PROCESS_SCAN                          1          1          0          0          0          0.0 
SYS$SETPRV                                1          1          0          0          0          0.0 

The above example shows the use of the /STATISTICS qualifier. The output lists the most frequently requested service first. Each entry shows the total number of requests for that service, a breakdown by access mode, and the rate per second.

Note that only OpenVMS executive services are listed in a /STATISTICS display; services in privileged shareable images are omitted.

#9

$ ANALYZE /SSLOG /STATISTICS=BY_STATUS 
      


 
START  version: 1.1 process: 2020041b SYSTEM           !30-AUG-2004 18:30:28.79 
       username: SYSTEM                           node: WFGLX4  platform: ALPHA 
 
     buffer count: 2    size: 65024   start_flags:  00000003 
 
Service                              Count      User       Super      Exec       Kernel     Status    Rate/sec 
--------                             ------     ------     ------     ------     ------     -------   -------- 
SYS$TRNLNM                              168          4          0        164          0       All          4.5 
                                         46          0          0         46          0     000001BC       1.2 
                                        122          4          0        118          0     00000001       3.3 
SYS$RMS_SEARCH                          129        129          0          0          0       All          3.4 
                                          2          2          0          0          0     00018001       0.1 
                                        126        126          0          0          0     00010001       3.4 
                                          1          1          0          0          0     000182CA       0.0 
SYS$QIO                                 121          0          0         94         27       All          3.2 
                                          4          0          0          0          4     0000026C       0.1 
                                        117          0          0         94         23     00000001       3.1 
SYS$SYNCH_INT                            92         88          4          0          0       All          2.5 
                                         92         88          4          0          0     00000000       2.5 
SYS$RMS_PUT                              85         85          0          0          0       All          2.3 
                                         84         84          0          0          0     00018001       2.2 
                                          1          1          0          0          0     00000000       0.0 
[...] 

The above example shows the use of /STATISTICS = BY_STATUS. Similar to the previous example, it also has an additional line for each status returned by a system service.


RUN/SSLOG_ENABLE

Creates a process with system service logging enabled.

Requires CMEXEC, CMKRNL, or SETPRV privilege to log argument values. The SYSGEN parameter SYSSER_LOGGING must be enabled or the command will fail.

Refer to online help or the HP OpenVMS DCL Dictionary for other qualifiers that can be used with the RUN command when creating a process.


Format

RUN /SSLOG_ENABLE[=(COUNT=n [,FLAGS=[NO]ARG])]


Parameters

COUNT=n

Specifies how many P2-space buffers to log. The default is 2.

FLAGS=[NO]ARG

Specifies whether or not service argument values are to be logged. The default is ARG, which requires privileges. If the value is ARG but you lack privilege, no argument values are logged.

If both COUNT and FLAGS are specified, they must be separated by a comma. If only one is specified, the parentheses may be omitted.


Qualifiers

None.

Description

The RUN/SSLOG_ENABLE command creates a process with system service logging enabled.

When enabling SSLOG for a process, you can specify the number of buffers to be used for logging. Buffers are allocated in P2 space and are charged against the process's paging file quota. Each buffer is 65,02410 bytes or FE0016 bytes. The buffer space remains allocated and the quota charged until the process is deleted.

Before you delete the process, stop the logging and close the log file by executing the SET PROCESS/SSLOG=STATE=UNLOAD command. The log file does not close automatically.

To analyze the log file, use the DCL command ANALYZE/SSLOG.


Examples

#1

$ RUN /SSLOG_ENABLE SSLOG_TEST.EXE
      

This command creates a new process to run the image SSLOG_TEST.EXE and log the results.

#2

$ RUN /SSLOG_ENABLE SSLOG_TEST.EXE /PROCESS_NAME=SUBA
      

This command creates a new process named SUBA to run the image SSLOG_TEST.EXE and log the results.


SET PROCESS/SSLOG

Enables or disables system service logging on the current process or on a specified process.

Requires GROUP privilege to change other processes in your group. Requires WORLD privilege to change processes outside your group. Requires CMEXEC, CMKRNL, or SETPRV privilege to log argument values. SYSGEN parameter SYSSER_LOGGING must be enabled or the command will fail.

Refer to online help or the HP OpenVMS DCL Dictionary for other SET PROCESS command qualifiers.


Format

SET PROCESS/SSLOG=(STATE={ON|OFF|UNLOAD} [,COUNT=n] [,FLAGS=[NO]ARGUMENTS]) [/ID=id_number] [process-name]


Parameters

process-name

Specifies the name of the process for which logging is to be enabled or disabled.

COUNT=n

Specifies how many P2-space buffers to log. The default is 2.

FLAGS=[NO]ARG

Specifies whether or not service argument values are to be logged. The default is ARG, which requires privileges. If the value is ARG but you lack privilege, no argument values are logged.

STATE=state

Turns system service logging on or off. Possible states are:
ON Enables system service logging.
OFF Disables (turns off) system service logging; logging can still be reenabled.
UNLOAD Stops logging and closes the log file, which is named SSLOG.DAT by default.

Qualifier

/IDENTIFICATION=identification_number

Specify to target a specific process by number.

Description

The SET PROCESS/SSLOG command:
  • Enables or disables system service logging
  • Opens the log file used to log data
  • Can specify a specific process by name or ID (identification number)
  • Can stop logging and close the file of logged data

When enabling SSLOG for a process, you specify the number of buffers to be used for logging. The buffers are allocated in P2 space and are charged against the process's paging file quota. Each buffer is 65,02410 bytes or FE0016 bytes. The buffer space remains allocated and the quota charged until the process is deleted.

Between the time when SSLOG is first enabled and when the log file is closed, logging can be stopped and resumed.

Before you delete the process, stop the logging and close the log file. The log file does not close automatically.

To analyze the log file, use the DCL command ANALYZE/SSLOG.


Examples

#1

$ SET PROCESS /SSLOG=(STATE=ON,COUNT=4)
      

This command turns on system service logging with four P2 space buffers, each having a size of FE0016 bytes. If the process has SETPRV, CMKRNL, or CMEXEC privilege, argument values are logged.

#2

$ SET PROCESS /SSLOG=(STATE=UNLOAD)
      

This command stops logging and closes the log file.


Index Contents