Job scheduling and console automation are very important operational characteristics of high-end enterprise data centers. Control-M and Control-O are nice pieces of BMC software to achieve high service levels. I will tell how to use these tools in customer installations. I believe it will be useful for consultant colleagues.
Control-M is job scheduling solution for lots of platforms including zOS. You can start interactive facilities using TSO IOAISPF, even if you do not know where ISPF/PDF option is inserted. In the IOA primary option menu you see Control-M and Control-O selections. IOA is Integrated Operations Architecture covering both products.
--------------------- IOA PRIMARY OPTION MENU ------------------(1) OPTION ===> USER SYSUSER DATE 28.05.13 2 JOB SCHEDULE DEF CTM Job Scheduling Definition 3 ACTIVE ENV. CTM Active Environment Display 4 COND/RES IOA Conditions/Resources Display 5 LOG IOA Log Display 6 UTILITIES IOA On-Line Utilities 7 MANUAL COND IOA Manual Conditions Display 8 CALENDAR DEF IOA Calendar Definition IV VARIABLE DATABASE IOA Variable Database Definition Facility C CMEM DEFINITION CTM Event Manager Rule Definition OR RULE DEFINITION CTO Rule Definition OM MSG STATISTICS CTO Message Statistics Display OS RULE STATUS CTO Rule Status Display OL AUTOMATION LOG CTO Automation Log Display OA AUTOMATION OPTS CTO Automation Options Menu OC COSMOS STATUS CTO COSMOS Status Screens COMMANDS: X - EXIT, HELP, INFO OR CHOOSE A MENU OPTION 10.12.53
Using Control-M you can start a job stream some time every day, periodically one after the other, last Saturday of a month, 9 to 5 etc etc. First you select “Schedule Definition” facility. A schedule library will be displayed.
------------ CONTROL-M SCHEDULING DEFINITION FACILITY - ENTRY PANEL --------(2) COMMAND ===> SPECIFY LIBRARY, SCHEDULING TABLE, JOB LIBRARY ===> IOA6304.CTM.SYSA.SCHEDULE TABLE ===> (Blank for table selection list) JOB ===> (Blank for job selection list) TYPE OF TABLE ===> ( J Job - default G Group - for new tables only) SHOW JOB DOCUMENTATION ===> N (Y/N) AUTO-SAve DOCUMENTATION ===> N (Y/N) USE THE COMMAND SHPF TO SEE PFK ASSIGNMENT 10.14.03
You enter to accept it. All tables in that schedule library will be displayed.
LIST OF TABLES IN IOA6304.CTM.SYSA.SCHEDULE -------------(2) COMMAND ===> SCROLL===> CRSR OPT NAME -------- VV.MM CREATED CHANGED SIZE INIT MOD ID IDGS1 01.01 2010/04/15 2010/04/15 14:49 30 21 0 SYSUSER ITABLE1 01.06 2013/05/24 2013/05/27 08:23 9 9 0 SYSUSER IVP0 01.00 2009/09/11 2009/09/11 16:11 35 35 0 USR1006 IVP1 01.00 2009/09/11 2009/09/11 16:11 71 71 0 USR1006 IVP2 01.00 2009/09/11 2009/09/11 16:11 65 65 0 USR1006 IVP3 01.00 2009/09/11 2009/09/11 16:11 85 85 0 USR1006 IVP4 01.00 2009/09/11 2009/09/11 16:11 98 98 0 USR1006 IVP5 01.00 2009/09/11 2009/09/11 16:11 62 62 0 USR1006 IVP6 01.00 2009/09/11 2009/09/11 16:11 194 194 0 USR1006 MAINDAY 01.00 2009/03/17 2009/03/17 12:00 53 53 0 IOA6304 MAINDAY0 01.02 2009/03/17 2010/02/18 16:33 53 53 0 USR1006 SYSYPRJ 01.09 2011/04/07 2012/04/10 09:45 44 11 0 SYSUSER SYSYPRJ0 02.98 1999/02/04 2010/04/07 15:03 58 10 0 SYSUSER ====== >>>>>>>>>>>>>>>>>>> NO MORE TABLES IN LIBRARY <<<<<<<<<<<<<<<< === OPTIONS S SELECT O ORDER F FORCE G GRAPHIC FLOW B BROWSE D DELETE 10.14.39
Select a table typing “S” in front of it. To create a table type “S” and a non-existent table name on command line. First browse through some existing members in tables and then you create your first scheduled job.
After defining a job, type “O” in front of it to order (activate). The job will be started when the time comes.
You can see job status in “Active Environment Display” option. Status for each job is either “Wait Schedule” or “Ended OK” most of the time.
Note that next day it will not execute automatically. If you would like to execute it every day, you have to add the table in CTMDAY procedure DAJOB concatenation. CTMDAY procedure will be executed some time after midnight and all jobs in DAJOB DD definition will be rescheduled. Once you add a table into CTMDAY procedure, you can add new jobs in that table. All jobs in that table will be rescheduled every day.
If you would like to remove the job before execution, first “hold” it and then “delete” it in “Active Environment” option.
Filter: ------- CONTROL-M Active Environment ------ UP D - (3) COMMAND ===> SCROLL ==> CRSR O Name Owner Odate Jobname JobID Typ ----------- Status ------------ ================== Top of Jobs List ================= DAILYPRD PRODMNGR 280513 JOB Wait Schedule DAILYSYS SYSTEM 280513 JOB Wait Schedule IOALDNRS PRODMNGR 280513 JOB Wait Schedule IOACLCND PRODMNGR 280513 JOB Wait Schedule MQPTDEF USR1022 280513 MQPTDEF /03587 JOB Ended "OK" BKPWKY USR1002 280513 BKPWKY /03556 JOB Ended "OK" IRX0080 SYSUSER 280513 SYSUSERA/03623 JOB Ended "OK" IRX0080 SYSUSER 280513 SYSUSERA/03625 JOB Ended "OK" IRX0090 SYSUSER 280513 SYSUSERA/03626 JOB Ended "OK" ================== Bottom of Jobs List ================= Commands: OPt DIsplay Show HIstory RBal REFresh Auto Jobstat SHPF Note Table OPt command toggles between Commands and Options display 10.27.01
If you would like to execute a job multiple times a day, define its TASKTYPE as “CYClic” and specify “FROM TIME”, “UNTIL TIME” and “INTERVAL”.
JOB: MYDEMO2 LIB IOA6304.CTM.LP13.SCHEDULE TABLE: MANUAL1 COMMAND ===> SCROLL===> CRSR +---------------------------------- BROWSE -----------------------------------+ | MEMNAME MYDEMO2 MEMLIB PRDZ.LP13.OPERLIB | | OWNER USR1015 TASKTYPE CYC | | APPL GROUP | | DESC SAATLI VE TEKRARLI IS BASLATMA | | OVERLIB STAT CAL | | SCHENV SYSTEM ID NJE NODE | | SET VAR | | CTB STEP AT NAME TYPE | | DOCMEM MYDEMO2 DOCLIB IOA6304.CTM.LP13.DOC | | =========================================================================== | | DAYS ALL DCAL | | AND/OR | | WDAYS WCAL | | MONTHS 1- Y 2- Y 3- Y 4- Y 5- Y 6- Y 7- Y 8- Y 9- Y 10- Y 11- Y 12- Y | | DATES | | CONFCAL SHIFT RETRO N MAXWAIT 00 D-CAT | | MINIMUM PDS | | DEFINITION ACTIVE FROM UNTIL | | =========================================================================== | | IN | | CONTROL | | RESOURCE | | FROM TIME 0900 + DAYS UNTIL TIME 0935 + DAYS | | DUE OUT TIME + DAYS PRIORITY SAC CONFIRM | | TIME ZONE: | | =========================================================================== | | OUT | | SYSOUT OP (C,D,F,N,R) FROM | | MAXRERUN RERUNMEM INTERVAL 00030 M FROM END | | STEP RANGE FR (PGM.PROC) . TO . | | ON PGMST PROCST CODES A/O | | DO | | ON SYSOUT FROM TO A/O | | DO | | SHOUT WHEN TIME + DAYS TO URGN | | MS | | =========================================================================== | | APPL TYPE APPL VER | | APPL FORM CM VER | | INSTREAM JCL: N | | | ======= >>>>>>>>>>>>>>>>>>> END OF SCHEDULING PARAMETERS <<<<<<<<<<<<<<<< ===== COMMANDS: DOC, PLAN, JOBSTAT 09.00.39
Another nice tool for operations staff is Control-O. It is very useful for console automation. You can create rules to issue complicated set of commands like starting traces, issuing dump commands just creating user commands. You can issue commands periodically. Automate IPL (Initial Program Load) procedures and system and network restarts.
To create rules, select Control-O “Rule Definition” option from IOA primary option menu. All tables in rule library are displayed.
TABLES OF LIBRARY IOA6304.CTO.LP14.RULES ------------(OR) COMMAND ===> SCROLL===> CRSR OPT NAME -------- VV.MM CREATED CHANGED SIZE INIT MOD ID $COSMOSU 01.00 2009/03/17 2009/03/17 12:00 2383 2383 0 IOA6304 $HASP 01.00 2009/03/17 2009/03/17 12:00 50 50 0 IOA6304 COMMANDS 01.00 2009/03/17 2009/03/17 12:00 26 26 0 IOA6304 COSMOS 01.00 2009/03/17 2009/03/17 12:00 3739 3739 0 IOA6304 CTDMRULE 01.00 2009/03/17 2009/03/17 12:00 8 8 0 IOA6304 CTMAPIF 01.00 2009/03/17 2009/03/17 12:00 21 21 0 IOA6304 CTMMRULE 01.00 2009/03/17 2009/03/17 12:00 8 8 0 IOA6304 CTOGATEI 01.00 2009/03/17 2009/03/17 12:00 295 295 0 IOA6304 CTOMRULE 01.00 2009/03/17 2009/03/17 12:00 8 8 0 IOA6304 CTOSCMD 01.00 2009/03/17 2009/03/17 12:00 33 33 0 IOA6304 DAILY 02.05 1997/04/30 2012/05/16 09:07 117 18 0 SYSUSER DAILY0 01.00 2009/03/17 2009/03/17 12:00 9 9 0 IOA6304 DELQUEUE 01.26 2001/02/26 2011/01/11 09:39 373 241 0 SYSUSER DEVICE 01.00 2009/03/17 2009/03/17 12:00 29 29 0 IOA6304 EVENTS 01.00 2009/03/17 2009/03/17 12:00 24 24 0 IOA6304 IEA 01.01 2009/03/17 2011/08/10 14:10 47 38 0 SYSUSER IEC 01.00 2009/03/17 2009/03/17 12:00 8 8 0 IOA6304 INFOMAN 01.00 2009/03/17 2009/03/17 12:00 49 49 0 IOA6304 IOAVARS 01.00 2009/03/17 2009/03/17 12:00 64 64 0 IOA6304 IOS 01.00 2009/03/17 2009/03/17 12:00 12 12 0 IOA6304 LOGBATS 01.01 2010/09/29 2010/09/29 16:22 10 10 0 SYSUSER LOGTEST 01.02 2010/09/28 2012/01/20 15:41 11 10 0 SYSUSER NETMAN 01.00 2009/03/17 2009/03/17 12:00 77 77 0 IOA6304 REPJHIST 01.00 2009/03/17 2009/03/17 12:00 42 42 0 IOA6304 OPTIONS: S SELECT O ORDER F FORCE B BROWSE D DELETE 15.49.43
First browse existing rules and than create your own rule.
In the example, we will create a user console command DISPCONS. First DISPLAY C command is issued. After 5 seconds of wait (WAIT 0005) DISPLAY T command is issued.
RL: DISPCONS LIB IOA6304.CTO.LP14.RULES TABLE: MYDEMO1 COMMAND ===> SCROLL===> CRSR +-----------------------------------------------------------------------------+ | ON COMMAND = DISPCONS | | JNAME JTYPE SMFID SYSTEM USERID | | ROUTE DESC CONSOLEID CONSOLE | | APPEARED TIMES IN MINUTES And/Or/Not | | OWNER SYSUSER GROUP MODE PROD RUNTSEC | | THRESHOLD | | DESCRIPTION DISPLAY CONSOLE INFORMATION | | DESCRIPTION | | =========================================================================== | | DO DISPLAY = SUPPRESS Y ROUTE DESC CONSOLEID CONSOLE | | SYSTEM | | DO COMMAND = DISPLAY C | | WAIT CONSOLEID CONSOLE SYSTEM | | WAITMODE N | | DO COMMAND = DISPLAY T | | WAIT 0005 CONSOLEID CONSOLE SYSTEM | | WAITMODE N | | DO | | =========================================================================== | | DAYS DCAL | | AND/OR | | WDAYS ALL WCAL | | MONTHS 1- Y 2- Y 3- Y 4- Y 5- Y 6- Y 7- Y 8- Y 9- Y 10- Y 11- Y 12- Y | | DATES | | CONFCAL SHIFT | | ENVIRONMENT SMFID SYSTEM | | =========================================================================== | | IN | | TIME FROM UNTIL INTERVAL PRIORITY CONTINUE SEARCH Y | ======= >>>>>>>>>>>>>>> END OF RULE DEFINITION PARAMETERS <<<<<<<<<<<<<<< =====
Another example would be to issue DISPLAY A,L command periodically (INTERVAL 060)
RL: DISP-ALL LIB IOA6304.CTO.LP14.RULES TABLE: MYDEMO1 COMMAND ===> SCROLL===> CRSR +-----------------------------------------------------------------------------+ | ON EVENT = DISP-ALL | | OWNER SYSUSER GROUP MODE PROD RUNTSEC | | THRESHOLD | | DESCRIPTION DISPLAY ADDRESS SPACES PERIODIACALLY | | DESCRIPTION | | =========================================================================== | | DO COMMAND = DISPLAY A,L | | WAIT CONSOLEID CONSOLE SYSTEM | | WAITMODE N | | DO | | =========================================================================== | | DAYS ALL DCAL | | AND/OR | | WDAYS WCAL | | MONTHS 1- Y 2- Y 3- Y 4- Y 5- Y 6- Y 7- Y 8- Y 9- Y 10- Y 11- Y 12- Y | | DATES | | CONFCAL SHIFT | | ENVIRONMENT SMFID SYSTEM | | =========================================================================== | | IN | | TIME FROM 0100 UNTIL INTERVAL 060 PRIORITY CONTINUE SEARCH Y | ======= >>>>>>>>>>>>>>> END OF RULE DEFINITION PARAMETERS <<<<<<<<<<<<<<< =====
“Order” your rule to activate. They will be seen “Rule Status” panel.
---------------------------- CONTROL-O RULE STATUS ---------------------(OS) COMMAND ===> SCROLL===> CRSR RULES: 87 MSG 42 CMD 3 EVN 31 ACTIVATED 34 SMFID LP14 O RULE TYP ---- DESCRIPTION ---- ACTIVATED --------- STATUS -------- UP $HASP373 A S ASYSBATS ACMA ISLEMI 0 ACTIVE $HASP373 A S ASYSTIBM ACMA ISLEMI 0 ACTIVE $HASP373 A S ASYSPROD ACMA ISLEMI 0 ACTIVE IEA994E M MVS - WARNING THAT S 0 WAIT ACTIVATION IEA404A M MVS - SEVERE WTO BUF 0 ACTIVE IEA405A M MVS - SEVERE WTO BUF 0 ACTIVE IEF453I DU S DUMPXY JCL ERROR 0 ACTIVE DISPCONS C DISPLAY CONSOLE INFO 0 ACTIVE DISP-ALL E DISPLAY ADDRESS SPAC 1 ACTIVE IOAVAR L RULE WHICH CHECKS TH 0 ACTIVE IOAVARRS L RULE TO RESOLVE A VA 0 ACTIVE IOAVARST L RULE TO SET A VALUE 0 ACTIVE $CHKPNT$ L CHECKPOINT A GLOBAL 0 ACTIVE ======= >>>>>>>>>>>>>>>>>>> BOTTOM OF ACTIVE RULES <<<<<<<<<<<<<<<<<<<< ======= OPTIONS: ? WHY H HOLD D DEL F FREE M MODE C CANCEL R RESUME 09.58.58
To be able to use your rules in incoming days, either add your table in DARULLST DD statement member of Control-O startup or issue an “order” command similar to below, after new day process is performed in early minutes of next day:
MODIFY CONTROLO,O=IOA6304.CTO.PROD.RULES(MYTABLE1)
After testing a couple of operations scenarios, you will be proficient to define your own automation scenarios.