WAPL in SystemAutomationUsing the Scheduling product formerly known as OPC from SA
SystemAutomation & WAPLAgenda Introduction of speaker and SEB
Mainframe environment
Background, what was I trying to solve?
How to get it to work
Examples
Summary
Short introduction of myselfMagnus Persson 1995 Skandia IT, Print operator
1997 Skandia IT, System operator
2000 IBM, z/OS sysprog, TCP/IP, RACF, Jobtrac
2005 Tieto, z/OS sysprog TCP/IP, RACF, OPS/MVS, Mainview, Control-D & OPC
2013 SEB, SystemAutomation and some other things like IWS and zSecure…
SEB Mainframe Overview
PDC1 PDC2
19
DWDM
75-?????
Replication VLAN
STGD-STGD
IDAA
DCRIKD
IDAA
DWDM
InfinibandEthernet
Dark FiberFICON (FCP)Fiber ChannelFCIP
SKLM
SEBMSP SAN
IBM SAN384B-1
IBM SAN384B-2
Router
SKLM
IBM DS8886IBM DS8886
IBM TS7760
Router
IBM TS7760
IP
TKE
TKE
IBM z14IBM z14
BDC
SKLM(shared with IBMi)
IBM TS7760
IBM DS8886(shared with IBMi)
IP Router
SystemAutomation & WAPLAgenda Introduction of speaker and SEB
Mainframe environment
Background, what was I trying to solve?
How to get it to work
Examples
Summary
BackgroundWAPL is an “easy” scripting language similar to REXX which can modify anything in IWS
We have old functions using PIF/OCL that I don’t feel really confident with
Since I am responsible for SA at our shop, automation “thinking” start point is SA but we use IWS more and more
IWS is good at scheduling, SA is good at automating, combine them and get all sorts of new possibilities.
We use IWS for our IPL’s and my colleagues running the OS wanted an easy command to be able to IPL using IWS, and also be able to send shutdown command of several systems to GDPS.
I think that WAPL is fun….
SystemAutomation & WAPLAgenda Introduction of speaker and SEB
Mainframe environment
Background, what was I trying to solve?
How to get it to work
Examples
Summary
Starting with WAPLMy starting point with wapl. I have the feeling that it is a ”batch oriented interface”…
Using WAPL “externally”Setting up WAPL to be able to talk to it from other parts of z/OS
From the WAPL user guide:
You can create custom versions of the EQQYXJPX procedure, for each controller you have, that enable simple Workload Automation Programming Language commands to be run from the console or automation products.
Provided that the customer procedure is placed in the correct library for started tasks, you can run a console command such as S WSLCEXEC,ARGS=’ADD ADID(MYAPPL)’.
Using WAPL “externally”Setting up WAPL to be able to talk to it from other parts of z/OS
OK, we have set up this STC.
Run the command.
How do we catch if it went OK or not in an easy way, the STC will start and stop with an RC=0 “always”…
Maybe set it up as a TRANSIENT in SA, but I don’t want an ABEND only because an ADD of a APPLICATION fails…
Using WAPL “externally”Setting up WAPL to be able to talk to it from other parts of z/OS
I added two steps to the STC which sent out an WTO if there was a problem.
Using WAPL “externally”Setting up WAPL to be able to talk to it from other parts of z/OS
But is the usage of a START STC command a good and dynamic way of using WAPL from an automation point?
No, not if want to be able to call WAPL from automation and get a response back.
If you do the START STC approach from automation, you will get a RC = 0, since SA will look at the return code from the MVS command.
Using WAPL “externally”Setting up WAPL to be able to talk to it from other parts of z/OS
The solution:
If you already have the SA <-> IWS interface in place then you are all good to go, if you don’t have the interface in place, set it up to get SA the IWS datasets in its concatenation and also to get access to SA WS in IWS. In my opinion if you have SA and IWS, you should use this!
Copy EQQYXTOP REXX from SYS1.SEQQWAPL to SA REXX library
Write a “driver” REXX that makes the call to EQQYXTOP
Start testing!
Using WAPL “externally”Setting up WAPL to be able to talk to it from other parts of z/OS
My command string for setting a WS to ACTIVE from SA:
sawapl twac MODIFY CPWSV WSNAME(CPM0) WSDEST(TWATSB30) STATUS(A)
sawapl = My “driver”, a modified copy of SYS1.SEQQSAMP(EQQWTSO*)
twac = The IWS subsystem that you want to talk to, in some LPAR’s we have more than one IWS.
No need for starting up an STC address space.
I give the RC back to whoever calls sawapl, much easier to see if the command went OK or not.
Possibility to use this as a “console command” by using SA command character.
SystemAutomation & WAPLAgenda Introduction of speaker and SEB
Mainframe environment
Background, what was I trying to solve?
How to get it to work
Examples
Summary
Using WAPL from SA example
ACF2 backup application:
Old Application:
Uses SA WS to send in a command to ACF2 for backup, in the old solution the command was executed and then the job waited for 20 minutes and then continued.
No check if the command executed OK or not.
New Application:
In the new Application the command is executed, and the operation following is a “dummy” operation.
This operation will be set to Complete from SA if the command executes OK, and to Error if the command fails.
Using WAPL from SA example
ACF2 backup application:
Using WAPL from SA example ACF2 backup
Using WAPL from SA exampleIPL
We use IWS to schedule almost all of our IPL’s in the prod sysplex
No manual work needed
Operators gets an email that the system will go down but if there are no problems they don’t need to do anything
If there is a problem, it will show up on the IWS error que, and operators will take action
Using WAPL from SA example IPL
Using WAPL from SA exampleIPL scheduled from IWS , dynamically added by command from SA
Constructed so that z/OS sysprogs can use our IPL applications without having to know IWS.
The IPLSTART command adds two or more Applications depending on what input you send to the command.
IPLSTART system option is the syntax. Options can be:QUICK This skips some checking, performs a quicker IPL.1500 The IPL will start at 1500 today.
There will be a WTOR to reply to, so that you will confirm that you have the right system, here you also can reply HOLD, then the system wont REIPL, it will stay down.
The reason for having the GDPS STOP command in a separate Application is because GDPS can only execute ONE stop command at the time, but that command can contain several LPAR’s.
Using WAPL from SA example IPL%IPLSTART sysid (in this example SB45)
Application AUTOIPL45
Application AUTOIPLSTOP
Using WAPL from SA example IPL
Using WAPL from SA example IPL
Using WAPL from SA exampleSTOPVOTES
We have many jobs that STOP and START applications in SA
We often had a hard time finding the Application/job who had put in the STOP
Using WAPL from SA exampleSTOPVOTES
I created a job that runs when Controller starts up and populates JCL VARIABLES
Using WAPL from SA example Stopvotes
Using WAPL from SA example Stopvotes
SystemAutomation & WAPLAgenda Introduction of speaker and SEB
Mainframe environment
Background, what was I trying to solve?
How to get it to work
Examples
Summary
Closing thoughts from the author
Talk to your IWS colleagues, set it up. Or as in my case, talk to yourself! ☺
Try it, I think you can get a lot of good things out of this with little work effort.
Send me an email, I’m happy to provide the small REXX’es I have written to get this to work:[email protected]
Questions?