Adabas SMF Records

On z/OS, Adabas supports the recording of database activity via SMF records when ADARUN parameter SMF=YES is specified.

SMF recording is supported on z/OS only.

All Adabas SMF records have a common structure, with some sections appearing in all records and others generated according to specific events and parameters specified through ADARUN or operator commands. The ASMFREC macro provides mapping DSECTs for all parts of the SMF record.

This document covers the following topics:


Record Structure

Adabas follows the modern convention for SMF record formats. A single record has:

  • A standard IBM-type header

  • A self-defining section that describes a variable number of detail sections

  • A product ID detail section

  • User-selected detail sections

Each detail section is described by an eight-byte entry in the self-defining section containing three fields. An entry is also called a triplet.

  • A 4-byte offset from the beginning of the record to the detail section

  • A 2-byte count of the number of instances of the detail section

  • A 2-byte length of each detail section instance. If there are no detail section instances of a given type, the triplet is all zeros.

Field ASNumD in the product ID section specifies the number of triplets in the self-defining section.

Record Size Limits

SMF records are z/OS V-format records with a system-imposed maximum length of 32,756 bytes. Most Adabas SMF records fit within this limit for most reasonable types of ADARUN nucleus specifications. However, detail sections such as File Activity could potentially have several thousand detail section instances.

If the entire set of instances will not fit in the space remaining in the record, Adabas will include only as many as there are room for and write the record. The SMF record is reset by clearing the triplets for all detail sections except the product ID section and then adding as many of the remaining instances as will fit, repeating until all detail sections are processed. Field ASSegNo in the product ID section will start at 1 and be incremented with each additional record, and field ASSegL will be set to zero for the last (or only) record for an interval or event.

If any detail section is so large that even one instance would cause the record size limit to be exceeded after resetting the SMF record, that detail type is deactivated.

Record Subtypes

The header section field ASSTy identifies a record subtype.

Subtype 1 (ASStI) - Adabas Nucleus Initialization

A record of this subtype is generated during nucleus initialization. In addition to the header, self-defining and product ID sections, it contains ADARUN parameter and user sections if these have been selected by SMFDETAIL ADARUN parameter or operator commands.

Subtype 2 (ASStT) - Adabas Nucleus Termination

A record of this subtype is generated during nucleus termination. In addition to the header, self-defining and product ID sections, it contains all detail sections specified by the SMFDETAIL ADARUN parameter or operator commands except for the ADARUN parameter section. Statistics in Adabas detail sections reflect totals for the entire nucleus session.

Subtype 3 (ASStI) - Adabas Interval Statistics

If interval recording has been specified by the SMFINTERVAL ADARUN parameter or operator command, a record of this subtype is generated at the expiration of each interval. In addition to the header, self-defining and product ID sections, it contains all detail sections specified by the SMFDETAIL ADARUN parameter or operator commands except for the ADARUN parameter section. Statistics in Adabas detail sections reflect activity since the previous interval ended, except where noted. This is also called a delta value.

Subtype 4 (ASStP) - Adabas Parameter Change

If the Adabas ADARUN parameter detail section has been specified by the SMFDETAIL ADARUN parameter or operator commands, a record of this subtype is generated whenever an ADARUN parameter value is changed after nucleus initialization. In addition to the header, self-defining, product ID and ADARUN parameter sections, it may also contain a user section if that has been selected by SMFDETAIL ADARUN parameter or operator commands.

Statistical Recording

The nucleus accumulates usage statistics on the resources it uses to accomplish its tasks. These statistics may be recorded at user or system-defined intervals (see ADARUN parameter SMFINTERVAL) and at termination.

Interval recording (Adabas SMF record subtype 3) provides the usage since the last interval ended for each detail section. Adabas SMF record intervals may be synchronized with one of the system-level intervals specified by PARMLIB member SMFPRMxx entries. This allows straightforward analysis of the usage by allowing direct comparison with other record interval data. For example, you can compare the Adabas interval record with RMF data for the same interval to better understand system performance.

Statistics at termination (Adabas SMF record subtype 2) will have cumulative statistics that reflect activity for the entire nucleus session in each specified detail section.

Record Sections

Every Adabas SMF record contains header, self-defining and product ID sections. You can select additional detail sections through the SMFDETAIL ADARUN parameter or operator commands. Each section is mapped by a DSECT generated by the ASMFREC mapping macro.

The following table summarizes the Adabas SMF record sections:

Detail Section Description ASMFREC Macro or ADARUN Parameter Specification Self-Defining Section Triplet Label Base ASMFREC DSECT Name Produced by the ASMFREC Macro
Header and self-defining section --- --- ASBase
Adabas command activity CMD ASTCmd ASCmd
Adabas global cache activity by block type1 CSHB ASTChB ASChB
Adabas global cache activity by Adabas file number1 CSHF ASTChF ASChF
Adabas global cache activity 1 CSHG ASTChG ASChG
Adabas Parallel Services cache activity2 CSHP ASTChP ASChP
Adabas file activity FILE ASTFile ASFile
Adabas global lock activity1 LOCK ASTLok ASLok
Adabas internucleus messaging control block activity MSGB ASTMsgB ASMsgB
Adabas internucleus messaging counts MSGC ASTMsgC ASMsgC
Adabas internucleus messaging service time histogram MSGH ASTMsgH ASMsgH
ADARUN parameter values PARM ASTParm ASParm
I/O by DD name IODD ASTIODD ASIODD
Product ID3 ID ASTPID ASPID
Session Statistics SESS ASTSess ASSess
Storage pool STG ASTStg ASStg
Thread activity THRD ASTThrd ASThrd
zIIP statistics ZIIP ASTzIIP ASzIIP
User-defined USER ASTUsr user-defined
  1. The detail section is available only in cluster environments when either Adabas Cluster Services or Adabas Parallel Services are installed.

  2. The detail section is available only in cluster environments when Adabas Parallel Services is installed.

  3. The product ID section is always included in every SMF record. It may not be specified in the SMFDETAIL ADARUN parameter or in operator commands.

