zZS18 The Latest in IBM Health Checker for z/OS …All statements regarding IBM's future direction and intent are subject to change or withdrawal without notice, and represent goals
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Grateful acknowledgement for contributions by Ulrich Thiemann,Grateful acknowledgement for contributions by Ulrich Thiemann,z/OS Health Checker and Generic Tracker developer.z/OS Health Checker and Generic Tracker developer.
TrademarksThe following are trademarks of the International Business Machines Corporation in the United States, other countries, or both.
The following are trademarks or registered trademarks of other companies.
* All other products may be trademarks or registered trademarks of their respective companies.
Notes:
Performance is in Internal Throughput Rate (ITR) ratio based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput that any user willexperience will vary depending upon considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed.Therefore, no assurance can be given that an individual user will achieve throughput improvements equivalent to the performance ratios stated here.IBM hardware products are manufactured from new parts, or new and serviceable used parts. Regardless, our warranty terms apply.
All customer examples cited or described in this presentation are presented as illustrations of the manner in which some customers have used IBM products and the results they may have achieved. Actualenvironmental costs and performance characteristics will vary depending on individual customer configurations and conditions.
This publication was produced in the United States. IBM may not offer the products, services or features discussed in this document in other countries, and the information may be subject to change withoutnotice. Consult your local IBM business contact for information on the product or services available in your area.
All statements regarding IBM's future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only.
Information about non-IBM products is obtained from the manufacturers of those products or their published announcements. IBM has not tested those products and cannot confirm the performance,compatibility, or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.
Prices subject to change without notice. Contact your IBM representative or Business Partner for the most current pricing in your geography.
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.Cell Broadband Engine is a trademark of Sony Computer Entertainment, Inc. in the United States, other countries, or both and is used under license therefrom.Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of IntelCorporation or its subsidiaries in the United States and other countries.UNIX is a registered trademark of The Open Group in the United States and other countries.Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.ITIL is a registered trademark, and a registered community trademark of the Office of Government Commerce, and is registered in the U.S. Patent and Trademark Office.IT Infrastructure Library is a registered trademark of the Central Computer and Telecommunications Agency, which is now part of the Office of Government Commerce.
For a complete list of IBM Trademarks, see www.ibm.com/legal/copytrade.shtml:
*, AS/400®, e business(logo)®, DBE, ESCO, eServer, FICON, IBM®, IBM (logo)®, iSeries®, MVS, OS/390®, pSeries®, RS/6000®, S/30, VM/ESA®, VSE/ESA,WebSphere®, xSeries®, z/OS®, zSeries®, z/VM®, System i, System i5, System p, System p5, System x, System z, System z9®, BladeCenter®
Not all common law marks used by IBM are listed on this page. Failure of a mark to appear does not mean that IBM does not use the mark nor does it mean that the product is notactively marketed or is not significant within its relevant market.
Those trademarks followed by ® are registered trademarks of IBM in the United States; all others are trademarks or common law marks of IBM in the United States.
Notice Regarding Specialty Engines (e.g., zIIPs, zAAPs and IFLs):Any information contained in this document regarding Specialty Engines ("SEs") and SE eligible workloads provides only general descriptions of thetypes and portions of workloads that are eligible for execution on Specialty Engines (e.g., zIIPs, zAAPs, and IFLs). IBM authorizes customers to useIBM SE only to execute the processing of Eligible Workloads of specific Programs expressly authorized by IBM as specified in the “Authorized UseTable for IBM Machines” provided at www.ibm.com/systems/support/machine_warranties/machine_code/aut.html (“AUT”).
No other workload processing is authorized for execution on an SE.
IBM offers SEs at a lower price than General Processors/Central Processors because customers are authorized to use SEs only to process certaintypes and/or amounts of workloads as specified by IBM in the AUT.
Consists of two parts:1. Framework – interface that allows you to run and
manage checks. Shipped as part of z/OS BCP.2. Individual Checks – programs that examine specific
settings or values for potential problems– Shipped and owned by the component, element, or
product.– Checks are provided by some ISVs, and you can
write your own!
A Health Checker instance can run on each system in the sysplex. There is only one instance ofHealth Checker on a single system.
“GLOBAL” checks run only on one system in a sysplex. This is to avoid running redundant copies of"Sysplex aware" checks. Checks of any locale can be declared "global“.
High-Level Introduction toIBM Health Checker for z/OS
The Health Checker address space will now bestarted automatically at IPL time via procedureHZSPROC. If you have not used Health Checker before, be prepared to initially
handle a number of check “exceptions” via messages like HZS0001I(low severity), HZS0002E (medium), and HZS0003E (high).
- We’ll cover that later.
Refer to the individual check message and the details in a check'smessage buffer on how to “fix” those exceptions. Sometimes your installation might follow different “best practices” and
you should customize the check behavior via HZSPRMxx parmlibmembers to avoid future exception messages.
The Health Checker User's Guide has good detailson how to handle those exceptions.
A new system parameter HZSPROC= can be specified as the
Health Checker procedure name to use in IEASYSxx orIEA101A. WARNUND is supported, for sharing with prior levels.
Default is HZSPROC=HZSPROC.
Proc HZSPROC is now shipped into SYS1.PROCLIB, notSYS1.SAMPLIB. Shipped proc has HZSPDATA commented out. Shipped proc should not require updating, as long as you
provide a HZSPDATA data set to use. Shipped HZSPROC contains HZSPRM=‘PREV’ (more
Specifying Health Checker Customization:HZSPDATA A new HZSPRMxx parameter, HZSPDATA, can be specified as the Health
Checker persistent data set to use. HZSPDATA(dsn) [VOLUME(volser)]
- If shared with pre-V2.1 levels, unsupported parameters are identifiedand processing continues.
Reminder: one persistent data set per system. Symbols supported!
Allows you to use shipped HZSPROC, and yet indicate what HZSPDATA to use.
If you do not provide a data set for HZSPDATA, you will receive HZS0013A –“SPECIFY THE NAME OF AN EMPTY HZSPDATA DATA SET”.
- Health Checker will still function, although persistent data cannot becaptured.
If you try to specify a different persistent data set later (for instance, with aMODIFY command), it will be ignored.
If both HZSPRMxx HZSPDATA= and HZSPROC HZSPDATA DD are specified,Health Checker will use the HZSPROC HZSPDATA= data set (which willoverride the HZSPRMxx HZSPDATA= data set).
Specifying Health Checker Customization:HZSPRMxx members
A new system parameter “HZS=” can be specified as analternative, and preferred way to identify theHZSPRMxx parmlib members to be used when HealthChecker starts. In IEASYSxx or message IEA101A at IPL time
- HZS=(aa,bb,..)
Existing method in proc, is still supported:- //HZSPROC PROC HZSPRM=‘aa,bb,…'
If both IEASYSxx HZS= and HZSPROC HZSPRM=parmlib members are specified, Health Checker will usethe HZSPROC HZSPRM= members (which will overridethe IEASYSxx HZS= members).
Migration Actions with Health Checker “Auto-Start”
If you already start Health Checker today, on V2.1:1. Remove any manual Health Checker start commands, probably found in
COMMNDxx as “START HZSPROC” If not removed, such a second start attempt will be rejected with a message.
2. You may change your HZSPROC to specify HZSPRM=‘PREV’, as isrecommended. This isn’t required, but is helpful to do.
3. Any HZSPRM= value you use is recommended to move to IEASYSxx HZS= . However, you can keep your HZSPROC HZSPRM= value, as it still is valid. Note that HZSPRM00 is NOT the default. There is no default HZSPRMxx in
z/OS V2.1. If you want an HZSPRMxx member, you have to ask for it.
4. Decide if you want to use the default HZSPROC that is shipped (which is calledHZSPROC). The default HZSPROC doesn’t have a HZSPDATA specified, so you’d need to
set up a HZSPDATA= in HZSPRMxx if you use the default proc. If you use a different name today than HZSPROC, decide if you want to:
a) Keep with your existing name. This means you’ll need an IEASYSxxHZSPROC=name -or-
b) Change your name to HZSPROC. This means at least a securitydefinition change to associate the user id from your existing name to theHZSPROC address space name.
If you use the name HZSPROC, and don’t want to use the shipped proc, makesure yours is in the proclib concatenation higher the IBM shipped proclib.
The first time you start Health Checker, you’ll see a lot ofexception messages. Rather than turn Health Check off, justquiet it down!
Create a simple HZSPRMxx member that sets all checks’WTOTYPE to HARDCOPY
****** ***************************** Top of Data **000001 ADDREPLACE POLICY(HCONLY)000002 UPDATE CHECK(*,*) WTOTYPE(HARDCOPY)000003 REASON=(‘ONLY HARDCOPY')000004 DATE=(20130101) /* could use symbolics here for today’s date */000005 ACTIVATE POLICY(HCONLY)****** **************************** Bottom of Data **
Note that this will affect all checks WTOTYPE. If you want tochange a specific check message WTOTYPE, you need tospecify it in the policy.
Don’t want to see all the check exceptionson the console?? Change it easily!!
z/OS R13 Health Checker for z/OSNew Function: SYNCVAL Problem Statement / Need Addressed: Health checks are usually run the first time right when they are added to Health
Checker. This time might be unpredictable since it's based on when HealthChecker is started or when health checks get added manually to Health Checker.
Also, health checks can be configured to run more than ONETIME, via specificINTERVAL values.
While this interval specifies the time between check runs (“iterations”), it starts”ticking” when the previous check iteration finished. This makes the next run'sstart time unpredictable over time (dependent not just on the first start time, butalso on individual check run times)
Solution: While the existing behavior works for most checks and checks are typically short
running, a new check attribute SYNCVAL can now help to make a check's firstand secondary start times more predictable.
SYNCVAL allows you to specify a specific time of day when the check shouldbe run the first time
Also, specifying such a “synchronization value” always makes the check'sINTERVAL count from (synchronize with) the check start time (as comparedto check finish time)
This also applies equally to an EXCEPTION INTERVAL.
Benefit / Value: Check run times become more predictable and an installation can schedule
certain health checks at more appropriate and convenient times.
SYNCVAL(SYSTEM) is the default. This is the existing behavior.
For example: A check with SYNCVAL(20:00) and INTERVAL(12:00) Will start at 8PM for the first time Will be scheduled to run at 8AM and 8PM on any following day
SYNCVAL(*:mm) lets the check start at the given minute of the currenthour (or of the next hour, if that minute already has passed)
For example: A check is added at 7:03PM and a matching POLICY withwith SYNCVAL(*:15) and INTERVAL(00:20) is active, then The check will start at 7:15PM for the first time And will be scheduled to run again at 7:35PM, 7:55PM, 8:15PM,
z/OS R13 Health Checker for z/OSNew Function: DOM Control
Problem Statement / Need Addressed: Health check exception messages are typically sent to both the check's message
buffer and to the console, the latter in form of a WTO (Write to Operator)message.
Previously, the system would always remove those WTOs in between check runs("iterations"), just before a new iteration.
In certain situations this can lead to undesired, repeated alerts of the "same"potential problem.
Solution: While this automatic handling is good for most checks, exploiting health checks
can now choose to decide on their own when a DOM (Delete Operator Message)request is issued.
If not DOMed, a previous WTO stays active, and the new (but typically duplicate)exception message just gets sent to the message buffer (with refreshed details)
z/OS R12 Health Checker for z/OSNew Function: Metal C Support
Problem Statement / Need Addressed: The collection of officially, externally supported languages to write health checks
in, was limited Assembler and SystemREXX.
Assembler is not the easiest language to learn and use, especially for developersnew to the platform.
SystemREXX is “easier”, but still has limitations, for example: There were restrictions on what system data could be accessed The exec has to run authorized Has special keywords to understand on the “Add check” interface .
Solution: Support Metal C as an additional check-writing language.
Benefit / Value: C is familiar to new developers and developers from many different platforms Can be used to write local (authorized) and remote (authorized or not authorized)
checks. Does not require any new Health Checker syntax outside of the actual check
z/OS R12 Health Checker for z/OSNew Function: Metal C Support
Code samples are shipped in /usr/lpp/bcp/samples To let you quickly try out METAL C for health checks Local and remote health check examples HZSADDCHECK exit routine “Makefile” to build the above using the Unix utility “make”
Provided as C header files in data set SYS1.SIEAHDR.H For example SYS1.SIEAHDR.H(HZSHPQE)
Can be included in METAL C as “normal” C include:#include <hzshpqe.h>
Excellent help in Redpaper “Exploiting the IBM HealthChecker for z/OS Infrastructure”, Chapter 9. Writinghealth checks using Metal C, published Dec 2010 http://www.redbooks.ibm.com/abstracts/redp4590.html?Open
z/OS R12 Health Checker for z/OSNew Function: SDSF History Display Access with the L action character on the check, from the CK panel.
View the frequency and results of previous health check runs.
Compare historical results of health checks to evaluate the results of
updating component parameters.
Browse, save, or print specific health check runs
Checks recorded in the logstream before the IBM Health Checker for z/OSaddress space was last restarted are not included on the CKH panel. You can now see the name of the logstream from the CK panel, with new
column called “LogStream”.
By default, the last 10 iterations of a check are shown. Override this default using the new SET CKLIM command. The minimum
number of checks can be 1 and the maximum is 999,999. Also override using the new Panel.CK.DefaultCKLim custom property.
However, the user can override this default via the SET CKLIM command
z/OS R12 Health Checker for z/OSNew Function: DIRECTMSG
Problem Statement / Need Addressed: Ever since the Health Checker framework was introduced, a health check
consisted of two main parts: the check routine (code) and the message table (msg data)
The process of defining the content of the message table and creatingthe message table still appears intimidating to many, especially newhealth check writers.
Solution: Allow any check message text to be “embedded” directly in the check
routine, therefore dropping the requirement to provide a separatemessage table.
Benefit / Value: Check writers can focus on health check content and avoid seemingly
“complicated” process of creating a message table.
z/OS R12 Health Checker for z/OSNew Function: BPX.SUPERUSER
Problem Statement / Need Addressed: In order to successfully run health checks which use z/OS UNIX, Health Checker
requires a user profile with an OMVS segment and superuser authority. Previously, superuser authority was required to be given via a user profile with uid(0)
Uid(0) user profiles are closely watched by auditors and might require extraexplaining and might even prevent users from exploiting Health Checker
Solution: You can associate the Health Checker address space with a user profile which
has READ access to the BPX.SUPERUSER resource in the FACILITY class, and A non-zero uid
Benefit / Value: The Health Checker associated user profile does not appear on any uid(0) audit
Problem Statement / Need Addressed The existing “One-byte console ID tracker” started as a single purpose
migration aid. Over time other components used it to track events thatwould aid in their migration efforts. While never designed for suchadditional use, the Console Tracker reached its limits.
Solution Provide a “generalized” version of the tracking facility, the new
“Generic Tracker”.
Benefit / Value The new tracking facility allows tracking of more information and is
more flexible and useable. It is now a general tool to assess migration needs and to assess
To set it and forget it•Specify in IEASYSxx or at IPL time on IEA101A.
• WARNUND is supported for GTZ=
•SYS1.PARMLIB contains a GTZPRM00 that contains aprimed exclusion list, based on what is “uninteresting” at thispoint.•Multiple parmlib members accepted!
An existing CNIDTRxx parmlib member?•If you are already using the Consoles Tracking Facility andhave a customized CNIDTRxx parmlib member, you need toconvert it to use GTZPRMxx’s EXCLUDE statements
Generic Tracker replaces the Console ID Trackingfacility (Console Tracker)
All commands relating to the Console Tracker havebeen removed (next slide)
CNIDTRxx must be converted to GTZPRMxx (aswe saw) Remember, use handy GTZCNIDT tool!
The CNZTRKR macro service continues to besupported and is routed to Generic Tracker underthe covers. Therefore, existing CNZTRKR calls do not need to change. We recommended using GTZTRACK, instead of CNZTRKR, however.