Cheryl Watson’s Tuning Letter
Getting to Goal Mode – Step by Step
I’ve often been asked, “What’s the minimum I need to do to be able to run WLM in goal mode?” (Also, “Do I have to create a real sysplex to be able to run in goal mode?”) I haven’t found a simple checklist of how to get to a monoplex environment and run in goal mode, so I’ve documented the following steps to help you.
The best references are the Planning Workload Manager manual (SP 5 – GC28-1493, OS/390 – GC28-1761) and Setting Up a Sysplex manual (SP 5 – GC28-1449, OS/390 – GC28-1779). Our March/April 1995 and May/June 1995 issues described basic WLM and a Quickstart policy, and our Sep/Oct 1995 issue covered the basics of sysplex. (All back issues are still available.)
The following checklist provides the minimum number of steps needed to create a WLM goal mode environment in a single system configuration in a test system. If you’re in a multi-system sysplex already and you simply want to run goal mode on one system, then begin with step # 5. Remember that in a sysplex, there can be only one WLM service definition and policy in effect for all systems at any one time, although some systems may remain running in compatibility mode. Before you can move goal mode to production, you’ll have a few other steps, such as identifying all current reporting using performance groups and changing the reports to use service classes. This checklist assumes that you will be implementing goal mode in a test system first, which is highly recommended if you’re running in a very constrained system. If you have plenty of resources, such as just after an upgrade, you can safely move to goal mode in production.
1. Create a sysplex couple data set if one doesn’t already exist. It’s important to remember where you store this JCL. We happen to keep ours in our SYS3.PARMLIB(COUPLXCF) and document its location in the COUPLExx parmlib member.
SYS3.PARMLIB(COUPLXCF):
//STEP1 EXEC PGM=IXCL1DSU
//STEPLIB DD DSN=SYS1.MIGLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINEDS SYSPLEX(WAWPLEX)
DSN(SYS1.XCFCDS01) VOLSER(RAID01)
MAXSYSTEM(8)
CATALOG
DATA TYPE(SYSPLEX)
ITEM NAME(GROUP) NUMBER(50)
ITEM NAME(MEMBER) NUMBER(100)
ITEM NAME(GRS) NUMBER(1)
DEFINEDS SYSPLEX(WAWPLEX)
DSN(SYS1.XCFCDS02) VOLSER(RAID02)
MAXSYSTEM(8)
CATALOG
DATA TYPE(SYSPLEX)
ITEM NAME(GROUP) NUMBER(50)
ITEM NAME(MEMBER) NUMBER(100)
ITEM NAME(GRS) NUMBER(1)
/*
2. Create or update the COUPLExx parmlib member to specify the name of your monoplex and the names of the sysplex data sets you’ve defined in step 1. IBM recommends that you keep COUPLE00 defined as a LOCAL sysplex for backup and use a different suffix for your actual sysplex parameters. We use COUPLEWW as our primary member.
SYS3.PARMLIB(COUPLEWW):
COUPLE SYSPLEX(WAWPLEX)
PCOUPLE(SYS1.XCFCDS01)
ACOUPLE(SYS1.XCFCDS02)
/* JCL TO FORMAT THE SYSPLEX CDS IS IN SYS3.PARMLIB(COUPLXCF) */
3. Update IEASYSxx parmlib member to specify the name of the COUPLExx member you created in step 2 and to specify the sysplex(monoplex) configuration into which the system is to be IPLed:
COUPLE=WW
PLEXCFG=MONOPLEX
4. IPL with the new IEASYSxx and the new COUPLExx. The system is now IPLed in monoplex mode and all of the rest of the work can be done dynamically without an IPL.
5. Create and format the WLM couple data sets. This can also be done in the WLM application, but we prefer to keep JCL around to show the parameters that were used. We save our JCL in SYS3.PARMLIB(COUPLWLM).
SYS3.PARMLIB(COUPLWLM):
//STEP1 EXEC PGM=IXCL1DSU
//STEPLIB DD SYS1.MIGLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINEDS SYSPLEX(WAWPLEX)
DSN(SYS1.WLMCDS01) VOLSER(RAID01)
MAXSYSTEM(8)
CATALOG
DATA TYPE(WLM)
ITEM NAME(POLICY) NUMBER(10)
ITEM NAME(WORKLOAD) NUMBER(30)
ITEM NAME(SRVCLASS) NUMBER(50)
DEFINEDS SYSPLEX(WAWPLEX)
DSN(SYS1.WLMCDS02) VOLSER(RAID02)
MAXSYSTEM(8)
CATALOG
DATA TYPE(WLM)
ITEM NAME(POLICY) NUMBER(10)
ITEM NAME(WORKLOAD) NUMBER(30)
ITEM NAME(SRVCLASS) NUMBER(50)
/*
These values should be sufficient for most installations.
6. Create a pointer to the WLM couple data sets from the console to allow you to implement goal mode without having to re-IPL your system:
SETXCF COUPLE,TYPE=WLM,PCOUPLE=SYS1.WLMCDS01
SETXCF COUPLE,TYPE=WLM,ACOUPLE=SYS1.WLMCDS02
7. Update the COUPLE parmlib member to create a pointer to the WLM couple data sets during the next IPL:
SYS3.PARMLIB(COUPLEWW):
COUPLE SYSPLEX(WAWPLEX)
PCOUPLE(SYS1.XCFCDS01)
ACOUPLE(SYS1.XCFCDS02)
DATA TYPE(WLM)
PCOUPLE(SYS1.WLMCDS01)
ACOUPLE(SYS1.WLMCDS02)
/* JCL TO FORMAT THE SYSPLEX CDS IS IN SYS3.PARMLIB(COUPLXCF) */
/* JCL TO FORMAT THE WLM CDS IS IN SYS3.PARMLIB(COUPLWLM) */
8. Authorize TSO userids to update and or read the WLM policy.
rdefine facility mvsadmin.wlm.policy uacc(none) notify(p390)
permit mvsadmin.wlm.policy class(facility) id(clw) access(update)
permit mvsadmin.wlm.policy class(facility) id(peter) access(read)
setr raclist(facility) refresh
9. Create a WLM policy from the ISPF WLM application. If the WLM application has not been added to the ISPF menu, you can access the WLM application from the TSO prompt with:
ex ‘SYS1.SBLSCLI0(IWMARIN0)’
Build the service definition. If you do not already have a service definition designed, we recommend you use our Quickstart Policy. It has been found to be effective in many shops that have implemented goal mode. You can save a backup of your completed service definition to a PDS with FILE on the action bar.
10. Install the definition into the WLM couple data set by selecting Install Definition from the Utilities action bar.
11. Activate the policy. From the Utilities action bar, select Activate Definition or issue ‘V WLM,POLICY=policyname’ from the console.
12. You now have an active policy, but you’re still in compat mode. To get into goal mode, issue ‘F WLM,MODE=GOAL’ from the console to get into goal mode. Test the system, and if problems arise, you can always go back to compat mode with ‘F WLM,MODE=COMPAT’.
It’s really pretty simple. The hardest part will be to get a handle on all of your reporting changes, since you’ll now be collecting data by service class instead of performance groups.