This section describes the different detail record sections:

Note:
The DSECTs provided in the following sections may not be the most current. To see the most current versions of the DSECTs, generate them using the ASMFREC macro.

Header Section

IBM has defined a standard format for the initial part of all SMF records in z/OS MVS System Management Facilities (SMF), IBM document SA22-7630. This section begins every Adabas SMF record.

ASBase   DSect ,                   Base segment
*
*                      Standard SMF Header
*
ASRDW    DS    0Bl4                Record descriptor word
ASLen    DS     Bl2                 Record length
ASSeg    DS     Bl2                 Segment descriptor
ASFlg    DS    Bl.8                System indicator flags
ASFStV   Equ    x'40'               Subtypes are valid
ASFV4    Equ    x'10'               MVS/SP V4 and above
ASFV3    Equ    x'08'               MVS/SP V3 and above
ASFV2    Equ    x'04'               MVS/SP V2 and above
ASFVS2   Equ    x'02'               VS2
ASRTy    DS    Bl1                 Adabas record type
ASTme    DS    Bl4                 Time since midnight when record was +
                                     moved into SMF buffer in 1/100 sec
ASDte    DS    Pl4                 Date when record was moved into SMF +
                                      buffer as 0cyydddF
ASSID    DS    Cl4                 System identifier (SMFPRMxx SID)
ASSSI    DS    Cl4                 Subsystem identifier
ASSty    DS    Bl2                 Subtype
ASStI    Equ     1                  Adabas initialization
ASStT    Equ     2                  Adabas termination
ASStS    Equ     3                  Interval statistics
ASStP    Equ     4                  Parameter change
ASStA    Equ     9                  Ad hoc record
*
ASBaseL  Equ   *-ASBase            Length of standard header

Self-Defining Section

The self-defining section follows immediately after the header section. It is part of the header section DSECT.

Each detail section triplet is identified by a base label as shown in the table at the beginning of this section. The base label begins with the prefix specified in the ASMFREC invocation followed by the letter T (for triplet), and then followed by a mnemonic detail section identifier. The base label with suffix O is the offset, with suffix L is the length, and with suffix N is the number of instances.

Here is an example of some triplets.

*
*                      Self-Defining Section
*
ASSDS    DS    0B                  Self-defining section
*                                  Map of typical section triplet
ASSDSO   DS     Bl4                 Offset to section from start of    +
                                       record
ASSDSL   DS     Bl2                 Length of section
ASSDSN   DS     Bl2                 Number of section(s)
         Org    ASSDS
*
ASTID    DS    0Bl8                ID Section (always present)
ASTIDO   DS     Bl4                 Offset to ID section from start    +
                                       of record
ASTIDL   DS     Bl2                 Length of ID section
ASTIDN   DS     Bl2                 Number of ID section(s)
*
ASTUser  DS    0Bl8                User-Defined Section
ASTUserO DS     Bl4                 Offset to User-Defined section from+
                                       start of record
ASTUserL DS     Bl2                 Length of User-Defined section
ASTUserN DS     Bl2                 Number of User-Defined section(s)
*
ASTParm  DS    0Bl8                ADARUN Parameter Section
ASTParmO DS     Bl4                 Offset to detail section from start+
                                       of record
ASTParmL DS     Bl2                 Length of each detail section
ASTParmN DS     Bl2                 Number of detail section(s)
*
	. . .		
*
ASSDSLn  Equ   *-ASSDS             Length of self-defining section
ASSDSNT  Equ   ASSDSLn/8           Number of triplets

Product ID Section: ID

The product ID section is always present in every Adabas SMF record with one instance. It describes the nucleus generating the SMF record and provides information about the record’s contents.

The 2-byte version code consists of a major version and a minor version. A change, such as adding a new triplet or extending a detail section, will increment the minor version. All existing programs should continue to operate as no existing displacements have changed. A more disruptive change will increment the major version and require existing programs to (at least) be reassembled.

ASPID    DSect ,                   Product ID Detail Section           +
                                     (always present in SMF record)
