If itisinappropriatefor youtouseDFHLSCUto helpyousizeyourcouplingfacility structuresandlogstreams(perhapsyouhave noCICSVersion4or Version3 journalrecordsto useasinputtoDFHLSCU,or youarecapacityplanningfornew applications), thefollowing sectionswillhelpyou tocalculateyourspace
requirements.
Theformulaeprovided helpyouto calculatevaluesfor:
v INITSIZE v AVGBUFSIZE v SIZE
v LOWOFFLOAD v STG_SIZE
You mustbase yourcalculationsonthejournalingrequirementsof your applications.This providesthestartingpointfor thefollowingformulae.
Structuresizeforsystemlogusage: Youarerecommendednottoplacethe primaryandsecondarylogstreamsinthesamestructure duetothelargedisparity indatavolumeswrittentotheprimaryandsecondarysystemlogs.
Generally, thevolume ofdatathatCICSkeepsintheprimarysystemlogat anyone time isslightlygreater thantheamountwrittenduringoneactivitykeypointinterval.
This volumeisdeterminedbytheactivitykeypointfrequency,which ismeasuredin thenumberofwriterequeststo theCICSsystem logstreamoutputbuffer,and defined ontheAKPFREQsysteminitializationparameter.Reviewthevalue specifiedontheAKPFREQsysteminitializationparameterwhenplanningcoupling facilitystructuresizes.
TheINITSIZEvalueto besuppliedintheCFRMpolicycanbecalculatedasfollows:
Thevaluefor thenumberof entries(no.entries)canbecalculatedasfollows:
no. entries = ((akpintvl + trandur) * writespersec) / 0.9
v akpintvlistheinterval betweenactivitykeypointswhichvarieswithworkload.It canbecalculatedasfollows:
akpintvl = AKPFREQ / ((N1 * R1) + (N2 * R2) + (Nn * Rn) ) where:
– N1, N2.... Nnis thetransaction ratefor each transaction(transactions per second).
– R1, R2.... Rnis thenumberof log recordswritten byeach transaction.
v tranduristheexecutiontime(betweensyncpoints)of thelongest-running transactionthatrunsaspartofthenormalworkload.
Ifthisduration islongerthanakpintvlvalue,youcaneither:
– IncreasethevalueofAKPFREQ,soincreasingthevalueof akpintvl(aslong asthis doesnotresultinanunacceptablylargecouplingfacilitystructure size).
– Changetheapplicationlogicto causemorefrequentsyncpoints.
– Calculateastructure sizebasedonashortertransaction duration,andaccept thatDASDoffloadingoccurswhenthelong-running transactionisused.
v writespersec = lesser of 25 or ((N1 * R1) + ... (Nn * Rn)), where:
– N1, N2.... Nn arethetransaction frequencies (transactions persecond) of themost frequentlyexecutedtransactions.
– R1, R2.... Rnis thenumberof log recordswritten byeach transaction.
You cancalculateAVGBUFSIZEfor DFHLOGfromtheweightedaverageofthe data loggedbythemostfrequentlyexecutedtransactionsinthesystem:
AVGBUFSIZE = (bytespersec / writespersec) + 48 where:
v bytespersec = (N1 * D1) + (N2 * D2) + ... (Nn * Dn), where:
– N1, N2.... Nn arethetransaction frequencies (transactions persecond) of themost frequentlyexecutedtransactions.
– D1, D2.... Dnare thebytesof datalogged byeach transaction.
Youcancalculatetheamountofdata(Dn)writtento thesystemlogfor each transaction:
- synreclenisthesyncpointrecord length.
- Nfc, fcrechdr, fcreclenare, respectively,the numberof recoverable updatesmade,thelengthoftherecordheaders,andthelengthofthe recordsforfile control.
Countonly READUPDATEandWRITEADDrecords.fcrechdris144(136 bytesofrecord headerplus 8bytesoffilename).
Similarly:
- Nts, tsrechdr, tsreclenarefor recoverable temporary storage updates.
CountonlyTSPUTandTSUPDATErecords.
124 CICSTSforz/OS: InstallationGuide
ForTSPUTrecords,tsrechdris108,andtsreclenis88.
ForTSUPDATErecords,tsrechdris108,andtsreclenis52.
- Ntd, tdtrechdr,tdreclen arefor recoverable transient dataupdates.
tdrechdris108,andtdreclenis380.
- Nur, urrechdr,urreclen arefor user recordswritten to DFHLOG.
urrechdris125.
v
Seepage “Writespersecond calculation”onpage124for detailsofhow to calculatewritespersec
If theresultof thecalculationshowsa valueforAVGBUFSIZEthatisgreaterthanthe valuedefinedfor MAXBUFSIZE,then thevaluedefinedfor MAXBUFSIZEistaken asthevalueforAVGBUFSIZE,andwritesperseciscalculatedasfollows:
writespersec = bytespersec / (MAXBUFSIZE - 48)
Round thefinal resultof theINITSIZEformulauptothenextmultipleof256.
TheSIZEvalueto besuppliedintheCFRM policycanbecalculatedasfollows:
Calculate thevaluefor thenumberof entriesasintheINITSIZEformula.
Round thefinal resultof theSIZEformulaupto thenextmultipleof 256.The formulafor SIZEgivesaresultthatisapproximatelyfiftypercentgreaterthatthe INITSIZEvalue.
Generally, thesecondarysystem logstreamneedsto beonly afractionof thesize of theprimarylogstream.Usethefollowingformulaeto calculatecouplingfacility spacefor DFHSHUNT:
INITSIZE = (150 * LOGSNUM) + 310 SIZE = (230 * LOGSNUM) + 480
You cancalculateasuitablevaluefor LOWOFFLOADfor DFHLOGusingthe following formula:
LOWOFFLOAD = (trandur * 90) / (akpintvl + trandur) + 10 (where RETPD=0 specified) or
LOWOFFLOAD = (trandur * 90) / (akpintvl + trandur) (where RETPD=dddd specified) where:
v akpintvlistheinterval betweenactivitykeypoints.Seepage123fortheformula tocalculateit.
v tranduristheexecutiontime(betweensyncpoints)of thelongest-running transactionthatrunsaspartofthenormalworkload.
Ifthisduration islongerthanakpintvlvalue,youcaneither:
– IncreasethevalueofAKPFREQ,soincreasingthevalueof akpintvl(aslong asthis doesnotresultinanunacceptablylargecouplingfacilitystructure size).
– Changetheapplicationlogicto causemorefrequentsyncpoints.
SIZE = 480 + ( LOGSNUM * A * B / 1024)
where A = 2500 + (no. entries + 5)
and B = (AVGBUFSIZE * 1.6821) + 289
Figure18.SIZEcalculation
– Calculateastructure sizebasedonashortertransaction duration,andaccept thatDASDoffloadingoccurswhenthelong-running transactionisused.
Structuresizeforforwardrecoverylog usage: You canmergetheforward recovery logswrittenbymanyCICSregionsonto thesamelogstream.Youcan also usethesamelogstreamfor forwardrecovery dataformultipledatasets.
SeeFigure17onpage123andFigure18onpage125for theformulae tocalculate values fortheINITSIZEandSIZE attributes.
Calculate avaluefornumberof entriesasfollows:
no. entries = writespersec * 12.5 where:
writespersec = lesser of 25 or (N1 + ... + Nn)
where N1....Nnis thenumberof transactionspersecondwriting to eachdata set.
You cancalculateAVGBUFSIZEasfollows:
AVGBUFSIZE = (bytespersec / writespersec) + 36 where:
v bytespersec = (N1 * Wr1 * (D1 + rechdr) +.. (Nn * Wrn * (Dn + rechdr))) v writespersec = lesser of 25 or (N1 + ... + Nn), where:
– N1....Nn isthenumberof transactionspersecondwriting to each dataset.
– Wr1 ... Wrnis thenumberof writerequests pertransaction.
– D1....Dn istheaverage record lengthfor each dataset.
v rechdristherecord headerlengthof eachrecord.
If therecordsareWRITEADD,WRITEADDCOMPLETE, orWRITEADDDELETE records, rechdris84andisfollowedbytherecordkey, andtherecord data (includingitskey).
If theresultof thecalculationshowsa valueforAVGBUFSIZEthatisgreaterthanthe valuedefinedfor MAXBUFSIZE,thenthevaluedefinedfor MAXBUFSIZEistaken asthevalueforAVGBUFSIZE,andwritesperseciscalculatedasfollows:
writespersec = bytespersec / (MAXBUFSIZE - 36)
Structuresizeforuserjournalandautojournal usage: SeeFigure17onpage 123andFigure18onpage125for theformulaetocalculatevalues forthe
INITSIZEandSIZEattributes.
Calculate avaluefornumberof entriesasfollows:
no. entries = writespersec * 12.5
Seetheexplanationof writespersecbelow.
For journalswherethelogblocksarenotforcedto thelogstream,theaverage blocksizetendstobeslightlylessthantheMAXBUFSIZEvaluedefinedfor the couplingfacilitystructure.
For journalswherethelogblocksareforcedto thelog,(viatheEXECCICSWAIT JOURNALNAME orEXECCICSWAITJOURNALNUMcommands,orvia theWAIT 126 CICSTSforz/OS: InstallationGuide
optionof theEXECCICSWRITEJOURNALNAMEorEXECCICSWRITE JOURNALNUMcommands), youcancalculateAVGBUFSIZEfromtheweighted averageof thedataloggedforeach journalloggingtothesamelogstreamfor a givenCICSsystem.
AVGBUFSIZE = (bytespersec / (writespersec) + 36 where:
v bytespersec = (N1 * Wr1 * (D1 + rechdr) + ... (Nn *Wrn * (Dn + rechdr))) v
writespersec = lesser of 25 or ((N1 * Wa1) + ... + (Nn * Wan)) where:
– N1,.... Nnisthenumber oftransactionspersecond writing to thejournal.
– Wr1 ....Wrn isthe numberof writerequests pertransaction.
– Wa1 ....Wan isthe numberof waitrequests pertransaction.
– D1....Dn istheaverage record lengthof each journalrecord.
– rechdristherecord headerlengthofeach record.
Autojournalrecordsareissuedfromfilecontrol.TheymaybeDATASETNAME recordswhich consistof a204-byterecord header,andnofurtherdata.
Alternatively,theymay beREADONLY,READUPDATE,WRITEUPDATE,WRITE ADD,orWRITEADDCOMPLETE recordsInthiscase,rechdris84andisfollowed bythefilecontrolrecorditself.
Userjournalrecordsconsistof a68-byterecordheader,followedbytheuserprefix, andtheuserdata.
If theresultof thecalculationshowsa valueforAVGBUFSIZEthatisgreaterthanthe valuedefinedfor MAXBUFSIZE,then thevaluedefinedfor MAXBUFSIZEistaken asthevalueforAVGBUFSIZE,andwritesperseciscalculatedasfollows:
writespersec = bytespersec / (MAXBUFSIZE - 36)