SWCMG MXG “Vendor” Session August 11, 2011 Dallas, TEXAS, USA.
MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.
-
Upload
eustacia-hall -
Category
Documents
-
view
311 -
download
15
Transcript of MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.
![Page 1: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/1.jpg)
MXG - Simplified(MXG for Dummies)
Chuck Hopf
Merrill Consultants
![Page 2: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/2.jpg)
Copyrights
Lots of companies own copyrights on products and tools mentioned herein. All of the copyrights are acknowledged.
![Page 3: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/3.jpg)
Agenda
Primarily focused on MVS/ Zos / OS/390 use of MXG
Setting up SMF and RMF Installing and tailoring MXG Using some MXG tools
Ask questions when you feel the need and know that I try to not take all this very seriously
![Page 4: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/4.jpg)
Tech Note
Code samples assume a minimum level of MXG of 22.10.
This is a living document with frequent updates. The current version will always be on the MXG download page at www.mxg.com
![Page 5: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/5.jpg)
Who is this Bozo talking?
Started working with MXG prior to first GA in 1983 Installed MXG and SAS in many data centers (lost count around
50) Number 1 ‘Code Shark’ - 283 changes as of October 2004 Past chair SWCMG Past VP of CMG Past President of CMG Past General Chair of CMG Now a resident CMG curmudgeon
![Page 6: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/6.jpg)
Getting Ready - Part 1
Deciding what you need SMF Parameters RMF Parameters Collecting SMF data Managing Growth Deciding what to keep Deciding how long to keep it
![Page 7: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/7.jpg)
Deciding What You Need
What will be the purpose of the MXG installation?– Charge-back?– Capacity planning?– Problem solving?
![Page 8: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/8.jpg)
Charge-back?
Will need job information– type 6 26 30
May need CICS data– type 110
May need DB2 data– type 101
Other?– DASD space?– TAPE Usage?
![Page 9: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/9.jpg)
Capacity Planning?
RMF Probably same data as chargeback DASD space? Tape Usage? Network?
![Page 10: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/10.jpg)
Problem Solving
Jobs data RMF data CICS DB2 DCOLLECT datasets (14 15 64 61 65 66 42) ????????????????
![Page 11: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/11.jpg)
Why Care? It’s Just SMF Data
Volume can go up quickly– x*number of LPARs*intervals per day for type 74
(where x is the number of online UCBs) can be huge in a hurry. Consider 20000 online 3390-3 across 9 LPARs on 15 minute intervals - 20000*9*96/day
The capacity of the SMF subsystem is not unlimited - it is limited by the speed of the devices on which the MAN datasets reside (among other things.)
![Page 12: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/12.jpg)
Why Care?
If a 3390-3 holds 2.7GB of data and the speed is 10MB/second then at full speed it could be filled in 270 seconds (6.5 minutes). Then you have to dump and clear which would take 13.
We fill a 3390-3 every 10 minutes. If ANYTHING slows down the SMF
writer - the buffers fill and we lose data.
![Page 13: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/13.jpg)
Why Care?
It takes 10-15 minutes to DUMP/CLEAR If we fill in 10 but it takes 10-15 to
DUMP, then there is a 5 minute period where 2 datasets are being dumped and 1 is active
Must have at least 4 datasets in that instance
![Page 14: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/14.jpg)
Why Care?
So what can slow it down?– IO to some other device on the RAID group– Channel contention– Some moron reading the live MANx
dataset with MXG– All of the things that can cause IO to
degrade
![Page 15: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/15.jpg)
Usual Case
You need all of these things - charge-back, capacity planning, and problem solving.
And then there are your auditors with their own set of requirements for data and data retention.
![Page 16: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/16.jpg)
So why bother?
Why not just keep it all?
Due diligence and to make conscious versus unconscious choices
![Page 17: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/17.jpg)
Crazy Chuck Axiom #1
When capacity planning becomes a capacity planning issue, something is wrong.
![Page 18: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/18.jpg)
Crazy Chuck Corollaries to Murphy’s Law
The piece of data you threw away or did not enable will be the piece you need to solve a problem.
Murphy was an optimist.
![Page 19: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/19.jpg)
Setting up SMF
MAN datasets SMF parameters Processing Managing Growth
![Page 20: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/20.jpg)
MANx Datasets
A long time ago in a galaxy far far away…– datasets had to be named SYS1.MANx– datasets had to be catalogued in the
MASTER catalog
![Page 21: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/21.jpg)
MANx Datasets
In today’s brave new world– Datasets can have any name– Datasets can live in a user catalog
![Page 22: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/22.jpg)
MANx Datasets
Let the names conform to some convention that identifies them
May or may not be advantageous to place them in a USER catalog– Plus side, they can be used by any LPAR– Negative side, they must be cleared on the
system where they are in use
![Page 23: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/23.jpg)
MANx Datasets
For each LPAR:– Two full volume MAN datasets (minimum -
higher volumes could require more)– Third smaller dataset as a backup – Use different control units/paths just like
you would with PAGE datasets
![Page 24: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/24.jpg)
MANx Datasets
Full Volumes?– Minimizes switching– Minimizes impacts from other workloads
hitting the same volumes– Does not eliminate self-inflicted wounds
(reading of a live SMF dataset with MXG.)
![Page 25: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/25.jpg)
MANx Datasets
What CISIZE?– Let the data drive the decision. Member
ANALSMF will do an analysis of your SMF data and tell you what the optimal CISIZE will be. But… if you have lots of CICS, the optimal size will be 16384.
![Page 26: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/26.jpg)
MANx Datasets – CISIZE
![Page 27: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/27.jpg)
SMF Parameters ACTIVE /* ACTIVE SMF RECORDING */ DSNAME(SYS1.MANx,SYS1.MANy,SYS1.MANz) LISTDSN /* LIST DSN AT IPL */ SID(xxxx) /* SYSTEM ID */ REC(PERM) /* TYPE 17 PERM RECORDS */ MAXDORM(0500) /* WRITE IDLE AFTER 05M */ STATUS(SMF,SYNC) /* WRITE STATS EVERY 15M */ JWT(0014) /* 522 AFTER 14 MINUTES */ SYNCVAL(59) /* SYNC TO MINUTE 59 */ INTVAL(15) /* 15 MINUTE INTERVALS */ DDCONS(NO) /* DON'T CONSOL T30 EXCP */ NOPROMPT /* DONT PROMPT OPERATOR */ DUMPABND(NORETRY) /* DEFAULT RETRY */ NOBUFFS(MSG) /* DEFAULT TO MESSAGE */ LASTDS(MSG) /* DEFAULT TO MESSAGE */ SYS(NOTYPE(4,5,16,19,34,35,40,69), EXITS(IEFU83,IEFU84,IEFACTRT,IEFUJV,IEFUSI,IEFUJI,IEFUTL, IEFU29,IEFUJP), NOINTERVAL, NODETAIL) SUBSYS(STC,EXITS(IEFU29,IEFU83,IEFU84,IEFACTRT,IEFUJP,IEFUSO), INTERVAL(SMF,SYNC)) SUBSYS(BP01,INTERVAL(001500)) SUBSYS(BT01,INTERVAL(001500)) SUBSYS(OMVS,EXITS(IEFU29,IEFU83,IEFU84,IEFACTRT,IEFUJP,IEFUSO), INTERVAL(SMF,SYNC)) SUBSYS(HSC0,INTERVAL(SMF,SYNC),TYPE(235)) SUBPARM(HSC0(SUBTYPE(1,2,3,4,5,6,7,8,10-29)))
![Page 28: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/28.jpg)
SMF Parameters
Mostly self-explanatory However...
![Page 29: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/29.jpg)
SMF Parameters
SYS(NOTYPE(4,5,16,19,34,35,40,69), EXITS(IEFU83,IEFU84,IEFACTRT,IEFUJV,IEFUSI,IEFUJI,IEFUTL, IEFU29,IEFUJP), NOINTERVAL, NODETAIL)
Says suppress the 4 5 16 19 34 35 40 and 69 SMF record types
Use all of the exits Do not create detail This applies to all subsystems unless
otherwise noted
![Page 30: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/30.jpg)
SMF Parameters
Type 4 5 34 35 are obsolete job and TSO user records
Type 16 Old DFSORT records Type 19 DASD Volume info (there are
better sources) Type 40 - dynamic de-allocation Type 69 - VSAM catalog records
![Page 31: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/31.jpg)
SMF Parameters
STATUS(SMF,SYNC) /* WRITE STATS EVERY 15M */ JWT(0014) /* 522 AFTER 14 MINUTES */ SYNCVAL(59) /* SYNC TO MINUTE 59 */ INTVAL(15) /* 15 MINUTE INTERVALS */
Write SMF 23 every 15 minutes (buffer status)
Kill jobs after 14 minutes of waiting Synchronize SMF intervals to minute 59 Write interval records every 15 minutes
![Page 32: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/32.jpg)
SMF Parameters
DDCONS(NO) /* DON'T CONSOLIDATE T30 EXCP */
From Chapter 3 of MXG:
Number of DDs CPU Before CPU After DDCONS(YES) DDCONS(NO)
70,000 4 hr 5 min 8 min 35,000 1 hr 3 min 3 min 10,000 6 min 1 min
![Page 33: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/33.jpg)
SMF Parameters
OTOH…– We have seen instances where long
running tasks with 10s of thousands of DD segments write type 30 records so huge that they cause SMF buffer shortages. This problem was solved by detecting in an exit that this was happening and imposing a 10 second delay between type 30 segments.
![Page 34: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/34.jpg)
SMF Parameters
SUBSYS(STC,EXITS(IEFU29,IEFU83,IEFU84,IEFACTRT,IEFUJP,IEFUSO), INTERVAL(SMF,SYNC))
For the STC subsystem, use these exits AND write interval records synchronized with the SYNCVAL
This can be important for tracking availability
![Page 35: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/35.jpg)
SMF Parameters
SUBSYS(BP01,INTERVAL(001500)) SUBSYS(BT01,INTERVAL(001500))
Not all subsystems (Batch Pipes in this case) recognize the SYNCVAL
![Page 36: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/36.jpg)
SMF Parameters
SUBSYS(HSC0,INTERVAL(SMF,SYNC),TYPE(235)) SUBPARM(HSC0(SUBTYPE(1,2,3,4,5,6,7,8,10-29)))
Some subsystems (in this case STK HSC for controlling tape subsystems) have their own needs.
![Page 37: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/37.jpg)
SMF Parameters
What about type 99 records?– Refer to Crazy Chuck’s corollaries to
Murphy’s law– As sure as you don’t have it… and it will
be too late to turn it on– Throw them away or redirect them during
the processing cycle
![Page 38: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/38.jpg)
Processing SMF Data
Use the IEFU29 exit to detect a switch and dump/clear the full dataset
On a daily basis, consolidate all dumped data into a single dataset
On a weekly basis, consolidate daily data into a weekly dataset (maybe)
Some sites repeat at the monthly level but...
![Page 39: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/39.jpg)
Processing SMF Data
Timing– Force a switch at chosen time– Dump/clear last dataset of day– Do daily consolidation– Midnight may be ideal but may be
impractical
![Page 40: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/40.jpg)
Processing SMF Data
SMF data is generally a great candidate for extended format striped compressed datasets. Compression ratios of 9 or 10 to 1 are not uncommon. There are lots of binary zeros and blanks in the data.
![Page 41: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/41.jpg)
Processing SMF Data - Simple Case
I SMF IFASMFDP
MANx
Working CopyDaily SMF
ArchivalDaily SMF
Single System that does not fill a full dataset in a day
![Page 42: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/42.jpg)
Processing SMF Data - Less Simple
I SMFSYS1
IFASMFDP
MANx
Working CopyDaily SMF
ArchivalDaily SMF
Multiple Systems that do not fill a full dataset in a day
I SMFSYS2
MANx
IFASMFDP
Daily SMFSYS1
Daily SMFSYS2
IFASMFDP
Repeat as needed for moresystems
At this point does not HAVE to be IFASMFDP
![Page 43: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/43.jpg)
Processing SMF Data -Usual Case
I SMF IFASMFDP
MANx
Working CopyDaily SMF
ArchivalDaily SMF
Multiple Systems that fill multiple datasets in a day
EODSMF
Dumps SMFDumps
IFASMFDP
When datasets fill and at end of day, issue I SMF on each system
SMFDumpsSMF
DumpsSMFDumpsSMF
Dumps
After all dumps are complete
![Page 44: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/44.jpg)
Setting up RMF
RMF Monitor I Parameters RMF Monitor III Parameters Run both? RMF Monitor III Archiving
![Page 45: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/45.jpg)
RMF Monitor I Parameters - Part I/*********************************************************************//* PART 1: MEASUREMENTS *//*********************************************************************/ CHAN /* CHANNEL STATISTICS */ CACHE /* CACHE RMF REPORTER */ CPU /* CPU STATISTICS */ DEVICE(DASD) /* DIRECT ACCESS DEVICES MEASURED */ DEVICE(TAPE) /* MEASURE TAPE DEVICES */ DEVICE(NOCHRDR) /* NO CHARACTER READER DEVICES MEASURED */ DEVICE(NOUNITR) /* NO UNIT RECORD DEVICES MEASURED */ DEVICE(COMM) /* COMMUNICATION DEVICES MEASURED */ DEVICE(NOGRAPH) /* NO GRAPHICS DEVICES MEASURED */ DEVICE(NOSG) /* NO SELECTION BY STORAGE GROUPS */ ENQ(DETAIL) /* DETAILED ENQUEUE REPORT */ IOQ(DASD) /* DASD I/O QUEUEING MEASURED */ IOQ(TAPE) /* TAPE I/O QUEUEING MEASURED */ IOQ(NOCHRDR) /* NO CHARACTER READER I/O QUEUEING */ IOQ(NOUNITR) /* NO UNIT RECORD DEVICE I/O QUEUEING */ IOQ(COMM) /* COMMUNICATION I/O QUEUEING */ IOQ(NOGRAPH) /* NO GRAPHICS DEVICE I/O QUEUEING */ PAGESP /* PAGE/SWAP DATASET STATISTICS */ PAGING /* PAGING DATA */ TRACE(MCVSTCRI,ALL) /* HIGH UIC */ TRACE(MCVMGAGE,ALL) /* MIGRATION AGE */ TRACE(MCVTWSS,ALL) /* TARGET WORKING SET SIZE */ TRACE(MCVFRCNT,ALL) /* FORCE STEAL FRAME COUNT */ TRACE(RCENWSF,ALL) /* NON-WSS MOVE TO AUX */ TRACE(RCEWSDNE,ALL) /* WORKING SET MOVE TO AUX */ TRACE(RCVAFQA,ALL) /* AVERAGE AVAILABLE FRAME COUNT */ TRACE(RCVUICA,ALL) /* AVERAGE UNREF. INTERVAL COUNT */ TRACE(RMCARSSC,ALL) /* CENTRAL STORAGE SHORTAGE SWAPS */ VSTOR(S) /* VIRTUAL STORAGE SUMMARY DATA */ WKLD(PERIOD,SYSTEM) /* WORKLOAD MANAGER DATA BY PERIOD */
![Page 46: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/46.jpg)
RMF Monitor I Parameters - Part II
/*********************************************************************//* PART 2: TIMING *//*********************************************************************/ CYCLE(0500) /* SAMPLE TWICE PER SECOND */ NOSTOP /* ACTIVE UNTIL OPERATOR ISSUES STOP */ SYNC(SMF) /* SYNC INTERVAL */
![Page 47: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/47.jpg)
RMF Monitor I Parameters - Part III
/*********************************************************************//* PART 3: REPORTING / RECORDING OF DATA *//*********************************************************************/ NOOPTIONS /* OPTIONS NOT DISPLAYED, NO REPLY */ RECORD /* WRITE SMF RECORDS EVERY INTERVAL */ NOREPORT /* NO WRITTEN REPORTS TO SYSOUT */ SYSOUT(U) /* REPORTS TO CLASS U, IF REPORT */
![Page 48: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/48.jpg)
RMF Monitor I Parameters - Part IV
/*********************************************************************//* PART 4: USER EXITS (ALSO USED BY CACHE REPORTER OFFERING) *//*********************************************************************/ NOEXITS /* DO NOT TAKE USER EXITS */
![Page 49: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/49.jpg)
RMF Monitor I Parameters
Stored in SYS1.PARMLIB as ERBRMF00
Can be modified while active– F RMF,MODIFY ZZ,xxxxxxxx
![Page 50: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/50.jpg)
RMF Monitor III Parameters
CYCLE(1000) /* SAMPLE EVERY SECOND (1000 MSEC) */ DATASET(ADD(SYS3V.&SYSNAME..RMFMON3A)) DATASET(ADD(SYS3V.&SYSNAME..RMFMON3B)) DATASET(ADD(SYS3V.&SYSNAME..RMFMON3C)) DATASET(ADD(SYS3V.&SYSNAME..RMFMON3D)) DATASET(ADD(SYS3V.&SYSNAME..RMFMON3E),SWITCH) DATASET(START) /* DATASET SUPPORT */ DATASET(WHOLD(7)) /* CONTROLS BUFFER PAGES IN STORAGE */ MINTIME(60) /* LENGTH OF MINTIME */NOOPTIONS /* DO NOT DISPLAY OPTIONS */ RESOURCE(*JES2,JES2) /* SPECIFIES JES STARTED TASK NAME */NOSTOP /* RUN UNTIL OPERATOR ISSUES STOP */ SYNC(00) /* MINTIME SYNCHRONIZATION */ SYSOUT(7) /* MESSAGES TO SYSOUT CLASS A */ WSTOR(32) /* SIZE OF INSTORAGE BUFFER (IN MB) */ IOSUB /* I/O SUBSYSTEM GATHERING ACTIVE */NOCACHE /* TURN OFF CACH RMF REPORTER */
![Page 51: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/51.jpg)
RMF Monitor III Parameters
DATASET(ADD(SYS3V.&SYSNAME..RMFMON3A)) DATASET(ADD(SYS3V.&SYSNAME..RMFMON3B)) DATASET(ADD(SYS3V.&SYSNAME..RMFMON3C)) DATASET(ADD(SYS3V.&SYSNAME..RMFMON3D)) DATASET(ADD(SYS3V.&SYSNAME..RMFMON3E),SWITCH)
Uses SYSNAME symbolic to assign that portion of the monitor 3 data store Stored as ERBMF04 in SYS1.PARMLIB 1 data store can hold up to 18 hours of data or less depending on activity and
volume regardless of size Turning on CACHE gets very expensive - we have seen 20% of a CPU
![Page 52: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/52.jpg)
RMF Monitor III Parameters
Can be modified on the fly– F RMF,MODIFY III,xxxxxxxxxxxxx
![Page 53: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/53.jpg)
RMF - Should I Run Both I and III?
They serve different purposes– Monitor I feeds MXG with SMF data– Monitor III provides real-time problem
solving capabilities - in some cases superior to other monitoring tools
Both provide data that can be post-processed
![Page 54: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/54.jpg)
RMF - Monitor III Archiving
It may be wise to archive monitor III data against the possible need for problem diagnosis
No tools provided but it is not difficult to do
![Page 55: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/55.jpg)
RMF Monitor III Archival
IDCAMSREPRO
RMF III Switch detected
RMF IIIDATA STORE
RMF IIIARCHIVE
ERB813I indicating a new RMF III dataset is active
![Page 56: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/56.jpg)
Crazy Chuck Axiom #2
Work expands to exceed any available capacity
![Page 57: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/57.jpg)
Managing Growth
What do you do as the data starts to grow?– Put it on tape
Single user - still cannot share tapes
– Break it into pieces Divide and conquer Break into as many pieces as needed on DASD Put archive copy on tape
![Page 58: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/58.jpg)
Managing Growth
CICS and DB2 are likely the first problems - split them out early in the process.
Replicate the SMF process in miniature for these components.
![Page 59: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/59.jpg)
Managing Growth
I SMF IFASMFDP
MANx
Working CopyDaily SMF
ArchivalDaily SMF
EODSMF
NOTYPE 99 101 110
SMFDumps
IFASMFDP
When datasets fill and at end of day, issue I SMF on each system
SMFDumpsSMF
DumpsSMFDumpsSMF
Dumps
After all dumps are completeDuplicate process for CICS and DB2but eliminate disk copy
SMFTYPE 110
SMFTYPE 101
CICS
DB2Do the CLEAR in a secondstep
SMFTYPE 99
WLM
![Page 60: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/60.jpg)
Managing Growth
Assume that the input DD is INDD, the primary output is OUTSMF, the CICS data should go to OUTCICS, and the DB2 type 101 to OUTDB2, type 99 to OUTWLM:– IFASMFDP Control cards are:
INDD(INDD,OPTIONS(DUMP)) OUTDD(OUTSMF,NOTYPE(99,101,110)) OUTDD(OUTCICS,TYPE(110)) OUTDD(OUTDB2,TYPE(101)) OUTDD(OUTWLM,TYPE(99))
![Page 61: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/61.jpg)
Managing Growth
Eventually, you have to go deeper. CICS/DB2 may each grow to the point where they have to be broken up
This requires using some exit points in IFASMFDP to read enough of the data to determine APPLID or some other identifying information to drive the split
![Page 62: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/62.jpg)
Managing Growth
I SMF IFASMFDP
MANx
SMFTYPE
99
When datasets fill and at end of day, issue I SMF on each system
CICS1TYPE 110
SMFTYPE 101
CICS2TYPE 110
CICS3TYPE 110
CICS APPL 1
CICS APPL 2
CICS APPL 3
DB2
SMFNOTYPE 101 110
WLM
![Page 63: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/63.jpg)
Managing Growth
Requires some assembler programming skills
See the SMF manual for details on exits There are three IFASMFDP exits:
– Exit 1 is called when records are read– Exit 2 is called when records are selected for
output– Exit 3 is called when output datasets are closed
![Page 64: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/64.jpg)
Managing Growth
– IFASMFDP Control cards are: INDD(INDD,OPTIONS(DUMP)) OUTDD(OUTSMF,NOTYPE(99,101,110)) OUTDD(OUTCICS1,TYPE(110))
OUTDD(OUTCICS2,TYPE(110)) OUTDD(OUTCICS3,TYPE(110))
OUTDD(OUTDB2,TYPE(101)) OUTDD(OUTWLM,TYPE(99)) USER3(YOUR3) USER2(YOUR2) USER1(YOUR1)
![Page 65: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/65.jpg)
Managing Growth
CICS allows for some tailoring of the records written. You can drop fields that are obsolete or that you do not use or think that you need.
![Page 66: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/66.jpg)
Managing Growth
Tailored MCT
Rollout
![Page 67: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/67.jpg)
Managing Growth
Tailoring the MCT requires tailoring of MXG as well. UTILEXCL will build the code to read the records based on the CICS dictionary contents but… change control is very very important. If it changes, you must rebuild the code.
![Page 68: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/68.jpg)
Deciding What to Keep
Refer to axiom 1 At least at the daily level, keep
everything After the daily level, it becomes a matter
of cost benefit analysis - what do you get out of keeping the data vs the cost
May also be auditing/security concerns
![Page 69: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/69.jpg)
Deciding What to Keep
It can get very expensive to keep CICS/DB2 and other high volume data
Tapes are not forever Consolidating to the WEEKLY level may
reduce tape volumes used. Beyond weekly, reduction is usually minimal but the resource cost can be high.
![Page 70: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/70.jpg)
Deciding How Long to Keep It
Largely an audit/legal concern– May be legal reasons to keep the data for
many years– Beyond 6 months the likelihood it will be
needed for problem solving is minimal– Beyond 5 years the likelihood of being able
to read the tapes drops quickly
![Page 71: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/71.jpg)
Now That You Have the Data
Installing MXG– Conventions– SOURCLIB – FORMATs
Installing– Tailoring Exits– Tailoring MXG– Weekly/Monthly/TREND Processing– Non-SMF Data Sources– Managing Growth– Using Some MXG Tools
![Page 72: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/72.jpg)
MXG - Conventions
All datasets are controlled by MACRO variables
MACRO variables are set in VMXGINIT Can be overridden INSTREAM For every IMACxxxx there is a macro
variable MACxxxx All tailoring could be done INSTREAM
![Page 73: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/73.jpg)
MXG - Conventions
IMACxxxx - Installation exits VMACxxxx - Code to read data TYPExxxx - Reads data into WORK TYPSxxxx - Reads/sorts data into PDB VMXGxxxx - A macro ANALxxxx - Some sort of analysis GRAFxxxx - Graphical analysis
![Page 74: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/74.jpg)
MXG Conventions
ACHAPxx - Chapters from MXG book ADOCxxxx- documentation CHANGES - current changes CHANGESS - all changes NEWLTRS - News letters JCLxxxxx - JCL examples
![Page 75: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/75.jpg)
MXG - SOURCLIB
Must be a PDS Keep 3 levels:
– USERID.SOURCLIB Your changes/additions to MXG
– CHANGES.SOURCLIB Important changes between releases
– MXG.SOURCLIB Current production release
![Page 76: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/76.jpg)
MXG - SOURCLIB
May also want a NULL PDS as filler:– //STEP1 MXG PROC …..– // TAILORNG=‘MXG.NULL.SOURCLIB’,– …– //SOURCLIB DD DSN=&TAILORNG– // DD DSN=USERID.SOURCLIB– // DD DSN=CHANGES.SOURCLIB– // DD DSN=MXG.SOURCLIB
![Page 77: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/77.jpg)
MXG - FORMATs
FORMATs are used by SAS to provide human intelligible descriptions of data.
Does ‘01’X have meaning or is ‘1: Mount Missed, Too Fast’ more descriptive?
Saves space FORMAT library needs less than 5
cylinders
![Page 78: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/78.jpg)
MXG Installation - 1st Time
Build using ISPF option 3.2– MXG.NULL.SOURCLIB - 1 track– MXG.USERID.SOURCLIB - 15 cylinders– MXG.CHANGES.SOURCLIB - 15 cylinders– All with LRECL=80 BLKSIZE=27920
RECFM=FB DSORG=PO– Directory blocks can be 25
![Page 79: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/79.jpg)
MXG Installation - 1st Time
Using JCL:
– //STEP1 EXEC PGM=IEBUPDTE,PARM=NEW– //SYSPRINT DD DUMMY– //SYSIN DD DSN=MXG.IEBUPDTE– //SYSUT2 DD DSN=MXG.PROD.SOURCLIB,– // DISP=(,CATLG,DELETE), RECFM=FB,– // LRECL=80,BLKSIZE=27920,– // DSORG=PO,SPACE=(CYL,(225,25,999))– //STEP2 EXEC SAS– //SOURCLIB DD DSN=MXG.PROD.SOURCLIB,DISP=SHR– //LIBRARY DD DSN=MXG.PROD.FORMATS,DISP=(,CATLG,DELETE),– // SPACE=(CYL,(15,15))– //SYSIN DD *– %INCLUDE SOURCLIB(FORMATS);
![Page 80: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/80.jpg)
MXG Installation - 1st Time
Build MXG Proc:
//MXG PROC ENTRY=SASHOST,// CONFIG='MXG.PROD.SOURCLIB(CONFIG08)',// SASNODE='SAS.PROD',// MXGNODE='MXG',// TAILORNG='MXG.NULL.SOURCLIB',// OPTIONS=,// LIST='*',// LOG='*',// SORT=4,// SORTWK=100,// WORKUNIT=CYL,// WORKNUM=1,// WORK='150,30...
![Page 81: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/81.jpg)
MXG Installation - 1st Time
//SAS EXEC PGM=&ENTRY,PARM='SORT=&SORT &OPTIONS'//STEPLIB DD DISP=SHR,DSN=&SASNODE..LIBRARY//CTRANS DD DSN=&SASNODE..SASC.TRANSLIB,DISP=SHR//CONFIG DD DISP=SHR,DSN=&SASNODE..CNTL(BATCHXA)// DD DISP=SHR,DSN=&CONFIG//SASHELP DD DISP=SHR,DSN=&SASNODE..SASHELP//SASMSG DD DISP=SHR,DSN=&SASNODE..SASMSG//WORK DD UNIT=(SYSDA,&WORKNUM),SPACE=(&WORKUNIT,(&WORK),RLSE),// DCB=RECFM=FS//SORTWKxx DD UNIT=SYSDA,SPACE=(CYL,&SORTWK)//SASLOG DD SYSOUT=&LOG//SASLIST DD SYSOUT=&LIST//SASPARM DD UNIT=SYSDA,SPACE=(400,(100,300)),// DCB=(RECFM=FB,LRECL=80,BLKSIZE=400,BUFNO=1)//SYSUDUMP DD SYSOUT=*//LIBRARY DD DSN=&MXGNODE..PROD.FORMATS,DISP=SHR//SOURCLIB DD DSN=&TAILORNG,DISP=SHR// DD DSN=&MXGNODE..USERID.SOURCLIB,DISP=SHR// DD DSN=&MXGNODE..CHANGES.SOURCLIB,DISP=SHR// DD DSN=&MXGNODE..PROD.SOURCLIB,DISP=SHR
![Page 82: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/82.jpg)
MXG Installation - 1st Time
May not need SASC transients but it is simpler to have them there than to go back and add them.
SORTWKxx is the number of SORTWK datasets you think you may need. It can always be overridden and more added as needed. I start with 6.
![Page 83: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/83.jpg)
MXG Installation - After the 1st
Simpler //STEP1 EXEC PGM=IEBUPDTE,PARM=NEW//SYSPRINT DD DUMMY//SYSIN DD DSN=MXG.IEBUPDTE//SYSUT2 DD DSN=MXG.Vrelease.SOURCLIB,// DISP=(,CATLG,DELETE), RECFM=FB,// LRECL=80,BLKSIZE=27920,// DSORG=PO,SPACE=(CYL,(225,25,999))//STEP2 EXEC SAS//SOURCLIB DD DSN=MXG.Vrelease.SOURCLIB,DISP=SHR//LIBRARY DD DSN=MXG.Vrelease.FORMATS,DISP=(,CATLG,DELETE),// SPACE=(CYL,(15,15))//SYSIN DD * %INCLUDE SOURCLIB(FORMATS);
release is the MXG release number
![Page 84: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/84.jpg)
MXG Installation - After the 1st
Do testing:
//STEP1 EXEC MXG//LIBRARY DD DSN=MXG/Vrelease.FORMATS,DISP=SHR//SOURCLIB DD // DD// DD DSN=MXG.Vrelease.SOURCLIB,DISP=SHR
![Page 85: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/85.jpg)
MXG Installation - After the 1st
I test all production jobs (there are more than 20) with production inputs
Output compared using VMXGCOMP to drive a PROC COMPARE of all datasets
![Page 86: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/86.jpg)
MXG Installation - After the 1st
When testing is finished and you are ready to install
– Delete all members from MXG.CHANGES.SOURCLIB– Copy MXG.Vrelease.SOURCLIB to MXG.PROD.SOURCLIB– Copy MXG.Vrelease.FORMATS to MXG.PROD.SOURCLIB (use PROC
COPY)
![Page 87: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/87.jpg)
MXG Exits
Was originally much more complex There were many exit points to be
touched Now down to only a few
![Page 88: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/88.jpg)
MXG Exits
IMACINIT IMACSHFT IMACKEEP IMACUCB RMFINTRV Others
![Page 89: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/89.jpg)
MXG Exits - IMACINIT
IMACINIT is a place to put things you ALWAYS want to have invoked whenever MXG is invoked
Some examples of usage will follow:
![Page 90: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/90.jpg)
MXG Exits - IMACINIT
You have LPARs in multiple time zones but want all times to be uniform. Add to IMACINIT:– %TIMEBILD(TIMEBILD=YES);– to use VMXGTIME and TIMETABL to
adjust the timestamps of SMF data to a common time zone.
![Page 91: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/91.jpg)
MXG Exits - IMACINIT
You have site specific global macro variables you want to initialize. Add to IMACINIT:– %GLOBAL MYVAR;– %LET MYVAR=XYZ;
![Page 92: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/92.jpg)
MXG Exits - IMACSHFT
Classic SHIFT definitions may not have the same meaning they once did
There is still usually a big difference in daytime versus nighttime processing
It is useful to assign a FORMAT to the SHIFT variable that describes the SHIFT
![Page 93: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/93.jpg)
Crazy Chuck Axiom #3
You can lead a manager to the documentation but you cannot make him/her read it or remember it from day to day.
Dilbert Principle Summarized:– “A retarded chimpanzee can drink a case
of beer and still perform most management functions.” Scott Adams - Dilbert and the Way of the Weasels
![Page 94: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/94.jpg)
MXG Exits - IMACSHFT
Standard IMACSHFT Defines Shifts as:– 8:00-17:00 Monday-Friday = P– 17:00-08:00 Monday-Friday = N– 08:00 Saturday - 08:00 Monday = W
![Page 95: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/95.jpg)
MXG Exits - IMACSHFT
Are holidays important? They can make a significant difference
in data at the weekly level It is a management decision. If they
want it reported separately - separate it.
![Page 96: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/96.jpg)
MXG Exits - IMACSHFT
![Page 97: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/97.jpg)
Crazy Chuck Axiom #4
Never argue with managers about how they want data reported. You cant win (unless you are a consultant.) Being right is not enough.
They say it is possible to teach a pig to sing but the process annoys the pig and is very frustrating.
![Page 98: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/98.jpg)
MXG Exits - IMACSHFT
Assume that all you want to change is to apply the format you built called $SHIFT to the SHIFT variable.– Place the following in IMACINIT in your
USERID.SOURCLIB %LET MACSHFT=%QUOTE( FORMAT SHIFT $SHIFT.; );
![Page 99: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/99.jpg)
MXG Exits - IMACSHFT
Building the $SHIFT format:– Place the following in IMACFMTS:
PROC FORMAT LIBRARY=LIBRARY; VALUE $SHIFT ‘P’=‘8:00-17:00 Monday-Friday’ ‘N’=‘17:00-08:00 Monday-Friday’ ‘W’=‘Weekends’;
![Page 100: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/100.jpg)
MXG Exits - IMACSHFT
Could also use the FMTSEARCH option and place user formats in a separate library.
In IMACINIT:– OPTION FMTSEARCH=MYFORMAT LIBRARY;
![Page 101: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/101.jpg)
MXG Exits - IMACKEEP
Only thing that needs to be here is the identity of all user SMF records.
Could be done INSTREAM Could be done in IMACINIT
![Page 102: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/102.jpg)
MXG Exits - IMACKEEP
General Syntax:– MACRO _IDxxxx yyyy %– where xxxx is the NAME of the record type
and yyyy is the record number
– Assume STK silos use record number 218– MACRO _IDSTC 218 %
![Page 103: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/103.jpg)
MXG Exits - IMACKEEP
Using IMACKEEP– MACRO _IDSTC 218 %– MACRO _SYNCID 208 %– MACRO _IDHSMDS 219 %– etc etc– Last statement must be:
&MACKEEP ;
![Page 104: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/104.jpg)
MXG Exits - IMACKEEP
Doing it INSTREAM:– %LET MACKEEP=%QUOTE(
MACRO _IDSTC 218 %
– );– %INCLUDE SOURCLIB(TYPSSTC);
![Page 105: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/105.jpg)
MXG Exits - IMACKEEP
Using IMACINIT– MACRO _IDSTC 218 %– MACRO _SYNCID 208 %– MACRO _IDHSMDS 219 %– etc etc
![Page 106: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/106.jpg)
MXG Exits - IMACKEEP
So which is best?– I use IMACKEEP but from time to time may
override using the INSTREAM approach when testing new releases
– Using IMACKEEP in USERID.SOURCLIB ensures that all users get the right answers
![Page 107: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/107.jpg)
MXG Exits -IMACUCB
Suppose you have:– Real 3480 drives– Real 3490 drives– Virtual tape drives– Robotic 3490 drives– Autoloader 3490 drives– Manual 3490 drives– SHARKs– HDS 9900– HDS 7700– etc
![Page 108: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/108.jpg)
MXG Exits - IMACUCB
Device variable for tape drives will be:– 3480– 3490– 3590
Device variable for DASD devices will be:– 3390 (maybe 3380 but not very likely)
![Page 109: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/109.jpg)
MXG Exits - IMACUCB
It may be important to know:– Was it real tape or virtual?– Was it robotic/autoloader/manual?– Which VTS was it?– Was it a 3390-3 or a 3390-9?– Which RAID box is it in?
![Page 110: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/110.jpg)
MXG Exits - IMACUCB
IMACUCB can answer the questions by hammering the DEVICE variable into something more meaningful based on DEVNR.
Makes summaries by DEVICE more meaningful
Allows for reporting by the real DEVICE type
![Page 111: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/111.jpg)
MXG Exits - IMACUCB
![Page 112: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/112.jpg)
MXG Exits - IMACUCB
Can be done as hard-coded IF-THEN-ELSE logic
Can be done as a user FORMAT
![Page 113: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/113.jpg)
MXG Exits - IMACUCB
IF 400X LE DEVNR LE 43FX THEN DEVICE=‘VT01 ‘;ELSE IF 440X LE DEVNR LE 47FX THEN DEVICE=‘VT02 ‘;ELSE IF DEVICE=:’3490’ THEN DO; IF 210X LE DEVNR LE 28FX THEN DEVICE=‘ROBOTIC’; ELSE IF 2B0X LE DEVNR LE 2BFX THEN DEVICE=‘AUTOLOAD’;END;ELSE IF DEVICE=:’3390’ THEN DO; IF 1200X LE DEVNR LE12FFX THEN DEVICE=‘7700-1’; ELSE IF 0A000X LE DEVNR LE 0A7FFX THEN DEVICE=‘9900-1’; ELSE IF 0B000X LE DEVNR LE 0B5FFX THEN DEVICE=‘SHARK 1’;END;
![Page 114: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/114.jpg)
MXG Exits - IMACUCB
Using FORMAT - IMACUCB is:
DEVICE=PUT(DEVNR,MYDEVS.);
Building the FORMAT:
PROC FORMAT LIB=MYFMTS; VALUE MYDEVS 400X-47FX=‘VT01’ 440X-47FX=‘VT02’ 210X-28FX=‘ROBOTIC’ 2B0X-2BFX=‘AUTOLOAD’ 1200X-12FFX=‘7700-1’ 0A000X-0A7FFX=‘9900-1’ 0B000X-0B5FFX=‘SHARK 1’;
![Page 115: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/115.jpg)
MXG Exits - RMFINTRV
Was originally done in IMACWORK Moved here to allow for more workloads
to be defined Can still be done in IMACWORK but
this is a more flexible way to do it
![Page 116: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/116.jpg)
MXG Exits - RMFINTRV
RMFINTRV is the call to VMXGRMFI which builds the RMFINTRV dataset during the BUILDPDB process.
Lots of parameters and options Primary focus here is defining
workloads
![Page 117: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/117.jpg)
MXG Exits - RMFINTRV
Should I use report classes or service classes? Report performance groups or control performance groups?
It Depends!
![Page 118: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/118.jpg)
Crazy Chuck Axiom #5
All questions can be answered with one of the following:
– 42– It Depends– Green– huh?– A withering stare– What is the air speed velocity of a fully laden swallow?
European or African?
![Page 119: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/119.jpg)
MXG Exits - RMFINTRV
If you are in compatibility mode unless you are very careful with report performance groups it is easy to double dip the CPU time
If you are in Goal Mode, that is not an issue (no task can be in more than a single report class) but you can still double dip if you mix report classes and service classes
![Page 120: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/120.jpg)
MXG Exits - RMFINTRV
My opinion (Goal Mode): Use one or the other but don’t try to use
both. It almost invariably causes problems. If you use report classes, EVERY task must be assigned to a report class. No exceptions. I have a strong tendency towards report classes since there can be many more.
![Page 121: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/121.jpg)
MXG Exits - RMFINTRV
My opinion - compat mode Use performance groups exclusively. It
is safer and simpler.
![Page 122: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/122.jpg)
MXG Exits - RMFINTRV
Coding RMFINTRV:
%VMXGRMFI( PDB=PDB, OUTDATA=PDB.RMFINTRV,
INTERVAL=QTRHOUR, SYNC59=1.1, IMACWORK=NO, USECNTRL=COMPAT, USEREPRT=GOAL,
WORKxx=zzzz/yyyyyyyy/pgns/srvclass/system/sysplex/workload ….. );
![Page 123: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/123.jpg)
MXG Exits - RMFINTRV
WORKxx=– xx is number from 1 to 99– zzzz - first four characters of variable names– yyyyyyy - first line of label– pgns - performance group(s) in this workload– srvclass - service class(s) in this workload– system - system(s) participating– sysplex - sysplex(s) participating
– workload - workload(s) participating
![Page 124: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/124.jpg)
MXG Exits - RMFINTRV
Workloads that are not categorized (they fall thru the workload definitions) will be lumped into ‘OTHR’ variables.
![Page 125: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/125.jpg)
MXG Exits - RMFINTRV
WORK1=BAT/Test Batch/1/BATCH
– Says there will be variables in RMF starting with BAT that have labels starting with ‘Test Batch’ where the data was derived from type72 records with a performance group of 1 or a service class of ‘BATCH’.
![Page 126: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/126.jpg)
MXG Exits - RMFINTRV
What if….– System A has report class TSO which is really test– System B (different plex) has same report class which is not
and has TSOTEST which is
Solution:– WORKx=TSO/TSO Test//TSO/SYSA//2,– WORKy=TSO/TSO Test//TSOTEST/SYSB//2– WORKz=TSOP/TSO//TSO/SYSB//3– ...
![Page 127: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/127.jpg)
MXG Exits - RMFINTRV
What if you want to have different summary levels?
Invoke RMFINTRV twice!
![Page 128: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/128.jpg)
MXG Exits - RMFINTRV
Add an RMF interval dataset by workload
%VMXGRMFI( PDB=PDB, OUTDATA=PDB.RMFWORK, INTERVAL=QTRHOUR, SYNC59=1.1, IMACWORK=NO, USECNTRL=GOAL, WORK1=TSO/TSO//////TSO, WORK2=BATCH/BATCH/////BATCH, WORK3=CICS/CICS/////CICS, WORK4=STC/STC/////STC, WORK5=DB2/DB2/////DB2, WORK6=DDF/DDF/////DDF);
![Page 129: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/129.jpg)
MXG Exits - Others
EXTY30UD - controls the existence of type 30 DD segments
IMACINTV - controls the existence of SMF interval records
IMACACCT- allows you to limit the number of accounting fields kept and their size
![Page 130: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/130.jpg)
Defining Kept Variables
Can be done using the ‘MACKEEP’ macro variable to redefine the _Vdddddd macro for a dataset or by using the _Kdddddd macro for the dataset.
![Page 131: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/131.jpg)
Defining Kept Variables
Using MACKEEP - drop ZDATE UNITADR UCBTYPE
%LET MACKEEP=%QUOTE(MACRO _VTY21 _WTY21 /* TYPE21 */ (LABEL='TY21: TYPE 21 SMF - TAPE ERROR STATS' KEEP=BLKSIZE BYTEREAD BYTEWRIT CLEAN DCBOFLG DENSITY DEVICE DEVNR ERASE ERRORS LCU NOISE OPEN PERMREAD PERMWRIT SIOCOUNT SMFTIME SYSTEM TAPCUSER TEMPREAD TEMPRBER TEMPRFER TEMPWRER TEMPWRIT VOLSER )%);
![Page 132: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/132.jpg)
Defining Kept Variables
Using _Kdddddd - drop ZDATE UNITADR UCBTYPE
%LET MACKEEP=%QUOTE(MACRO _KTY21 DROP=ZDATE UNITADR UCBTYPE%);
![Page 133: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/133.jpg)
Defining Kept Variables
Using MACKEEP - ADD variable DRIVE %LET MACKEEP=%QUOTE(MACRO _VTY21 _WTY21 /* TYPE21 */ (LABEL='TY21: TYPE 21 SMF - TAPE ERROR STATS' KEEP=BLKSIZE BYTEREAD BYTEWRIT CLEAN DCBOFLG DENSITY DEVICE DEVNR ERASE ERRORS LCU NOISE OPEN PERMREAD PERMWRIT SIOCOUNT SMFTIME SYSTEM TAPCUSER TEMPREAD TEMPRBER TEMPRFER TEMPWRER TEMPWRIT UCBTYPE UNITADR VOLSER ZDATE DRIVE )%);
![Page 134: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/134.jpg)
Defining Kept Variables
Using _Kdddddd - add variable DRIVE
%LET MACKEEP=%QUOTE(MACRO _KTY21 DRIVE%);
![Page 135: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/135.jpg)
Defining Kept Variables
Using MACKEEP - ADD variable DRIVE %LET MACKEEP=%QUOTE(MACRO _VTY21 _WTY21 /* TYPE21 */ (LABEL='TY21: TYPE 21 SMF - TAPE ERROR STATS' KEEP=BLKSIZE BYTEREAD BYTEWRIT CLEAN DCBOFLG DENSITY DEVICE DEVNR ERASE ERRORS LCU NOISE OPEN PERMREAD PERMWRIT SIOCOUNT SMFTIME SYSTEM TAPCUSER TEMPREAD TEMPRBER TEMPRFER TEMPWRER TEMPWRIT UNITADR VOLSER ZDATE DRIVE )%);
![Page 136: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/136.jpg)
Defining Kept Variables
Using _Kdddddd - add variable DRIVE and drop variable UCBTYPE
%LET MACKEEP=%QUOTE(MACRO _KTY21 DRIVE DROP=UCBTYPE%);
![Page 137: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/137.jpg)
Which Technique is Correct?
Both– First listing all variables makes it more
clear– Second is a lot less typing
![Page 138: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/138.jpg)
Hardware Compression
Applies only to tape format SAS datasets on disk
May be striped May be compressed May be striped and compressed Only a single SAS dataset per DD can be
open at any point in time Useful for things like CICSTRAN DB2ACCT
![Page 139: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/139.jpg)
MXG Installation - BUILDPDB
If you want nothing but the standard PDB, you are ready to rock and roll but… if you want to add records or tailor things you have more work to do.
![Page 140: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/140.jpg)
MXG Installation - BUILDPDB
Originally, if you wanted to add records, you had to use several exits: EXPDBINC EXPDBCDE EXPDBVAR EXPDBOUT. This technique will still work but there is a simpler way.
![Page 141: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/141.jpg)
MXG Installation - UTILBLDP
Say you wanted to add HSM records to the PDB being built. UTILBLDP (a macro utility) can construct the exits as part of MACKEEP in your SYSIN.
For example - to add HSM to the PDB:
![Page 142: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/142.jpg)
MXG Installation - UTILBLDP
%UTILBLDP( OUTFILE=MYSYSIN, BUILDPDB=YES, USERADD=HSM/204);
Tells UTILBLDP that you want to run BUILDPDB, include HSM data on SMF type 204 records in the PDB, and write the SYSIN out to a DD/FILENAME of MYSYSIN.
The SYSIN constructed would be:
![Page 143: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/143.jpg)
MXG Installation - UTILBLDP%LET MACKEEP=%QUOTE( MACRO _SPINCNT 0 % MACRO _SPINUOW 0 % MACRO _TIMEDIF 0 % MACRO _IDHSMDS 204 % MACRO _VARUSER _VARHSM % MACRO _CDEUSER _CDEHSM % MACRO _EPDBOUT _SHSM %);%LET EPDBINC %QUOTE( VMACHSM);%INCLUDE SOURCLIB(BUILDPDB);...
![Page 144: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/144.jpg)
MXG Installation - UTILBLDP
%INCLUDE SOURCLIB(ASUMUOW);%INCLUDE SOURCLIB(ASUMCICX);%INCLUDE SOURCLIB(ASUM70PR);%INCLUDE SOURCLIB(ASUMCACH);%INCLUDE SOURCLIB(ASUMTAPE);%INCLUDE SOURCLIB(ASUMTMNT);%INCLUDE SOURCLIB(ASUMTALO);%INCLUDE SOURCLIB(ASUMDB2A);%INCLUDE SOURCLIB(ASUMDB2B);
Defaults included after BUILDPDB - unless the inputdata is suppressed.
![Page 145: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/145.jpg)
MXG Installation - UTILBLDP
As many user SMF record types as desired can be added (region size may have to be increased):– USERADD=HSM/208 SYNC/214
TSOM/220 ….
– Separated by spaces terminated with a comma or );
![Page 146: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/146.jpg)
MXG Installation - UTILBLDP
What if you want to suppress some records? Say CICS DB2 and the type 74 RMF records
%UTILBLDP( BUILDPBD=YES, OUTFILE=SOURCLIB(MYPDB), SUPPRESS=110 DB2 74);
![Page 147: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/147.jpg)
%UTILBLDP( BUILDPBD=YES, OUTFILE=SOURCLIB(MYPDB), SUPPRESS=74.1);
MXG Installation - UTILBLDP
What if you want to suppress just the 74 subtype 1?
![Page 148: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/148.jpg)
%UTILBLDP( BUILDPBD=YES, MYFILE=INSTREAM, SUPPRESS=110 DB2 74);%INCLUDE INSTREAM;
MXG Installation - UTILBLDP
It is not required that you store the output of UTILBLDP. You can run and execute the code as your SYSIN.
![Page 149: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/149.jpg)
Retaining Data
Weekly/Monthly Processing vs WTD/MTD processing
TREND processing How long?
![Page 150: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/150.jpg)
Processing Cycle
Original Implementation Circa 1983 Worked when SMF volume was small Breaks down as volumes increase
without major changes– primarily a space issue - how large is the
largest dataset when you try to create it at a monthly level
![Page 151: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/151.jpg)
Processing Cycle
BUILDPDB Monday? WEEKBLD1st
Month?MONTHBLD
YES
NO
YES
STOP
NO
DailySMF
7 DAILYPDBs
5Weekly
PDB
MonthlyPDB
![Page 152: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/152.jpg)
Weekly Processing
Uses previous 7 daily PDBs Builds the datasets in sequence May be to tape or to disk Volume can quickly become a problem
![Page 153: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/153.jpg)
WTD Processing
Same logic as weekly but run each day At end of week, the same datasets are
created but the resource consumption is spread out
A key is to reduce the number of variables kept
![Page 154: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/154.jpg)
Monthly Processing
Use last 5 weekly and last 7 daily PDBs to construct the previous calendar month.
Logic MUST run on 1st day of month Can be extraordinarily resource intensive Uses tape format datasets on disk to
avoid multiple mounts
![Page 155: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/155.jpg)
MTD Processing
Like the WTD processing, runs each day with a job at the end of the month to create the next MTD PDB.
Reduce the variables even further than the WTD process
Reduce the datasets retained
![Page 156: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/156.jpg)
WTD/MTD Processing
Both rely on a new macro VMXG2DTE– You specify input and output Ddnames,
dataset name, by list if appropriate, whether or not to use PROC APPEND, what cycle and when to start the cycle, and a list of variables to keep or drop (whichever is shorter).
![Page 157: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/157.jpg)
WTD/MTD Processing
%VMXG2DTE( DDIN=MTDPDB, DDOUT=MTDPDB, APPEND=YES, PDB=PDB, DATASET=JOBS, INITIT=M1, DROPPER=var1 var2);
Month-to date starting on 1st of month using PROC APPEND
![Page 158: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/158.jpg)
WTD/MTD Processing
%VMXG2DTE( DDIN=WTDPDB, DDOUT=WTDPDB, PDB=PDB, DATASET=RMFINTRV, BYLIST=SYSPLEX SYSTEM STARTIME, INITIT=W2, KEEPER=VAR1 var2 …);
WTD starting on Monday (day 2 of week) NOT using PROC APPEND
![Page 159: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/159.jpg)
WTD/MTD Processing
To append or not to append - that is the question– Appending destroys sort order but uses
many fewer resources– Not appending preserves sort order
Personally, in most cases if I am doing reporting I have to sort anyway
![Page 160: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/160.jpg)
WTD/MTD Processing
OTOH, if there is an ABEND, PROC APPEND makes recovery much harder.
Using data steps preserves sort order, allows for recovery by using GDG as input and output.
![Page 161: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/161.jpg)
TRENDing
Most of the important data has a TREND component (member TRNDxxxx)
Utilizes VMXGSUM to do summarization
Radical reduction in space for highly summarized data (6 years history in just under 1000 cylinders)
![Page 162: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/162.jpg)
TRENDing
Designed to run weekly but can be done daily by changing the WEEK.xxxxxxxx to PDB.xxxxxxxx in the member
%VMXGSUM(INVOKEBY=TRNDTMNT, INDATA= WEEK.TAPEMNTS (IN=INWEEK) TREND.TAPEMNTS,…..);
![Page 163: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/163.jpg)
TRENDing
At the same time, change the DD on the input and output TREND datasets so that the TREND database can be a GDG.
%VMXGSUM(INVOKEBY=TRNDRMFI, INDATA= PDB.RMFINTRV (IN=INWEEK)
TRENDIN.TRNDRMFI,OUTDATA=TRENDOUT.TRNDRMFI,
…..);
![Page 164: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/164.jpg)
TRENDing
Or by changing the WEEK.xxxxxxxx to PDB.xxxxxxxx using overrides
%LET TRENDINP=PDB;%INCLUDE SOURCLIB(TRNDTMNT);%INCLUDE SOURCLIB(TRNDTALO);...
![Page 165: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/165.jpg)
TRENDing
TREND database can be made a GDG by using the TRENDNEW TRENDOLD macro variables.
%LET TRENDINP=PDB;%LET TRENDOLD=TRENDOLD;%LET TRENDNEW=TRENDNEW;%INCLUDE SOURCLIB(TRNDTMNT);%INCLUDE SOURCLIB(TRNDTALO);...
![Page 166: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/166.jpg)
What Cycles Should You Run?
‘It depends…’– Volume is the key. If volume is small, the canned
structures work fine. As volume grows, these structures become untenable. The run time becomes longer than can be tolerated. The disk space required for temporary datasets that are pseudo-tape may be unattainable. A daily job that runs for a day is not practical. A weekly job that cannot be completed between IPL’s is impractical.
![Page 167: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/167.jpg)
Retention - One Man’s View
Daily PDB is a GDG with 255 generations Weekly PDB is a GDG with 255 generations with a
reduced set of variables and datasets Monthly PDB is a GDG with 255 generations but a
drastically reduced set of variables and datasets TREND dataset(s) are GDG with 30 generations SPIN dataset(s) are GDG with 30 generations WTDPDB/MTDPDB are GDG with 30 generations
Use of GDGs makes all jobs recoverable by CA11 (which means automatically)
![Page 168: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/168.jpg)
So??? What do you do?
No WEEKLY process No MONTHLY process TREND updated daily (which means the
current week is incomplete) Reduced variable counts No detail at the WEEKLY/MONTHLY
level
![Page 169: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/169.jpg)
Processing Cycle
DailyBUILD
MTD Build
WTD Build
DailyPDB
TREND
MTDPDB
!st ofWeek?
!st ofMonth?
Copyto Month
Copyto Week
STOP
Last Week
LastMonth
TRENDBuild
WTDPDB
DailySMF
SPIN
![Page 170: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/170.jpg)
Where to run - Mainframe vs PC
If you are the only SAS user on the mainframe, the cost of SAS may be onerous. Even if you have a ‘penalty box’ it can be very expensive.
If you are not the only mainframe SAS user, the data management facilities and IO capabilities are generally better on the mainframe.
![Page 171: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/171.jpg)
PC Data Management
VMXGALOC– Allocates directory yourbase\wddmmmyy
on first day of week – Allocates directory yourbase\mddmmmyy
on first day of month– Allows for normal or wtd/mtd processing
and long term data retention without a lot of manual manipulation
![Page 172: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/172.jpg)
PC Data Management
VMXGALOC will soon be built into BLDNTPDB and BLDSMPDB
![Page 173: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/173.jpg)
Where to run?
So, the answer one more time is:
It depends.
![Page 174: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/174.jpg)
Running on a PC
It has been found that using the FTP method built into SAS is more efficient than converting the data to RECFM=U and then downloading. It not only saves a step on the mainframe, it eliminates a write of the data on the PC and jobs have been found to run in 1/3 the time of the FTP and SAS step combined.
![Page 175: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/175.jpg)
Running on a PC
BLDSMPDB automates the MVS/OS 390/zOS BUILDPDB process. It is parameter driven and will handle weekly monthly and trend processing.
With the soon to be addition of VMXGALOC it will be (almost) self sustaining.
![Page 176: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/176.jpg)
Running on a PC
BLDNTPDB is the NT SMF equivalent of BUILDPDB and the base on which BLDSMPDB was constructed.
![Page 177: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/177.jpg)
Using FTP Access
filename smf ftp "’your.smf.dsn'" host=’your.ftp.site’ S370VS rcmd='site rdw' lrecl=32760 prompt;%include sourclib(buildpdb);run;
Note the quoting pattern on the dataset name and the rcmd option.
![Page 178: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/178.jpg)
NOT Using FTP Access
Data must be converted to RECFM=U to preserve the BDW/RDW and downloaded BINARY to preserve the EBCDIC bit patterns.
![Page 179: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/179.jpg)
MXG Installation - Non-SMF
Most common sources– TMS - tape library – DCOLLECT - grazing the DASD farm
Less common– NTSMF– SYSLOG– AIX/other platforms
![Page 180: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/180.jpg)
MXG Installation - Non-SMF
TMS/DCOLLECT may need to be timed to coordinate with a disaster recovery SYNCHPOINT– Run DCOLLECT at SYNCHPOINT time– Run TYPETMS5 after daily TMS runs– Bring output together to run DAILYDSN
![Page 181: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/181.jpg)
MXG Installation - Non-SMF
TMC
DASDFARM
TYPETMS5
DCOLLECT
TMCData
DCOLLECTDATA RAW
TYPEDCOL DCOL****datasets
DAILYDSN DATASETS
Every dataset in theshop is representedhere.
![Page 182: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/182.jpg)
My Jobs Run Too Long!!!
IO connect time (data transfer) is the largest single component of the run-time of MXG.
Connect time can be reduced by– reducing kept variables– eliminating unneeded datasets– passing only the SMF records of interest– eliminating sorts
![Page 183: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/183.jpg)
My Jobs Run Too Long!!!
Most likely causes of volume problems– CICSTRAN – DB2ACCT– DB2ACCTP– DB2ACCTB– TYPE74– TYPE74CA– TYPE42DS - if you add TYPE42 data
![Page 184: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/184.jpg)
SMF Volumes
![Page 185: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/185.jpg)
SMF Volumes
Tailored
MCT Rollout
![Page 186: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/186.jpg)
My Jobs Run Too Long!!!!!!
It is after all, just an application not unlike any other application
Apply all of the tricks and techniques you use on applications
Parallelism may be the answer - if it won’t run serially, run it in parallel
![Page 187: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/187.jpg)
Parallel Streams
Stream 1 - MYBLDPDB– Processes normal BUILDPDB but excludes
all CICS, DB2, and IO related data is the average response time to DASD across
20,000+ volumes a significant metric in RMFINTRV? Probably not.
![Page 188: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/188.jpg)
Parallel Streams - Stream 1
%UTILBLDP( SUPPRESS=DB2 CICS 73 74 75 78, ZEROOBS=73 74 75 78, USERADD=whatever, OUTFILE=SOURCLIB(MYBLDPDB));
There will be MXGWARN messages in theLOG about datasets not being included thatRMFINTRV is expecting.
![Page 189: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/189.jpg)
Parallel Streams
Stream 2 - BLDIOPDB– Process IO related data
type 42 type 73 type 74 type 75 type 78 etc.
![Page 190: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/190.jpg)
Parallel Streams - Stream 2
%UTILBLDP( BUILDPDB=NO, USERADD=42 73 74 75 78, INCLAFTR=ASUMCACH ASUM42DS, OUTFILE=SOURCLIB(BLDIOPDB));
![Page 191: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/191.jpg)
Parallel Streams
Stream 3 - BLDCISTA– Process CICS Statistics
Stream 4 - DALYDSET– MXG member ANALDSET
Stream 5 - BILDDCOL– Process DCOLLECT data
![Page 192: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/192.jpg)
Parallel Streams
Stream 6 - BUILDTMS– Process TMS Catalog
Stream 7 - BILDDSNS– Combine TMS and DCOLLECT data
Stream 8 - DB2PDB (3 times daily)– Process DB2 data
![Page 193: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/193.jpg)
Parallel Streams
Stream 9 - BLDCISTR (3 times daily)– Process CICS transaction data
Stream 10 - ASUMUOW– Combine CICS/DB2 into Unit of Work
summary
![Page 194: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/194.jpg)
First Do This!!!!!!!
I SMF IFASMFDP
MANx
Working CopyDaily SMF
ArchivalDaily SMF
EODSMF
NOTYPE 99 101 110
SMFDumps
IFASMFDP
When datasets fill and at end of day, issue I SMF on each system
SMFDumpsSMF
DumpsSMFDumpsSMF
Dumps
After all dumps are completeDuplicate process for CICS and DB2but eliminate disk copy
SMFTYPE 110
SMFTYPE 101
CICS
DB2Do the CLEAR in a secondstep
SMFTYPE 99
WLM
![Page 195: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/195.jpg)
So?? What do you do?
Parallel Jobs - example
CMFData
DB2SMF Data
TYPE110
TYPEDB2
BUILDPDB
BLDIOPDB
CICSTRAN
DB2PDB
DailyPDB
Daily IO PDB
ASUMUOW ASUMUOW
WTD/MTD
MTDPDB
WTDPDB
DailySMF/RMF
![Page 196: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/196.jpg)
CICS/DB2 Volume Problem
Processing of CICS/DB2 SMF data into ASUMUOW is time consuming
3 times/day 3-4 hours each (was 7-9 hours before latest re-architecture)– CICS volume is 176GB of SMF data 30M observations
(and this was a light day)– DB2 volume is 106GB SMF data 40M obs in DB2ACCT– Other SMF (excluding type 99) was only 35GB in 31M
records– Type 99 is about 20GB
Volume is growing 30-40%/year
![Page 197: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/197.jpg)
CICS/DB2 Volume Problem
CICSTRAN and DB2ACCT must be sorted prior to merge
TAPE IO is bottleneck - CICSTRAN dataset is 5-6 volumes of tape at 10-15 minutes/volume to move data
Data is read/written by data step, by sort then read by data step - 5 full passes
DB2ACCT is even worse. Created in huge volumes (10-12 cartridges 3 times/day) but likely never ever read again!
![Page 198: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/198.jpg)
CICSSMF
DB2SMF
CICSTRANSORTED
CICSTRAN
DB2ACCTSORTED
DB2ACCT
TYPE110
ASUMUOW
SORT
SORTTYPEDB2
ASUMUOW
8-9 Hours
Original Architecture
5-6 tapes 5-6 tapes
5-6 tapes
1-2 tapes
2002
![Page 199: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/199.jpg)
CICSSMF
DB2ACCTSORTED
DB2 SMF
CICSTRANSORTED
ASUMUOW
TYPE110/SORT
TYPEDB2/SORT
ASUMUOW
6-8 Hours
Using VIEW from DATA Step to SORT
2003
![Page 200: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/200.jpg)
Still a Problem
Most of the elapsed time in the DB2 thread is due to the writing of 3 detail datasets that are HUGE– DB2ACCT– DB2ACCTB– DB2ACCTP
![Page 201: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/201.jpg)
CICSSMF
DB2 SMF
CICSTRANSORTED
ASUMUOW
TYPE110/SORT
TYPEDB2/SORT
ASUMUOW
3-4 Hours
Using VIEW from DATA Step to SORT
Today
Only OBS with QWHCATYP=4and only variables needed for ASUMUOW
DB2ACCT
CAPPLANDB2ACCT
All variables only OBSGT 5 second elapsed
All OBS only variables wanted by capacity planning
UOWDB2
DB2PDB
Other DB2 Data
![Page 202: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/202.jpg)
Success!!
Observations reduced by 90-95%!! Run time significantly reduced!
But… remember axiom 2. As current growth rates continue, the run time will expand and when it reaches 6 hours (at 3 times per day that is 18 hours) it will be time to adjust again.
![Page 203: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/203.jpg)
But… what about space?
As volumes grow, getting DASD space can be a problem.
Options– SAS compression– DASD hardware compression– Tape
![Page 204: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/204.jpg)
SAS Compression
Default in MXG Advantages
– simple - it is already there– allows data to flow across many volumes
Disadvantages– CPU cost
![Page 205: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/205.jpg)
DASD Compression
Advantages– Allows for the use of striping and lots of
buffers Disadvantages
– CPU time – Only 1 dataset per DD can be open – Cannot be used for work
![Page 206: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/206.jpg)
Tape Datasets
Advantages– CPU for compression offloaded to control
unit Disadvantages
– Tape mount delays– Overloading of VTS– Channel delays
![Page 207: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/207.jpg)
So which is best?
Guess what? - It depends! SAS compression used on almost
everything Some cases (TYPE74 TYPE74CA)
DASD compression used Some cases (CICSTRAN DB2ACCT)
tape is used
![Page 208: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/208.jpg)
CICS Growth
Fri afterTurkeyDay
Fri AfterTurkey Day
![Page 209: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/209.jpg)
DB2 Growth
HOURS!!!
![Page 210: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/210.jpg)
Growth
“Forecasting: A method invented by weasels to make people stop asking questions.” Dilbert and the Way of the Weasel
![Page 211: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/211.jpg)
CICSSMF
DB2 SMF
ASUMUOW
TYPE110/SORT
TYPEDB2/SORT
ASUMUOW
2.3 Hours
Using VIEW from DATA Step to SORT PIPE from SORT to ASUMUOW
CICSTRANSORTED
DB2ACCTSORTED
fitting
fitting
DB2 Processing
pipe
pipe
Next Step
![Page 212: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/212.jpg)
Using VIEW from DATA Step to SORT PIPE from SORT to ASUMUOW
Requires batch pipes for SAS - that will mean at least V8.2 and maybe V9
DB2 Processing must be in 2 steps – the fitting for DB2ACCT can’t be reopened
for input within the same job step. There may be a way to get around this but I haven’t found it yet.
![Page 213: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/213.jpg)
In the Toolbox
I hate writing and rewriting the same programs so I write tools (macros) that handle the repetitive tasks. Where appropriate they find their way into MXG.
![Page 214: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/214.jpg)
Using Some MXG Tools
VMXGSUM UTILBLDP for Ad-Hoc processing ANALCNCR ANALDB2R VMXGGETM VMXGGMT VMXGCOMP VMXGPRAL
![Page 215: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/215.jpg)
VMXGSUM
Generalized summarization of ANY SAS dataset
– Uses PROC MEANS to do summarization– SORTs data– Allows for changes in input and output data– Optimizes variables kept – Carries labels and formats thru summarization– Allows for long variable names– Allows for normalization of variables and changing time
intervals
![Page 216: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/216.jpg)
VMXGSUM
Common in reporting:– DATA xxxx;– SET yyyy;– PROC SORT DATA=xxxx;– PROC MEANS DATA=XXXX OUT=zzzz;– DATA final;– SET zzzz;
![Page 217: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/217.jpg)
VMXGSUM is a short-hand way of coding a repetitive set of commands.
Used extensively internally in many MXG members but especially common in ASUM**** and TRND**** members.
VMXGSUM
![Page 218: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/218.jpg)
VMXGSUM - SYNTAX
%VMXGSUM(– INDATA= input dataset(s) name– OUTDATA= output dataset name– SUMBY= list of variables by which data
should be sorted– INCODE= a stub of SAS code executed
during the first data step– OUTCODE= a stub of SAS code executed
during the final data step
![Page 219: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/219.jpg)
VMXGSUM - SYNTAX
– INTERVAL= how to change the time interval. Valid values are:
QTRHOUR HALFHOUR HOUR THREEHR MINUTE WEEK MONTH MYTIME
– DATETIME= the variable name of the variable containing the datetime value on which INTERVAL= will be applied
– SYNC59= if your time is synched to 59 minutes, will add 60 seconds before calculating interval if set to YES
![Page 220: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/220.jpg)
VMXGSUM - SYNTAX
ID= list of variables that will be carried forward as ID values
AUTONAME=YES/NO autoname = yes says to use the autonaming functions of SAS V8 to name the output variables. This allows the specification of the same variable name in multiple lists but changes the output variable name to variable_suffix where suffix is the name of the function performed on the variable.
![Page 221: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/221.jpg)
VMXGSUM - SYNTAX
SUM= list of variables to be summed MAX= list of variables to be maxxed MIN= list of variables to be minned MEAN= list of variables to be meaned P1= list of variables to get percentile 1 P5= 5th percentile variables P10= 10th percentile variables
![Page 222: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/222.jpg)
VMXGSUM - SYNTAX
– P25 P50 P75 P90 P95 P99 - percentile values
– STD - Standard Deviation– VAR - variance– CV - coefficient of variance– STDERR - Standard error– KURTOSIS - Kurtosis– T - T value
![Page 223: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/223.jpg)
VMXGSUM - Syntax
NORM1-NORM99 - normalization of data. Maintaining rates as rates and not averages of averages. On the front-end, the rate has to be multiplied by the duration and on the back end divided again to recalculate the correct rate.
![Page 224: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/224.jpg)
VMXGSUM - SYNTAX
– NORM1-NORM99 - syntax rate1 rate2 rate3…ratex/duration
List the variables to be normalized followed by a / then the variable to be used to do the normalization.
![Page 225: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/225.jpg)
VMXGSUM - SYNTAX
There are other parameters. See the documentation in the member for usage and the member ADOCSUM.
![Page 226: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/226.jpg)
VMXGSUM - Example 1
Summarize the dataset TYPETMNT by DEVICE and TMNTTIME calculating average mount delay and the total number of mounts per quarter hour.
%vmxgsum( indata=pdb.typetmnt, outdata=tapemnts, sumby=device tmnttime, interval=qtrhour, datetime=tmnttime, mean=tapmnttm, freq=mounts);
![Page 227: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/227.jpg)
VMXGSUM - Example 2
Summarize the Goal Mode type 72 records for the TSO service class calculating the average response time, the number of transactions at one hour intervals by period.
![Page 228: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/228.jpg)
VMXGSUM - Example 2
%VMXGSUM( INDATA=PDB.TYPE72GO, OUTDATA=TSOSUM, SUMBY=STARTIME PERIOD, INCODE= IF SRVCLASS=‘TSO’;, SUM=RESPAVG NUMTRAN, NORM1=RESPAVG/NUMTRAN, INTERVAL=HOUR, DATETIME=STARTIME);
![Page 229: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/229.jpg)
VMXGSUM Usage Notes
NORMx operands must be contiguous starting at 1. That is, you cannot have NORM1 and NORM3 without a NORM2.
TEMP01/TEMP02 DDs are recognized for increasing work space but with V8 and compression it is not usually needed and is no longer recommended.
![Page 230: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/230.jpg)
VMXGSUM Usage Notes
The first data step is almost always converted to a VIEW rather than a real data step.
KEEPALL=NO is resource intensive and not really needed except in odd cases. KEEPALL=YES is much preferred. The keep lists on all output datasets are optimized regardless of KEEPALL setting.
![Page 231: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/231.jpg)
Why VMXGSUM?
So why not just use PROC MEANS with CLASS operands?
VMXGSUM in tests is usually much more efficient and in some cases will do the summarization where using PROC MEANS or PROC SUMMARY with CLASS operands runs out of memory.
![Page 232: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/232.jpg)
VMXGSUM - Hysterical Note
The ‘keeping’ logic in VMXGSUM was intended by Barry to reduce the size of the input data and therefore the amount of data moved in the first data step. After years of arguing, he was finally convinced that it did not work that way and KEEPALL=YES became preferred.
![Page 233: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/233.jpg)
UTILBLDP - Ad-Hoc
Say you need to read the 1415 6156 64 and 30 records (ANALDSET?) in a single pass for an ad-hoc report.
%UTILBLDP(BUILDPDB=NO, USERADD=1415 6156 64 30, OUTFILE=INSTREAM, SORTOUT=NO);%INCLUDE INSTREAM;
![Page 234: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/234.jpg)
ANALCNCR
Counts concurrent events. How many of something were happening at the same time.
![Page 235: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/235.jpg)
ANALCNCR - History
Method used in original release of MXG:– DO TIME=BEGIN TO END BY 5;– OUTPUT;– END;– Then add up all the observations with a
given value of TIME. Created a HUGE number of observations and was cumbersome.
![Page 236: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/236.jpg)
ANALCNCR - History
Method used with ANALCNCR:– TIME=BEGIN;COUNT=1;OUTPUT;– TIME=END;COUNT=-1;OUTPUT;
– Now add up the counts by time and you are done (basically.) Many many fewer observations.
![Page 237: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/237.jpg)
ANALCNCR - History
If there are three tape allocations:
– Allocation 1 begins at 08:00 ends at 08:30– Allocation 2 begins at 08:15 ends at 08:25– Allocation 3 begins at 08:20 ends at 08:45
![Page 238: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/238.jpg)
ANALCNCR - History
MAX of 3 concurrent allocations– 15 minutes of 1 – 5 minutes of 2 – 5 minutes of 3 – 5 minutes of 2 – 15 minutes of 1
Old method– Allocation 1 - 1800/5=360 obs– Allocation 2 - 600/5=120 obs– Allocation 3 - 1500/5=300 obs– Total = 780 obs
New Method– Each allocation is 2 OBS– Total = 6
![Page 239: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/239.jpg)
ANALCNCR - Example 1
How many jobs are running concurrently in class A average and max.
%ANALCNCR(INDATA=PDB.JOBS, OUTSUMRY=RUNTIME, SUMBY=JOBCLASS, INCODE=IF TYPETASK=‘JOB’;, INTERVAL=QTRHOUR, STARTIME=JINITIME, ENDTIME=JTRMTIME, OTCODESM= AVGRUN=CONCURNT/DURATM; RENAME MAXCNCR=MAXRUN;);PROC PRINT;ID JOBCLASS TIMESTMP;VAR AVGRUN MAXRUN;
![Page 240: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/240.jpg)
ANALCNCR - Example 2
Now suppose you want the INPUT QUEUE time for the same job class.
%ANALCNCR(INDATA=PDB.JOBS, OUTSUMRY=QUETIME, SUMBY=JOBCLASS, INCODE=IF TYPETASK=:’JOB’;, INTERVAL=QTRHOUR, STARTIME=READTIME, ENDTIME=JINITIME, OTCODESM= AVGQUE=CONCURNT/DURATM; RENAME MAXQUE=MAXRUN;);PROC PRINT;ID JOBCLASS TIMESTMP;VAR AVGQUE MAXQUE;
![Page 241: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/241.jpg)
ANALCNCR - Example 3
Now put the two outputs together
DATA JOBSTAT;MERGE RUNTIME QUETIME;BY JOBCLASS TIMESTMP;PROC PRINT;ID JOBCLASS TIMESTMP;VAR AVGQUE AVGRUN MAXQUE MAXRUN;
![Page 242: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/242.jpg)
ANALDB2R
ANALDB2R is a reverse engineered semi-clone of IBM’s DB2PM.
Most DB2PM reports can be produced from either a PDB or raw SMF data.
Parameter driven and documented in the member as well as in ADOCDB2R.
![Page 243: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/243.jpg)
VMXGGETM
Get specific types and subtypes of SMF data up to x number. Great for building a test case for processing or extracting samples of data to send to Merrill Consultants for analysis in problem solving.
![Page 244: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/244.jpg)
VMXGGETM
Get the type 30 and type 230 records all subtypes and write to SMFOUT the first 100 OBS of each.
%VMXGGETM( ID=30 230, SUBTYPE=ALL, NRECORD=100, SMFOUT=SMFOUT);
![Page 245: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/245.jpg)
VMXGGMT
Adjust the timestamps of SMF data (or any other time stamp) to a specific offset
Useful if you have multiple LPARs in differing time zones and you want a uniform picture.
![Page 246: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/246.jpg)
VMXGGMT
Three pieces– TIMETABL - A table of SYSTEM/SYSPLEX ID
with datetime ranges and offsets from GMT– TIMEBILD - builds a FORMAT based on the
values in TIMETABL and enables VMXGGMT– VMXGGMT - macro imbedded in all MXG
members that will adjust times based on the values contained in TIMETABLE so that midnight is always midnight.
![Page 247: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/247.jpg)
VMXGGMT - Usage
Build your TIMETABLE In IMACINIT, insert:
– %TIMEBILD(TIMEBILD=YES); VMXGGMT imbedded in MXG will now
be active. Without the %TIMEBILD, the
VMXGGMT invocations are nulled
![Page 248: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/248.jpg)
VMXGCOMP
Compare all of the members of two SAS data libraries– useful in testing new releases to compare
results– identifies common datasets, new datasets,
dropped datasets– compares values in common datasets
![Page 249: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/249.jpg)
VMXGCOMP
Syntax
%VMXGCOMP( NEWDD=PDB, OLDDD=OLDPDB, NOBS=100);
![Page 250: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/250.jpg)
VMXGPRAL
Print the contents of all of the members of a SAS data library, do a PROC MEANS of the numeric variables, and print X number of OBS.
%VMXGPRAL( DDNAME=PDB, NOBS=10);
![Page 251: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/251.jpg)
VMXGPRAL
Or print the contents of all opened allocated SAS data libraries
%VMXGPRAL(DDNAME=_ALL_,NOCONT=);
![Page 252: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/252.jpg)
VMXGPRAL
Or print the contents of the data libraries in which you are interested
%VMXGPRAL(DDNAME=PDB SPIN,NOCONT=,NOSPLIT=NOSPLIT);
![Page 253: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/253.jpg)
MXG Tools
There are lots more. Look for SOURCLIB members that start with ANAL, VMXG, VGET, UTIL.
Documentation is contained within the members and in some cases (ANALDB2R for example) there may also be an ADOC member.
![Page 254: MXG - Simplified (MXG for Dummies) Chuck Hopf Merrill Consultants.](https://reader034.fdocuments.us/reader034/viewer/2022050713/56649e415503460f94b33301/html5/thumbnails/254.jpg)
Questions
There are no stupid questions except those you don’t ask.– Prof Hartmann - PSY 101 Purdue