ASSMFV   DS    0Bl2                SMF record version
ASSMFVM  DS     Bl1                 SMF record major version
ASSMFVN  DS     Bl1                 SMF record minor version
ASSMFVC  Equ   ASSMFV14            Current version: 1.4
ASSMFV11 Equ     x'0101'            Version 1.1 - Initial release
ASSMFV12 Equ     x'0102'            Version 1.2 - Added ALS/ASM
ASSMFV13 Equ     x'0103'            Version 1.3 - ADARUN parms V8.3
ASSMFV14 Equ     x'0104'            Version 1.4 - ADARUN parms V8.4  
*                                     in coll. seq., new section SESS
ASSegNo  DS    Bl1                 Record segment number
ASSegL   DS    Bl1                 Last segment when = 0
ASNumD   DS    Bl2                 Number of detail type triplets
ASPNm    DS    Cl8                 Product name (ADABAS)
ASVRSC   DS    Cl8                 Product ver/rlse/SM/cum: vvrrsscc
ASSysN   DS    Cl8                 System name
ASSypN   DS    Cl8                 Sysplex name
ASVMN    DS    Cl8                 Virtual machine name
ASJbN    DS    Cl8                 Job name
ASStN    DS    Cl16                ProcStep/Step name
ASJNm    DS    Cl8                 JES job identifier
ASPgm    DS    Cl8                 Program name
ASGrp    DS    Cl8                 Cluster messaging group name
ASST     DS    Bl8                 Nucleus start time in STCK format
ASIST    DS    Bl8                 Interval start time in STCK format
ASIET    DS    Bl8                 Interval end time in STCK format
ASDBID   DS    Bl4                 Database ID
ASNucX   DS    Bl2                 External nucleus ID
ASNucI   DS    Bl1                 Internal nucleus ID
ASSVC    DS    Bl1                 Adabas SVC number
ASASID   DS    Bl2                 Address space ID
ASASIDI  DS    Bl4                 Reusable address space ID instance
ASComp   DS    Bl2                 Completion code                     +
                                     x'0ccc' System ABEND code ccc     +
                                     x'8ccc' User ABEND code ccc
ASARC    DS    Bl4                 ABEND reason code
*
ASPIDL   Equ    *-ASPID

Adabas Command Activity Section: CMD

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Adabas command activity data is derived from data presented at nucleus shutdown.

There is one instance for each command group: A1/4, BT, CL, ET, E1/4, L1/4, L2/5, L3/6, L9, LF, N1/2, OP, UC, RC, RE, REST, S1/4, S2, S5, S8, S9, YA, YB, YF, YP, YCAL, V1, V2, V3, V4, U0, U1, U2 and U3. There are 34 possible instances but this is subject to change in future releases.

ASCmd    DSect ,                   Adabas Command Activity
ASCmdNm  DS     Cl4                Command name
ASCmdCt  DS     Bl8                Number of times this command type   +
                                     was executed
ASCmdTm  DS     Bl8                Sum of this command type durations  +
                                     in microseconds
*
ASCmdL   Equ   *-ASCmd

Adabas File Activity Section: FILE

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Adabas file activity data is derived from data presented at nucleus shutdown or in response to a DFILUSE operator command. There is one instance for each file possible in the database as specified by ADADEF MAXFILES up to the highest file number with a non-zero use count. The file number is implied by the sequence number of the instance, starting with zero, which reflects commands such as OP that are not associated with a specific file.

ASFile   DSect ,                   Adabas File Activity
ASFileCt DS     Bl8                Number of commands executed against +
                                     this file
*
ASFileL  Equ   *-ASFile

Adabas Global Cache Activity by Block Type Section: CSHB

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Global cache statistics are available only for Adabas Cluster Services and Adabas Parallel Services nuclei. They are derived from the ones presented at nucleus shutdown or in response to a DXCACHE operator command. There is one detail section instance for each type of block. Users should examine the block type and not rely on any observed order of the instances. The following block types are reported:

  • AC: Address Converter

  • DS: Data Storage

  • DSST: Data Storage Space Table

  • FCB: File Control Block

  • NI: Normal Index

  • UI: Upper Index

  • WORK: Protection Data

  • OTHR: Any other block type

ASChB     DSect ,                  Global Cache Activity by Block
ASCBCN    DS    Bl2                Cache Number
ASCBRsv1  DS    Bl2                Unused
ASCBBT    DS    Cl4                Block type
ASCBRT    DS    Bl8                Reads - Total
ASCBRCS   DS    Bl8                Reads - Completed synchronous
ASCBRCA   DS    Bl8                Reads - Completed asynchronous
ASCBRIC   DS    Bl8                Reads - Data in cache
ASCBRNI   DS    Bl8                Reads - Data not in cache
ASCBRFS   DS    Bl8                Reads - Failed - Structure
ASCBRO    DS    Bl8                Reads - For cast-out
ASCBROS   DS    Bl8                Reads - For cast-out synchronous
ASCBROA   DS    Bl8                Reads - For cast-out asynchronous
ASCBWT    DS    Bl8                Writes - Total
ASCBWCS   DS    Bl8                Writes - Completed synchronous
ASCBWCA   DS    Bl8                Writes - Completed asynchronous
ASCBWDR   DS    Bl8                Writes - Data written
ASCBWNR   DS    Bl8                Writes - Data not written
ASCBWSF   DS    Bl8                Writes - Structure full
ASCBVI    DS    Bl8                Validates issued
ASCBVF    DS    Bl8                Validates failed
ASCBBD    DS    Bl8                Block deletes issued
ASCBDR    DS    Bl8                Deletes reissued due to timeout
ASCBUR    DS    Bl8                Number of times updates redone
*
ASChBL    Equ  *-ASChB

Adabas Global Cache Activity by Adabas File Number Section: CSHF

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Global cache statistics are available only for Adabas Cluster Services and Adabas Parallel Services nuclei. They are derived from the ones presented at nucleus shutdown or in response to a DXCACHE operator command. There is potentially one instance for each file possible in the database as specified by ADADEF MAXFILES. The size of this detail section precludes the ability to generate it for every possible file, so there is one detail section instance for each file that has non-zero usage. Users should examine the file number and not rely on any observed order of the instances.

