Table of Contents (exploded view)
Abstract for IBM Health Checker for z/OS
How to send your comments to IBM
Summary of changes
Summary of changes
Summary of changes
Summary of changes
Summary of changes
Summary of changes
z/OS Version 2 Release 1 summary of changes
Using IBM Health Checker for z/OS
Introduction
What is a check?
For more information, see our fabulous Redpaper!
Background for IBM's checks
Setting up IBM Health Checker for z/OS
Stopping and Starting IBM Health Checker for z/OS Manually
Sharing critical IBM Health Checker for z/OS information between systems at different levels
Sharing IEASYSxx
Sharing the HZSPROC procedure
Sharing HZSPRMxx
Steps for optimizing IBM Health Checker for z/OS
In a rush? Use these basic steps
Software requirements
Software requirement for running REXX checks
Customizing the IBM Health Checker for z/OS procedure
Allocate the HZSPDATA data set to save check data between restarts
Monitoring and sizing the HZSPDATA data set
Optionally set up the HZSPRINT utility
Optionally define log streams to keep a record of the check output
Create security definitions
Setting up security for the IBM Health Checker for z/OS started task
Setting up security for the HZSPRINT utility
Security for printing check output from the message buffer
Security for printing check output from a log stream
Setting up security for IBM Health Checker for SDSF support
Create multilevel security definitions
Create HZSPRMxx parmlib members
Tell the system which HZSPRMxx members you want to use
How do the HZSPRMxx settings specified in HZSPROC and IEASYSxx interact?
Assign IBM Health Checker for z/OS to a WLM service class
Obtain checks for IBM Health Checker for z/OS
Working with check output
Hey! My system has been configured like this for years, and now I'm receiving exceptions!
Understanding system data issued with the check messages
Understanding exception messages
Evaluating check output and resolving exceptions
Customizing check exceptions with dynamically varying severity
Approaches to automation with IBM Health Checker for z/OS
More automation ideas
Using HZS exception messages for automation
Understanding check state and status
User controlled states
IBM Health Checker for z/OS controlled states
ACTIVE(DISABLED) and INACTIVE(ENABLED) - understanding check state combinations
Check status
Using the HZSPRINT utility
Example of HZSPRINT output
HZSPRINT utility completion codes
Finding check message documentation with LookAt
Managing checks
Making dynamic, temporary changes to checks
Using SDSF to manage checks
Managing checks with the MODIFY hzsproc command
Cheat sheet: examples of MODIFY hzsproc commands
Why you should not add checks using the MODIFY hzsproc command
Why does my check reappear after I delete it? Understanding delete processing
But my check doesn't reappear after ADDNEW - what happened to it?
Why can't I re-add my HZSPRMxx parmlib defined check after I delete it? More understanding of the delete processing...
How can I delete checks while IBM Health Checker for z/OS is terminating?
Using the category filter to manage checks
Making persistent changes to checks
Using WHEN to apply statements conditionally
Creating and maintaining IBM Health Checker for z/OS policies
How IBM Health Checker for z/OS builds policies from policy statements
Define one policy in multiple HZSPRMxx parmlib members
Define multiple policies in one HZSPRMxx parmlib member
Some finer points of how policy values are applied
REPLACE PARMLIB command nuances
ACTIVATE POLICY command nuances
START HZSPROC policy nuances
How IBM Health Checker for z/OS uses the dates on policy statements
Can I create policy statements using the MODIFY command?
Can I put non-policy statements in my HZSPRMxx member?
Using SYNCVAL in a policy to specify the time of day that a check runs
Examples: Making SYNCVAL work for you
Fine points of how SYNCVAL works
SYNCVAL restrictions
Policy statement examples
Specifying the HZSPRMxx members you want the system to use
Using HZSPRMxx and MODIFY hzsproc command
Guidelines for HZSPRMxx parmlib members
HZSPRMxx summary
Parameter in IEASYSxx (or supplied by the operator)
IBM supplied defaults for HZSPRMxx
Syntax rules for HZSPRMxx
Syntax and parameters for HZSPRMxx and MODIFY hzsproc
Examples of DISPLAY output
Developing Checks for IBM Health Checker for z/OS
Planning checks
Identifying potential checks
The life-cycle of a check - check terminology
What kind of check do you want to write?
Local checks
Remote checks
Writing local and remote checks in Metal C
REXX checks
Summary of checks - differences and similarities
Issuing messages for your check - message table checks versus DIRECTMSG checks
Where to next? A road map for developing your check
Writing local check routines
Metal C or assembler?
Sample local checks
Local check routine basics
Defining a local check to IBM Health Checker for z/OS
Programming considerations
Environment
Requirements
Restrictions
Gotchas
Input Registers
Output Registers
Establishing a recovery routine for a check
Assembler reentrant entry and exit linkage
Using the check parameter parsing service (HZSCPARS)
Using the HZSPQE data area in your local check routine
Function codes for local check routines
Creating and using data saved between restarts
Using ENF event code 67 to listen for check status changes
Issuing messages in your local check routine with the HZSFMSG macro
Reporting check exceptions
Defining the variables for your messages
Using default HZSMGB data area format (MGBFORMAT=0)
Using HZSMGB data area format MGBFORMAT=1
Writing a check with dynamic severity levels
Controlling check exception message WTOs and their automation consequences
The well-behaved local check routine - recommendations and recovery considerations
Building Metal C checks
Debugging checks
Writing remote check routines
Metal C or assembler?
Sample checks
Remote check routine basics
Programming considerations
Environment
Requirements
Restrictions
Establishing a recovery routine for a check
Preparing for check definition - making sure IBM Health Checker for z/OS is up and running
Using ENF event code 67 to listen for IBM Health Checker for z/OS availability
Allocate a pause element token using IEAVAPE
Issue the HZSADDCK macro to define a remote check to IBM Health Checker for z/OS
Example of an HZSADDCK macro call for a remote check
Pause the remote check routine with IEAVPSE
Using HZSCHECK REQUEST=OPSTART and REQUEST=OPCOMPLETE to communicate check start and stop to IBM Health Checker for z/OS
Using the check parameter parsing service (HZSCPARS)
Using the HZSPQE data area in your remote check routine
Release codes for remote check routines
Ending a check that is coupled with an application
Creating and using data saved between restarts
Issuing messages in your remote check routine with the HZSFMSG macro
Reporting check exceptions
Defining the variables for your messages
Using default HZSMGB data area format (MGBFORMAT=0)
Using HZSMGB data area format MGBFORMAT=1
Writing a check with dynamic severity levels
Controlling check exception message WTOs and their automation consequences
Recommendations and recovery considerations for remote checks
Building Metal C checks
Debugging checks
Writing REXX checks
Sample REXX checks
REXX check basics
Using input data sets in a TSO-environment REXX check
Using REXXIN data sets
REXXIN data set naming conventions
Using REXXOUT data sets
REXXOUT data set naming conventions
Examples: Capturing error data in REXXOUT
Defining a REXX check to IBM Health Checker for z/OS
Creating and using data saved between restarts in a REXX check
Using ENF event code 67 to listen for check status changes
Issuing messages from your REXX check with the HZSLFMSG function
Reporting check exceptions
Writing a check with dynamic severity levels
Controlling check exception message WTOs and their automation consequences
The well-behaved REXX check - recommendations and recovery considerations
Debugging REXX checks
Writing an HZSADDCHECK exit routine
Programming considerations for the HZSADDCHECK exit routine
Environment
Input Registers
Output Registers
Defining multiple local or REXX checks in a single HZSADDCHECK exit routine
Dynamically adding local or REXX exec checks to IBM Health Checker for z/OS
Using operator commands to add checks to the system dynamically
Using a routine to add checks to the system dynamically
Debugging HZSADDCHECK exit routine abends
Creating product code that automatically registers checks at initialization
Creating product code that deletes checks as it goes down
Creating the message input for your check
How messages and message variables are issued at check runtime
Planning your check messages
Planning your exception messages
Planning your information messages
Planning your report messages
Planning your debug messages
Decide what release your check will run on
Decide whether to translate your check exception messages into other national languages
Rely on IBM Health Checker for z/OS to issue basic check information for you
Creating the message table
Examples of message input
Exception message example
Information message example
Report message example
Debug message example
Message list tagging example
Syntax of message input
Message input tags
Copyright information
Message list tag -
Message instance tag -
Message number tag -
Message text (
) and message variable (
) tags
Message item tag -
Message Table
Special formatting tags for the message table
How messages are formatted in the message buffer
Extra fields issued to the message buffer for exception messages
Using symbols in the message table
Using pre-defined system symbols
Defining your own symbols for check messages
Syntax for defining your symbols - the tag
Generating the compilable assembler CSECT for the message table
Support for translating messages to other languages
Guidelines for coding translatable exception message text lines
IBM Health Checker for z/OS System REXX Functions
HZSLFMSG function
Input variables
Input variables for HZSLFMSG_REQUEST='CHECKMSG'
Input variables for HZSLFMSG_REQUEST='DIRECTMSG'
Required HZSLFMSG_REQUEST='DIRECTMSG' variables
Optional HZSLFMSG_REQUEST='DIRECTMSG' variables
Input variables for HZSLFMSG_REQUEST='HZSMSG'
Input variables for HZSLFMSG_REQUEST='STOP'
HZSLFMSG Output variables
HZSLFMSG return codes
HZSLPDRD function
Input variables
Required HZSLPDRD variables
Optional HZSLPDRD variables
HZSLPDRD Output variables
HZSLPDRD return codes
HZSLPDWR function
Input variables
Required HZSLPDWR variables
HZSLPDWR output variables
HZSLPDWR return codes
HZSLSTOP function
Input variables
Output variables
HZSLSTOP return codes
HZSLSTRT function
Input variables
Output variables
HZSLSTRT return codes
IBM Health Checker for z/OS HZS macros
HZSADDCK macro — HZS add a check
Description
Environment
Programming Requirements
Restrictions
Input Register Information
Output Register Information
Performance Implications
Syntax
Parameters
ABEND Codes
Return and Reason Codes
Examples
Example 1
Example 2
HZSCHECK macro — HZS Check command request
Description
Environment
Programming Requirements
Restrictions
Input Register Information
Output Register Information
Performance Implications
Syntax
Parameters
ABEND Codes
Return and Reason Codes
Examples
HZSCPARS macro — HZS Check Parameter Parsing
Description
Environment
Programming Requirements
Restrictions
Input Register Information
Output Register Information
Performance Implications
Syntax
Parameters
ABEND Codes
Return and Reason Codes
Examples
HZSFMSG macro — Issue a formatted check message
Description
Environment
Programming Requirements
Restrictions
Input Register Information
Output Register Information
Performance Implications
Syntax
Parameters
ABEND Codes
Return and Reason Codes
Examples
Example 1
Example 2
HZSPREAD macro — Read Check Persistent Data
Description
Environment
Programming Requirements
Restrictions
Input Register Information
Output Register Information
Performance Implications
Syntax
Parameters
ABEND Codes
Return and Reason Codes
Examples
Example 1
Example 2
Example 3
HZSPWRIT macro — Write Check Persistent Data
Description
Environment
Programming Requirements
Restrictions
Input Register Information
Output Register Information
Performance Implications
Syntax
Parameters
ABEND Codes
Return and Reason Codes
Example
HZSQUERY macro — HZS Query
Description
Environment
Programming Requirements
Restrictions
Input Register Information
Output Register Information
Performance Implications
Syntax
Parameters
ABEND Codes
Return and Reason Codes
Examples
Check Descriptions
IBM Health Checker for z/OS checks
Where are the migration checks?
Allocation checks (IBMALLOC)
ALLOC_ALLC_OFFLN_POLICY
ALLOC_SPEC_WAIT_POLICY
ALLOC_TIOT_SIZE
ASM checks (IBMASM)
ASM_NUMBER_LOCAL_DATASETS
ASM_PAGE_ADD
ASM_PLPA_COMMON_SIZE
ASM_PLPA_COMMON_USAGE
ASM_LOCAL_SLOT_USAGE
Catalog checks (IBMCATALOG)
CATALOG_ATTRIBUTE_CHECK
CATALOG_IMBED_REPLICATE
CATALOG_RNLS
Communications Server checks (IBMCS)
CSAPP_FTPD_ANONYMOUS_JES
CSAPP_MVRSHD_RHOSTS_DATA
CSAPP_SMTPD_MAIL_RELAY
CSAPP_SNMPAGENT_PUBLIC_COMMUNITY
CSRES_AUTOQ_GLOBALTCPIPDATA
CSRES_AUTOQ_RESOLVEVIA
CSRES_AUTOQ_TIMEOUT
CSTCP_CINET_PORTRNG_RSV_tcpipstackname
CSTCP_IPMAXRT4_tcpipstackname
CSTCP_IPMAXRT6_tcpipstackname
CSTCP_SYSTCPIP_CTRACE_tcpipstackname
CSTCP_SYSPLEXMON_RECOV_tcpipstackname
CSTCP_TCPMAXRCVBUFRSIZE_tcpipstackname
CSVTAM_CSM_STG_LIMIT
CSVTAM_T1BUF_T2BUF_EE
CSVTAM_T1BUF_T2BUF_NOEE
CSVTAM_VIT_DSPSIZE
CSVTAM_VIT_OPT_ALL
CSVTAM_VIT_OPT_PSS
CSVTAM_VIT_SIZE
ZOSMIGV2R2_NEXT_CS_LEGACYDEVICE
ZOSMIGV2R2_Next_CS_SENDMAILCLIEN
ZOSMIGV2R2_Next_CS_SENDMAILDAEMN
ZOSMIGV2R2_Next_CS_SENDMAILMSA
ZOSMIGV2R2_Next_CS_SENDMAILMTA
ZOSMIGV2R2_Next_CS_SMTPDDAEMON
ZOSMIGV2R2_Next_CS_SMTPDMTA
ZOSMIGV2R2_Next_CS_TFTP
Component trace checks (IBMCTRACE)
CTRACE_DEFAULT_OR_MIN
Consoles checks (IBMCNZ)
CNZ_AMRF_Eventual_Action_Msgs
CNZ_Console_MasterAuth_Cmdsys
CNZ_Console_Mscope_And_Routcode
CNZ_Console_Operating_Mode
CNZ_Console_Routcode_11
CNZ_EMCS_Hardcopy_Mscope
CNZ_EMCS_Inactive_Consoles
CNZ_OBSOLETE_MSGFLD_AUTOMATION
CNZ_Syscons_Allowcmd
CNZ_Syscons_Mscope
CNZ_Syscons_PD_Mode
CNZ_Syscons_Routcode
CNZ_Task_Table
ZOSMIGV1R13_CNZ_Cons_Oper_Mode
Contents supervision checks (IBMCSV)
CSV_APF_EXISTS
CSV_LNKLST_NEWEXTENTS
CSV_LNKLST_SPACE
CSV_LPA_CHANGES
DAE checks (IBMDAE)
DAE_SHAREDSN
DAE_SUPPRESSING
Device Manager checks (IBMDMO)
DMO_TAPE_LIBRARY_INIT_ERRORS
DMO_REFUCB
DFSMS OPEN/CLOSE/EOV checks (IBMOCE)
OCE_XTIOT_CHECK
Global Resource Serialization checks (IBMGRS)
GRS_AUTHQLVL_SETTING
GRS_CONVERT_RESERVES
GRS_EXIT_PERFORMANCE
GRS_EXIT_PERFORMANCE
GRS_GRSQ_SETTING
GRS_Mode
GRS_RNL_IGNORED_CONV
GRS_SYNCHRES
HSM checks (IBMHSM)
HSM_CDSB_BACKUP_COPIES
HSM_CDSB_DASD_BACKUPS
HSM_CDSB_VALID_BACKUPS
ICSF checks (IBMICSF)
ICSF_COPROCESSOR_STATE_NEGCHANGE
ICSF_KEY_EXPIRATION
ICSF_MASTER_KEY_CONSISTENCY
ICSF_DEPRECATED_SERV_WARNINGS
ICSFMIG7731_ICSF_RETAINED_RSAKEY
ICSFMIG7731_ICSF_PKDS_TO_4096BIT
ICSFMIG77A1_COPROCESSOR_ACTIVE
ICSFMIG77A1_TKDS_OBJECT
ICSFMIG77A1_UNSUPPORTED_HW
Infoprint Server checks (IBMINFOPRINT)
INFOPRINT_PRINTWAY_MODE
INFOPRINT_V2DB_CHECK
ZOSMIGV1R12_INFOPRINT_INVSIZE
IOS checks (IBMIOS)
IOS_BUFFER_CREDITS
IOS_CAPTUCB_PROTECT
IOS_CMRTIME_MONITOR
IOS_DYNAMIC_ROUTING
IOS_FABRIC_MONITOR
IOS_IORATE_MONITOR
IOS_MIDAW
IOS_PORT_SPEED
IOS_STORAGE_IOSBLKS
JES2 checks (IBMJES2)
JES2_UPGRADE_CKPT_LEVEL_JES2
JES3 checks (IBMJES3)
JES3_DATASET_INTEGRITY
JES3_DOT_POOL_USAGE
JES3_JET_POOL_USAGE
JES3_OST_POOL_USAGE
JES3_SEE_POOL_USAGE
Loadwait/Restart checks (IBMSVA)
SVA_AUTOIPL_DEFINED
SVA_AUTOIPL_DEV_VALIDATION
PDSE checks (IBMPDSE)
PDSE_SMSPDSE1
Predictive failure analysis checks (IBMPFA)
RACF checks (IBMRACF)
Write your own RACF resource checks!
RACF_AIM_STAGE
RACF_BATCHALLRACF
RACF_CERTIFICATE_EXPIRATION
RACF_classname_ACTIVE
RACF_ENCRYPTION_ALGORITHM
RACF_GRS_RNL
RACF_IBMUSER_REVOKED
RACF_ICHAUTAB_NONLPA
RACF_PASSWORD_CONTROLS
RACF_RRSF_RESOURCES
RACF_SENSITIVE_RESOURCES
RACF_UNIX_ID
ZOSMIGV1R13_DEFAULT_UNIX_ID
Reconfiguration checks (IBMRCF)
RCF_PCCA_ABOVE_16M
ZOSMIGV1R12_RCF_PCCA_ABOVE_16M
RMM checks (IBMRMM)
ZOSMIGV1R10_RMM_REJECTS_DEFINED
ZOSMIGV1R10_RMM_VOL_REPLACE_LIM
ZOSMIGV1R10_RMM_VRS_DELETED
ZOSMIGV1R11_RMM_DUPLICATE_GDG
ZOSMIGV1R11_RMM_REXX_STEM
ZOSMIGV1R11_RMM_VRSEL_OLD
RRS checks (IBMRRS)
RRS_ArchiveCFStructure
RRS_DUROffloadSize
RRS_MUROffloadSize
RRS_RMDataLogDuplexMode
RRS_RMDOffloadSize
RRS_RSTOffloadSize
RRS_Storage_NumLargeLOGBlks
RRS_Storage_NumLargeMSGBlks
RRS_Storage_NumServerReqs
RRS_Storage_NumTransBlks
RSM checks (IBMRSM)
RSM_HVSHARE
RSM_MEMLIMIT
RSM_MAXCADS
RSM_AFQ
RSM_REAL
RSM_RSU
RTM checks (IBMRTM)
RTM_IEAVTRML
SDSF checks (IBMSDSF)
SDSF_CLASS_SDSF_ACTIVE
SDSF_ISFPARMS_IN_USE
SDUMP checks (IBMSDUMP)
SDUMP_AVAILABLE
SDUMP_AUTO_ALLOCATION
Serviceability checks (IBMSLIP)
SLIP_PER
SMB checks (IBMSMB)
SMB_NO_ZFS_SYSPLEX_AWARE
ZOSMIGREC_SMB_RPC
SMS checks (IBMSMS)
SMS_CDS_REUSE_OPTION
SMS_CDS_SEPARATE_VOLUMES
Supervisor checks (IBMSUP)
IEA_ASIDS
IEA_LXS
SUP_HIPERDISPATCH
SUP_HiperDispatchCPUConfig
SUP_LCCA_ABOVE_16M
SUP_SYSTEM_SYMBOL_TABLE_SIZE
ZOSMIGV1R12_SUP_LCCA_ABOVE_16M
System logger checks (IBMIXGLOGR)
IXGLOGR_STAGINGDSFULL
IXGLOGR_ENTRYTHRESHOLD
IXGLOGR_STRUCTUREFULL
ZOSMIGV2R2_NEXT_IXG_REMOVE_DRXRC
System trace checks (IBMSYSTRACE)
SYSTRACE_BRANCH
SYSTRACE_MODE
Timer supervisor checks (IBMTIMER)
ZOSMIGREC_SUP_TIMER_INUSE
TSO/E (IBMTSOE)
TSOE_OPERSEWAIT_SETTING
TSOE_PARMLIB_ERROR
TSOE_USERLOGS
z/OS UNIX System Services checks (IBMUSS)
USS_AUTOMOUNT_DELAY
USS_CLIENT_MOUNTS
USS_FILESYS_CONFIG
USS_HFS_DETECTED
USS_KERNEL_PVTSTG_THRESHOLD
USS_KERNEL_RESOURCES_THRESHOLD
USS_KERNEL_STACKS_THRESHOLD
USS_MAXSOCKETS_MAXFILEPROC
USS_PARMLIB
USS_PARMLIB_MOUNTS
ZOSMIGREC_ROOT_FS_SIZE
ZOSMIGV1R13_RO_SYMLINKS
VLF checks (IBMVLF)
VLF_MAXVIRT
VSAM checks (IBMVSAM)
VSAM_INDEX_TRAP
VSAM RLS checks (IBMVSAMRLS)
VSAMRLS_CFCACHE_MINIMUM_SIZE
VSAMRLS_CFLS_FALSE_CONTENTION
VSAMRLS_DIAG_CONTENTION
VSAMRLS_QUIESCE_STATUS
VSAMRLS_SHCDS_CONSISTENCY
VSAMRLS_SHCDS_MINIMUM_SIZE
VSAMRLS_SINGLE_POINT_FAILURE
VSAMRLS_TVS_ENABLED
VSM checks (IBMVSM)
VSM_ALLOWUSERKEYCSA
VSM_CSA_LARGEST_FREE
VSM_CSA_LIMIT
VSM_SQA_LIMIT
VSM_PVT_LIMIT
VSM_CSA_THRESHOLD
VSM_SQA_THRESHOLD
VSM_CSA_CHANGE
XCF checks (IBMXCF)
XCF_CDS_MAXSYSTEM
XCF_CDS_SEPARATION
XCF_CDS_SPOF
XCF_CF_ALLOCATION_PERMITTED
XCF_CF_CONNECTIVITY
XCF_CF_MEMORY_UTILIZATION
XCF_CF_PROCESSORS
XCF_CF_SCM_UTILIZATION
XCF_CF_STR_AVAILABILITY
XCF_CF_STR_DUPLEX
XCF_CF_STR_EXCLLIST
XCF_CF_STR_MAXSCM
XCF_CF_STR_MAXSPACE
XCF_CF_STR_NONVOLATILE
XCF_CF_STR_POLICYSIZE
XCF_CF_STR_PREFLIST
XCF_CF_STR_SCM_AUGMENTED
XCF_CF_STR_SCMMAXSIZE
XCF_CF_STR_SCM_MINCOUNTS
XCF_CF_STR_SCM_UTILIZATION
XCF_CF_SYSPLEX_CONNECTIVITY
XCF_CFRM_MSGBASED
XCF_CLEANUP_VALUE
XCF_DEFAULT_MAXMSG
XCF_FDI
XCF_MAXMSG_NUMBUF_RATIO
XCF_SFM_ACTIVE
XCF_SFM_CFSTRHANGTIME
XCF_SFM_CONNFAIL
XCF_SFM_SSUMLIMIT
XCF_SFM_SUM_ACTION
XCF_SIG_CONNECTIVITY
XCF_SIG_PATH_SEPARATION
XCF_SIG_STR_SIZE
XCF_SYSPLEX_CDS_CAPACITY
XCF_SYSSTATDET_PARTITIONING
XCF_TCLASS_CLASSLEN
XCF_TCLASS_CONNECTIVITY
XCF_TCLASS_HAS_UNDESIG
z/OS File System checks (IBMZFS)
ZFS_CACHE_REMOVALS
ZOSMIGV1R11_ZFS_INTERFACELEVEL
ZOSMIGV1R11_ZFS_RM_MULTIFS
ZOSMIGV2R1_ZFS_VERIFY_CACHESIZE
ZFS_VERIFY_CACHESIZE
Trademarks