AIOps: Monitoring and Observability - Group home

So many OPTIONs (IBM Z Monitoring Configuration Manager)

  

The initial version of IBM Z Monitoring Configuration Manager was released in 2020.  At that time, it included just a few basic actions CREATE, DISCOVER, GENERATE, DELETE, and MIGRATE - which were sufficient for creating new runtime environments (RTE), migrating from older PARMGEN to Configuration Manager, and performing basic maintenance tasks. However, it soon became clear that these basic functions were not adequate for every site or scenario.

With a new OPTION parameter appearance in Q1 2023 (OA64052/UJ92421) we allowed more granular approach for almost each of the initial actions. 

In this first article, I'll focus on introducing the OPTION parameter itself and its various possible settings, along with general guidance on how to use it. This piece is meant to set the stage for the rest of the series, where each subsequent article will dive deeper into a specific choice, complete with usage examples and practical tips. I'll also include links to these articles as they’re published, so you can explore each option in detail.

What are my OPTIONS?

Almost each ACTION has a set of available OPTIONs, that can provide more granular control over the action processing. It means that specific action will behave differently when an additional options is specified.

The list of all available options:
CREATE MIGRATE GENERATE PACKAGE DEPLOY Introduced (APAR/PTF)
DEBUG 
OA65222/UJ93804
MULTIPLE 
 OA66050/UJ95019
 OA64052/UJ92421
NOUSS 
 OA64052/UJ92421
OA64681/UJ93077
PREPARE 
OA66051/UJ95574
QUICKCONFIG 
OA65222/UJ93804
QUICKLOAD 
OA64681/UJ93077
RELINK 
OA65222/UJ93804
SECEXITS 
 OA64052/UJ92421
TRGCOPY 
OA66050/UJ95019
USS 
 OA64052/UJ92421
OA64681/UJ93077
VALIDATE 
OA64681/UJ93077

We can categorize all the options into three main types:

  • Options that disable specific features within an action. (red)
    
E.g.: NOUSS option will lead to the full GENERATE action execution, where only z/OS UNIX related steps will be skipped.
  • Options that execute a subset of features within an action. (green)

    E.g. USS option will execute only z/OS UNIX related steps within whole GENERATE action. It means that no other data sets or members impacted.
  • Options that alter the behavior of an action. (yellow)
    
E.g. MULTIPLE option will change the behaviour of CREATE and MIGRATE actions by changing the output member naming standard from Kpp$PARM to Kpp$<sysname>.

You can find more details about each option in the official product documentation: https://www.ibm.com/docs/en/om-shared?topic=actions-action-options

Why do you need OPTIONS at all?

The interesting fact is, that in most of the cases - you don’t. All the mentioned actions works just fine without any additional options. Still, there are times when an additional OPTION can be a huge time-saver, particularly on a busy systems where CPU resources are limited. 


Suppose you’ve made a minor update to a parameter value within the RTEDEF data set and want to apply this change to your runtime environment. What’s the standard procedure to implement this update?

  1. Change parameter inside RTEDEF library
  2. Run JCL with GENERATE action.

This tiny change will force GENERATE action to rebuild whole runtime environment. Depending on your system performance it might take a while to complete. 

Luckily, there’s a better solution to consider: use the OPTION QUICKCONFIG!

The maintenance process will remain the same. 

  1. Change parameter inside RTEDEF library
  2. Run JCL with GENERATE action. But this time add an OPTION QUICKCONFIG

It will speed-up the performance of the job by skipping certain unnecessary steps. e.g. it will not reload all the SMP/e related members into the interim libraries, it will skip the load modules refresh steps, will skip many other unnecessary steps for such a minor change. 
You will notice that the job will complete way quicker and will use less CPU time.

How to use OPTION parameter

The only place where you can put OPTION parameter is your JCL KCIVARS DD statement.  If you place OPTION parameter inside the RTEDEF member it will be ignored. 
The syntax is similar to every other variable inside KCIVARS DD statement:

//UID#ZMCM JOB ,CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
/*JOBPARM SYSAFF=ZOS1
//S1 EXEC PGM=KCIOMEGA,REGION=0M,DYNAMNBR=256
//STEPLIB DD DISP=SHR,DSN=MONSUITE.TKANMOD
//KCIFLOW DD DISP=SHR,DSN=MONSUITE.TKANCUS(KFJOMEGA)
//KCIVARS DD *
*
ACTION           CREATE
OPTION           MULTIPLE
RTE_NAME         RTE1
RTE_PLIB_HILEV   TSOUID.MONSUITE
/*

If you want to specify more than one option for the same action, you have to make sure it is compatible. Compatibility table for all the options available for GENERATE action can be found here: https://www.ibm.com/docs/en/om-shared?topic=generate-options . In most of the cases,  all the options that fall into the same category are compatible.
Specify all the desired options one by one, separate the values with a comma and no spaces. 


//UID#ZMCM JOB ,CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
/*JOBPARM SYSAFF=ZOS1
//S1 EXEC PGM=KCIOMEGA,REGION=0M,DYNAMNBR=256
//STEPLIB DD DISP=SHR,DSN=MONSUITE.TKANMOD
//KCIFLOW DD DISP=SHR,DSN=MONSUITE.TKANCUS(KFJOMEGA)
//KCIVARS DD *
*
ACTION           GENERATE
OPTION           QUICKCONFIG,USS
RTE_NAME         RTE1
RTE_PLIB_HILEV   TSOUID.MONSUITE
/*

What’s next?

I’m preparing a blog for each available OPTION, where I’ll address key questions such as how and when to use each option. Each post will include detailed examples to illustrate their usage.
This article will be the entry point where you will find all the links to each blog. 

The placeholder for the links:

#OMEGAMON #IBMZ  #AIOpsonZ