ASChF     DSect ,                  Global Cache Activity by File
ASCFCn    DS    Bl2                Cache Number
ASCFRsv1  DS    Bl2                Unused
ASCFNum   DS    Bl4                File number
ASCFRT    DS    Bl8                Reads - Total
ASCFRCS   DS    Bl8                Reads - Completed synchronous
ASCFRCA   DS    Bl8                Reads - Completed a synchronous
ASCFRIC   DS    Bl8                Reads - Data in cache
ASCFRNI   DS    Bl8                Reads - Data not in cache
ASCFRFS   DS    Bl8                Reads - Failed - Structure
ASCFRO    DS    Bl8                Reads - For cast-out
ASCFROS   DS    Bl8                Reads - For cast-out synchronous
ASCFROA   DS    Bl8                Reads - For cast-out asynchronous
ASCFWT    DS    Bl8                Writes - Total
ASCFWCS   DS    Bl8                Writes - Completed synchronous
ASCFWCA   DS    Bl8                Writes - Completed a synchronous
ASCFWDR   DS    Bl8                Writes - Data written
ASCFWNR   DS    Bl8                Writes - Data not written
ASCFWSF   DS    Bl8                Writes - Structure full
ASCFVI    DS    Bl8                Validates issued
ASCFVF    DS    Bl8                Validates failed
ASCFBD    DS    Bl8                Block deletes issued
ASCFDR    DS    Bl8                Deletes reissued due to timeout
ASCFUR    DS    Bl8                Number of times updates redone
*
ASChFL    Equ   *-ASChF

Adabas Global Cache Activity Section: CSHG

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Global cache statistics are available only for Adabas Cluster Services and Adabas Parallel Services nuclei. They are derived from the ones presented at nucleus shutdown or in response to a DXCACHE operator command. This detail section appears with one instance.

ASChG     DSect ,                  Global Cache Activity Section
ASCGCN    DS    Bl2                Cache Number
ASCGRsv1  DS    Bl2                Unused
ASCGCOD   DS    Bl8                Cast-out directory reads issued
ASCGCODA  DS    Bl8                Cast-out directory - async
ASCGCODS  DS    Bl8                Cast-out directory - sync
ASCGCOU   DS    Bl8                Unlock cast-out locks issued
ASCGCOUA  DS    Bl8                Unlock cast-out locks - async
ASCGCOUS  DS    Bl8                Unlock cast-out locks - sync
ASCGDR    DS    Bl8                Directory reads issued
ASCGDRA   DS    Bl8                Directory reads issued - sync
ASCGDRS   DS    Bl8                Directory reads issued - async
ASCGPub   DS    (0*9)Bl8           Publishing requests
ASCGSync  DS     Bl8                 Update sync
ASCGXEnd  DS     Bl8                 BT/CL/ET transaction end
ASCGRedo  DS     Bl8                 Redo threshold
ASCGFull  DS     Bl8                 Full buffer pool
ASCGAll   DS     Bl8                 All blocks
ASCGRABN  DS     Bl8                 Specific RABN
ASCGDS    DS     Bl8                 File DS blocks
ASCGDSST  DS     Bl8                 DSST blocks
ASCGNI    DS     Bl8                 File NI blocks
*
ASChGL    Equ  *-ASChG

Adabas Global Lock Activity Section: LOCK

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Global lock statistics are available only for Adabas Cluster Services and Adabas Parallel Services nuclei. They are derived from the ones presented at nucleus shutdown or in response to a DXLOCK operator command. There is one detail section instance for each lock type. The lock type is implied by the sequence number of the instance, starting with one.

ASLok     DSect ,                  Global Lock Section               
*                                  Lock Types                        
ASLokGC   Equ     1                  GCB                             
ASLokSE   Equ     2                  Security                        
ASLokFS   Equ     3                  FST                             
ASLokUF   Equ     4                  UFT                             
ASLokSO   Equ     5                  Save Online                     
ASLokFL   Equ     6                  Flush                           
ASLokES   Equ     7                  Global ET Synchronization       
ASLokRC   Equ     8                  Recovery                        
ASLokUT   Equ     9                  UFT-File                        
ASLokIU   Equ    10                  Index Update                    
ASLokHI   Equ    11                  Hold ISN                        
ASLokUD   Equ    12                  Unique DE                       
ASLokET   Equ    13                  ETID                            
ASLokLT   Equ    14                  LOB Tracker                     
ASLokCM   Equ    15                  Command Manager User            
ASLokDI   Equ    16                  Data Increment                  
ASLokCP   Equ    17                  Checkpoint                      
ASLokDT   Equ    18                  Net-Work DBID Target Assignment 
ASLokGU   Equ    19                  Global Update Commmand Sync     
ASLokPM   Equ    20                  Parameter                       
ASLokDS   Equ    21                  DSF                             
ASLokRG   Equ    22                  RLOG                            
ASLokSP   Equ    23                  SPATS                           
ASLokCA   Equ    24                  Cancel                          
ASLokWR   Equ    25                  TBWK4A/E Table                  
ASLokWU   Equ    26                  PUTUA/E Table                   
ASLokXI   Equ    27                  XIDE                            
ASLokRH   Equ    28                  Replication Handshake           
ASLokRI   Equ    29                  Read file/ISN                   
ASLokFA   Equ    30                  Format AC/AC1                   
ASLokOC   DS    Bl8                Obtains  - Conditional            
ASLokOG   DS    Bl8                Obtains  - Granted                
ASLokOR   DS    Bl8                Obtains  - Rejected
ASLokOU   DS    Bl8                Obtains  - Unconditional
ASLokOS   DS    Bl8                Obtains  - Synchronous  
ASLokOA   DS    Bl8                Obtains  - Asynchronous 
ASLokAC   DS    Bl8                Alters   - Conditional  
ASLokAG   DS    Bl8                Alters   - Granted      
ASLokAR   DS    Bl8                Alters   - Rejected     
ASLokAU   DS    Bl8                Alters   - Unconditional
ASLokAD   DS    Bl8                Alters   - Deadlock/Rejected  
ASLokAS   DS    Bl8                Alters   - Synchronous  
ASLokAA   DS    Bl8                Alters   - Asynchronous 
ASLokRL   DS    Bl8                Releases                
ASLokRS   DS    Bl8                Releases - Synchronous  
ASLokRA   DS    Bl8                Releases - Asynchronous 
*                                                          
ASLokL    Equ   *-ASLok                                                   

Adabas Internucleus Messaging Control Block Activity Section: MSGB

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Internucleus messaging statistics are available only for Adabas Cluster Services and Adabas Parallel Services nuclei. They are derived from the ones presented at nucleus shutdown or in response to a DXMSG operator command. This detail section appears with one instance. The number of blocks allocated (ASMsgBBA) and the high water mark (ASMsgBBH) reflect the entire nucleus session in interval records.

ASMsgB    DSect ,                  Inter-Nucleus Messaging Counts
ASMsgBBA  DS    Bl8                Message control blocks allocated
ASMsgBBH  DS    Bl8                Message control blocks used         +
                                    (high water mark)
ASMsgBBR  DS    Bl8                Message control block requests
*
ASMsgBL   Equ  *-ASMsgB

Adabas Internucleus Messaging Counts Section: MSGC

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Internucleus messaging statistics are available only for Adabas Cluster Services and Adabas Parallel Services nuclei. They are derived from the ones presented at nucleus shutdown or in response to a DXMSG operator command. This detail section appears with one instance. Adabas Parallel Services nuclei report only the count of messages sent.

ASMsgC    DSect ,                  Inter-Nucleus Messaging Counts
ASMsgCMT  DS    Cl4                Message type
ASMsgCMS  DS    Bl8                Messages sent
ASMsgCMI  DS    Bl8                Messages incoming (arrived)
ASMsgCMA  DS    Bl8                Messages accepted
ASMsgCRS  DS    Bl8                Replies sent
*
ASMsgCL   Equ  *-ASMsgC

Adabas Internucleus Messaging Service Time Histogram Section: MSGH

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Internucleus messaging statistics are available only for Adabas Cluster Services and Adabas Parallel Services nuclei. They are derived from the ones presented at nucleus shutdown or in response to a DXMSG operator command. This detail section appears with two instances:

  1. The first represents messages subject to the MXMSG timeout parameter.

  2. The second represents certain control messages not subject to MXMSG.

The two instances may be summed for a single representation of all messages. All message times are in microseconds. The minimum and maximum durations (ASMsgHMn and ASMsgHMx ) reflect the entire nucleus session in interval records. Field ASMsgMD2 is an extended (16-byte) floating point sum of the squares of all message durations. It may be used to compute a standard deviation.

ASMsgH    DSect ,                  Inter-Nucleus Messaging Histogram
ASMsgHXP  DS    Cl4                Transport service
ASMsgHMM  DS    Bl4                MXMSG or zero for messages not      +
                                    subject to MXMSG
ASMsgHMC  DS    Bl8                Message count
ASMsgHMD  DS    Bl8                Sum of all message durations
ASMsgHMS  DS    Bl16               Sum of squares, all msg durations   +
                                     (extended hex floating point)
ASMsgHMn  DS    Bl4                Minimum duration (us)
ASMsgHMx  DS    Bl4                Maximum duration (us)
ASMsgHCt  Equ   9                  Number of histogram buckets
ASMsgHG   DS    (0*ASMsgHCt)Bl8    Histogram buckets
ASMsgH10  DS     Bl8                 > 1000  s
ASMsgH09  DS     Bl8                 >  100  s, <= 1000  s
ASMsgH08  DS     Bl8                 >   10  s, <=  100  s
ASMsgH07  DS     Bl8                 >    1  s, <=   10  s
ASMsgH06  DS     Bl8                 >  100 ms, <=    1  s
ASMsgH05  DS     Bl8                 >   10 ms, <=  100 ms
ASMsgH04  DS     Bl8                 >    1 ms, <=   10 ms
ASMsgH03  DS     Bl8                 >  100 us, <=    1 ms
ASMsgH02  DS     Bl8                 <= 100 us
*
ASMsgHL   Equ  *-ASMsgH

Adabas Parallel Services Cache Activity Section: CSHP

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Parallel services cache statistics are available only for Adabas Parallel Services nuclei. They are derived from the ones presented at nucleus shutdown or in response to a DXCACHE operator command. This detail section appears with one instance. The directory high water mark ASCPDHiN and in-use count ASCPDirI reflect the entire nucleus session in interval records.

ASChP     DSect ,                  Parallel Services Cache Activity
ASCPCN    DS    Bl2                Cache Number
ASCPRsv1  DS    Bl2                Unused
ASCPNDir  DS    Bl8                Number of directory elements
ASCPNDiI  DS    Bl8                Number of directory index elements
*                                  Directory Statistics
*                                    General
ASCPDHiN  DS    Bl8                    High-water mark, this nucleus
ASCPDirI  DS    Bl8                    In-use, this nucleus
*                                    Read
ASCPDRA   DS    Bl8                    Located active
ASCPDRF   DS    Bl8                    Obtained from free pool
ASCPDRC   DS    (0*4)Bl8               Reclaim criteria categories
ASCPDNN   DS     Bl8                     First choice criteria
ASCPDND   DS     Bl8                     Second choice criteria
ASCPDIN   DS     Bl8                     Third choice criteria
ASCPDID   DS     Bl8                     Fourth choice criteria
ASCPDCF   DS    Bl8                    Unable to obtain (cache full)
ASCPDRT   DS    Bl8                    Tested for reclaim
*                                    Write
ASCPDWF   DS    Bl8                    Obtained from free pool
*                                  Space Management Statistics
*                                     Request Statistics
ASCPSRP   DS    Bl8                     Sufficient preallocated space
ASCPSRF   DS    Bl8                     Free space allocated
ASCPSRN   DS    Bl8                     Reclaim space, first choice
ASCPSRI   DS    Bl8                     Reclaim space, second choice
ASCPSRU   DS    Bl8                     Space unavailable (cache full)
ASCPSSP   DS    Bl8                     Searched part of space chain
ASCPSSF   DS    Bl8                     Searched entire  space chain
ASCPSST   DS    Bl8                     Number of space seqs tested
*                                     Element Reclaim Statistics
ASCPSEN   DS    Bl8                     First choice criteria
ASCPSEI   DS    Bl8                     Second choice criteria
*                                     Latch management statistics
*                                       Cache Space Chain
ASCPSPGE  DS    Bl8                       Get     Exclusive
ASCPSPWF  DS    Bl8                       WaitFor Exclusive
ASCPSPRE  DS    Bl8                       Release Exclusive
*                                       Cache Directory Index
ASCPDIGE  DS    Bl8                       Get     Exclusive
ASCPDIGS  DS    Bl8                       Get     Shared
ASCPDIUE  DS    Bl8                       Upgrade Exclusive
ASCPDIWE  DS    Bl8                       WaitFor Exclusive
ASCPDIWS  DS    Bl8                       WaitFor Shared
ASCPDIWU  DS    Bl8                       WaitFor Upgrade
ASCPDIRE  DS    Bl8                       Release Exclusive
ASCPDIRS  DS    Bl8                       Release Shared
*                                       Cache Directory
ASCPDRGE  DS    Bl8                       Get     Exclusive
ASCPDRGS  DS    Bl8                       Get     Shared
ASCPDRUE  DS    Bl8                       Upgrade Exclusive
ASCPDRWE  DS    Bl8                       WaitFor Exclusive
ASCPDRWS  DS    Bl8                       WaitFor Shared
ASCPDRRE  DS    Bl8                       Release Exclusive
ASCPDRRS  DS    Bl8                       Release Shared
*                                       Cast-Out Class
ASCPCOGE  DS    Bl8                       Get     Exclusive
ASCPCOGS  DS    Bl8                       Get     Shared
ASCPCOWE  DS    Bl8                       WaitFor Exclusive
ASCPCOWS  DS    Bl8                       WaitFor Shared
ASCPCORE  DS    Bl8                       Release Exclusive
ASCPCORS  DS    Bl8                       Release Shared
*
ASChPL    Equ  *-ASChP

ADARUN Parameter Value Section: PARM

This selectable detail section may appear in initialization records or whenever an ADARUN parameter is changed while the nucleus is running (subtypes 1 and 4 in the header section). It will not be generated for interval or termination records (subtypes 2 and 3). This section has a fixed-length portion containing most parameters, followed by variable-length areas for parameters capable of multiple values or lists of values.

Where possible, the individual field names are formed by prefixing the shortest allowable form of the parameter with ASP. In general, the SMF record will report character parameters in EBCDIC and numeric parameters in binary.

Parameters with limited enumerated values (YES or NO, for example) are reported in 1-byte fields if the possible values are unambiguous. Otherwise, the field length is that used by the nucleus, usually 4 bytes.

Here are some sample entries:

ASParm	  DSect	,	
ASPAO	   DS	   Cl1	     AOslog
ASPARE 	 DS	   Bl4	     ARExclude
                           Offset to file table
ASPARMN 	DS	   Cl16	    ARMname  
ASPASS 	 DS	   Cl1	     ASSocache
ASPASY 	 DS	   Cl1	     ASYtvs
	. . .		
ASPVI	   DS	   Cl1	     Vista
ASPV64B	 DS	   Cl1	     V64Bit
ASPWO	   DS	   Cl1	     Workcache
ASParmV	 DS	   0B	      Begin variable part
ASParmL 	Equ	  *-ASParm	Length of ID section 
ASParm   DSect ,                   ADARUN Parameters
*
*         Adabas Nucleus Parameters
*
ASPAO    DS    Cl1                 AOslog
ASPARE   DS    Bl4                 ARExclude       Offset to file table
ASPARMN  DS    Cl16                ARMname
ASPASS   DS    Cl1                 ASSocache
ASPASY   DS    Cl1                 ASYtvs
 . . .

ASPVI    DS    Cl1                 VIsta

The ADARUN AREXCLUDE parameter is a variable length list of values. The base parameter entry will be an offset from the beginning of the detail section to the table of values. The table is a 4-byte inclusive field followed by 4-byte file numbers. A separate DSECT maps the AREXCLUDE file exclusion table:

ASPAFE   DSect ,                   ARM File Exclusion Table
ASPAFEN  DS    Bl4                 Inclusive length of table
ASPAFEF  DS    0Bl4                First file number entry

I/O by DD Name Section: IODD

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). I/O by DD data is derived from data presented at nucleus shutdown. There is one instance for each DD statement administered by the nucleus. You should examine the DD name and not rely on any observed order of the instances. An Adabas nucleus may open and close the same DD name multiple times. Multiple uses of a DD name are summed.

You might see this many DD statement entries in a single nucleus:

Statement Type Number of DD Statements
ADC 248
ADP 248
ADW 62
ASSO 99
CLOG 8
DATA 99
ECS 1
PLOG 8
RLOG 1
WORK 2

DD names beginning with "AD" represent files that were dynamically allocated, such as during Cluster or Parallel Services recovery, after another nucleus failed.

ADC and ADP represent CLOGs and PLOGs from other nuclei. There may be one set of 8 for each of the 31 possible other nuclei up to a maximum of 248.

Similarly, ADW represents a WORK data set from another nucleus. There may be two for each of the 31 possible other nuclei up to a maximum of 62.

ASIODD   DSect ,                   I/O Activity by DD
ASIODDNm DS    Cl8                 DD Name
ASIODDRd DS    Bl8                 Reads
ASIODDWt DS    Bl8                 Writes
*
ASIODDL  Equ   *-ASIODD

Session Statistics Section: SESS

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Session statistics data is similar to the data presented at nucleus shutdown or at the DSTAT operator command.

There is one single instance per record. The section has a fixed-length.

Here is a shortened sample of the SESS section:

ASSess   DSect ,                  Nucleus session statistics
*
ASSDURA  DS    BL8                Nucleus Session Duration
ASSWAIT  DS    BL8                Nucleus Wait Time
ASSCPU   DS    BL8                Nucleus CPU Time

ASSASR   DS    BL8                ASSO Reads
ASSASW   DS    BL8                ASSO Writes

...

ASSBFFE  DS    BL4                Buffer efficiency .x precision
ASSessL  Equ  *-ASSess           Length of the session section

Storage Pool Section: STG

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Storage pool statistics are derived from statistics presented at nucleus shutdown or in response to a DRES operator command. There is one instance for each storage pool with a non-zero size. Be sure to examine the pool name and not rely on any observed order of the instances.

Storage pool statistics are reported two ways: in bytes and also in units such as a user might specify as an ADARUN parameter, for example, NC. When the units are bytes, the two sets of statistics are the same.

Normally an interval record would show the change from the previous interval, but that isn’t meaningful for storage pools. Thus the interval and termination record subtypes all reflect total usage for the nucleus session.

ASStg    DSect ,                   Storage Pool Usage
ASStgNm  DS    Cl4                 Storage pool name
ASStgBSz DS    Bl8                 Size in bytes
ASStgBHW DS    Bl8                 High water mark in bytes
ASStgUSz DS    Bl8                 Size in units from ADARUN parameter
ASStgUHW DS    Bl8                 High water mark in ADARUN units
*
ASStgL   Equ   *-ASStg             Length of Storage Pool section

These are the possible storage pools:

Storage Pools
Pool Name ADARUN Parameter Description
AB NAB Attached buffers
CQ NC Command queue
DUQ LDEUQP Unique descriptor
FI LFP Internal format buffers
HQ NH Hold queue
PLIO NPLOGBUFFERS PLOG I/O buffers
REDO LRDP Deferred publishing
RPL LRPL Replication pool
SC LCP Security information
TBI LI ISN table
TBS NQ Sequential command table
UQ NU User queue element
UQF NU User queue file elements
WKIO NWORK1BUFFERS Work I/O buffers
WORK LWP Work
WKP1 LP Work part 1
WK1B CLUWORK1CACHE Work part 1b
WKP2 LWKP2 Work part 2
WKP3 -- Work part 3
XID NU Transaction ID

Thread Activity Section: THRD

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). Thread activity data is derived from data presented at nucleus shutdown or in response to a DTH operator command. The ADARUN parameter NTHREAD defines the number of user threads for the nucleus session. There is one instance for each defined user thread. The thread number is implied by the sequence number of the instance.

ASThrd   DSect ,                   Thread Activity
ASThrdCt DS     Bl8                Number of commands executed in this +
                                     thread
*
ASThrdL  Equ   *-ASThrd

zIIP Statistics Section: ZIIP

This selectable detail section may appear in interval or termination records (subtypes 2 and 3). zIIP activity data is derived from data presented at nucleus shutdown or in response to a DZSTAT operator command. There is one instance for each zIIP-enabled nucleus product.

ASzIIP    DSect ,                  Nucleus session statistics        
*                                                                    
ASzProd   DS    Cl4                Sub-product name                  
ASzPNuc    Equ   c'ANUC'            Adabas nucleus main task         
ASzPRevL   Equ   c'REVL'            Review local                     
ASzRsv1   DS    Bl4                Unused                            
*                                                                    
ASz2SRB   DS    Bl8                Count of switches to SRB mode     
ASz2TCB   DS    Bl8                Count of switches to TCB mode     
ASzPAUT   DS    Bl8                Count of pause TCB requests       
ASzRLST   DS    Bl8                Count of release TCB requests     
ASzPAUS   DS    Bl8                Count of pause SRB requests       
ASzRLSS   DS    Bl8                Count of release SRB requests     
ASzQPRQ   DS    Bl8                Count of queue parallel requests  
ASzXRQE   DS    Bl8                Count of no free RQE for requests 
*                                                                    
ASzNCtr   Equ   64                 Number of event counters          
ASzCtr    DS    (ASzNCtr)Bl8       Event counters                    
*                                                                    
ASzCPUT   DS    Bl8                CPU time             (STCK format)
ASzZTim   DS    Bl8                zIIP time            (STCK format)
ASzSCPU   DS    Bl8                SRB-on-CPU time      (STCK format)
ASzZQCP   DS    Bl8                zIIP-qualified time  (STCK format)
*                                                                    
ASzIWait  DS    Bl8                ADAIOR general WAITs              
ASzIRlse  DS    Bl8                ADAIOR releases                   
*                                                                    
ASzIIPL   Equ  *-ASzIIP            Length of the zIIP section

ASMFREC Mapping Macro

Use the ASMFREC macro to generate the latest SMF record DSECTs. The ASMFREC macro will always generate the header and self-defining section DSECT. Detail section DSECTs will be generated as specified. The header and self-defining sections are mapped by a single DSECT. Each detail section is mapped by its own DSECT. The syntax of the ASMFREC macro is:

label    ASMFREC   Prefix={AS | prefix},
                                  Detail={All | (type [,type]...)},
                                  Title = {'Adabas SMF Records' | 'string'}

Prefix

Specify a character string to be used as the initial characters for all DSECT and field names. The default is Prefix=AS.

Detail

Identify which detail section DSECTs are to be included in the expansion. "All" is the default and will include all detail sections. Alternatively, a comma-delimited list of types (enclosed in parentheses) can be specified; only the types specified will be included. The valid types are shown in the following table. A null value (Detail=) will inhibit all detail section DSECTs.

ASMFREC Macro Specification Detail Section Description ASMFREC DSECT Name Produced by the ASMFREC Macro1
CMD Adabas command activity xxCmd
CSHB Adabas global cache activity by block type xxChB
CSHF Adabas global cache activity by Adabas file number xxChF
CSHG Adabas global cache activity xxChG
CSHP Adabas Parallel Services cache activity xxChP
FILE Adabas file activity xxFile
LOCK Adabas global lock activity xxLok
MSGB Adabas internucleus messaging control block activity xxMsgB
MSGC Adabas internucleus messaging counts xxMsgC
MSGH Adabas internucleus messaging service time histogram xxMsgH
PARM ADARUN parameter values xxParm
IODD I/O by DD name xxIODD
SESS Nucleus session statistics xxSess
STG Storage pool xxStg
THRD Thread activity xxThrd
ZIIP zIIP statistics xxzIIP
USER User-defined user-defined
  1. Where xx is the prefix specified in the ASMFREC macro.

Title

If the Title default "Adabas SMF Record " or another quoted string is specified, an assembler Title statement is generated before the header section DSECT. A null value (Title=) for this operand will inhibit a title in the DSECT.

SMF User Exit

You can provide a user exit if you want to add a detail section to the Adabas SMF record. The user exit is a separate load module whose name must be provided in the ADARUN UEXSMF parameter. For complete information about the user exit, read SMF User Exit, in the Adabas User, Hyperdescriptor, Collation Descriptor, and SMF Exits Manual.

IBM Type 89 SMF Records

An Adabas nucleus can register with z/OS to have CPU usage statistics included in IBM type 89 SMF records. These records are described in z/OS MVS System Management Facilities (SMF), IBM document SA22-7630.

To activate type 89 recording for Adabas, specify ADARUN parameters SMF=YES and SMF89=YES. During initialization Adabas will register the nucleus address space with z/OS SMF and have its CPU statistics included in subtype 1 of the type 89 records. The address space is deregistered at nucleus termination. Each Adabas nucleus appears as a separate type 89 entry.

The type 89 entries include CPU usage and a number of descriptive registration parameters. Adabas nuclei use these descriptive fields in type 89 entries as follows:

SMF Type 89 Descriptive Fields
Name Length Format Description Value
SMF89UPO 16 EBCDIC Product owner or vendor name SOFTWARE AG
SMF89UPN 16 EBCDIC Product name ADABAS
SMF89UPV 8 EBCDIC Product version The eight-byte product version has two-byte numeric values for the Adabas version, release, SM level, and cumulative level.
SMF89UPQ 8 Binary Product qualifier

The product qualifier is a seven-byte string that may be used to distinguish among several nucleus instances. It contains a series of binary fields:

SVC (1 byte)
DBID (4 bytes)
NucID (2 bytes)

Use both the SVC and DBID to identify instances of Adabas Cluster or Parallel Service nuclei for the same database on any one system.

SMF89UPI 8 EBCDIC Product ID

The product ID is a string of up to eight single characters to show what add-on products are being used. The characters may appear in any order:

C (Adabas Cluster Services)
D (Adabas Delta Save)
F (Adabas Fastpath)
M (Adabas Review)
P (Adabas Parallel Services)
R (Event Replicator for Adabas)
S (Adabas Cache Facility)
T (Adabas Transaction Manager)
U (Adabas Security)
V (Adabas Vista)

The following applies:

C, D, P, and R are mutually exclusive.
D, F, M, T and V are exclusive with A.