This mechanism was perfectly adequate to handle controllers like the IBM 3830 or the Amdahl 6880-G2, because those controllers included a single LCU. However, modern controllers have a large number of devices configured, and in most cases include multiple LCUs. The objective of Xtract is to generate input for Lead Time, and Lead Time works at the controller level. So, if a controller includes multiple LCUs, several OUTnnn data sets had to be merged within Lead Time. This can be a cumbersome process. Under Xtract 4.1 and lower, there was a limited way to address this problem by specifyingLCUGRP=NO. With this specification, a single output data set (OUT001) was used, regardless of the number of LCUs.
However, this approach does not address the case where a configuration included multiple controllers, some of them including multiple LCUs. Assume, for instance, a DASD configuration including six controllers: – Amdahl Controller, LCUs 15, 16, 17, 18. – EMC Controller, LCUs 1A, 1B, 1C, 1D. – HDS Controller, LCUs 09, 0A, 0B, 0C. – IBM Controller, LCUs 30, 31, 32, 33. – STK Controller, LCUs 27, 28, 29, 2A. – IBM 3830 Controller, LCU 6A. As six controllers are present, six Lead Time runs must be executed.
Under Xtract 4.1 and previous releases, this configuration could be handled in two different ways:
• Specify all devices to Xtract, and let Xtract generate one dataset per LCU (in this case resulting in 21 data sets (OUT001 to OUT021), then merge appropriately the resulting 21 data sets to execute the desired six Lead Time runs.
• Execute six Xtract runs, one per controller, specifying LCUGRP=NO, each generating the input for one Lead Time run.
The new Xtract 4.2 release simplifies this process by allowing the user to specify which LCU(s) belong to which controller, using CNTRL keywords. Under Xtract 4.2, the hypothetical configuration mentioned above could be defined as follows:
• CNTRL CLCUS=(15,16,17,18)
• CNTRL CLCUS=(1A,1B,1C,1D)
• CNTRL CLCUS=(09,0A,0B,0C)
• CNTRL CLCUS=(30,31,32,33)
• CNTRL CLCUS=6A
This would result in six output data sets (OUT001 to OUT006), one for each Lead Time run. However, the question becomes: In which OUTnnn data set will I find the LEADTIME input for a given controller? This depends on which LCU is encountered first in the SMF input stream, and is in practice virtually unpredictable. Xtract 4.2 solves this problem by allowing the user to identify each controller with a unique name which will be also used as the DDNAME. In this case, the above configuration would be defined as follows:
• CNTRL CLCUS=(15,16,17,18),ID=AMDAHL
• CNTRL CLCUS=(1A,1B,1C,1D),ID=EMC
• CNTRL CLCUS=(09,0A,0B,0C),ID=HDS
• CNTRL CLCUS=(30,31,32,33),ID=IBM
• CNTRL CLCUS=(27,28,29,2A),ID=STK
• CNTRL CLCUS=6A,ID=IBM3830
For this Xtract run, six output DDNAMEs would need to be specified: //AMDAHL DD … //EMC //HDS //IBM //STK //IBM3830 Obviously, the syntax for the operand of the ID keyword s the same as for the JCL DDNAME. Note also that LCUGRP=NO is not accepted in a CNTRL run. Please refer to the Xtract manual and to the Readme.txt file included with each new Xtract release for additional keywords and rules for the CNTRL specification.
The SMF dump program IFASMFDP also allows the user to specify periods to be selected. There is one important difference, however. In the case of the SMF dump program, the time refers to the moment the record was written to the SMF data set.
A misunderstanding of this fact may lead to frustrating consequences as in the following example:
RMF intervals are 1 hour long and start on the hour. The user wants to examine the activity between 2 pm and 3 pm, and specifies this to IFASMFDP.
IFASMFDP dumps all records that were written to the SMF data sets between 2 pm and 3 pm. RMF records written” between 2 pm and 3 pm (more exactly, a few seconds after 2 pm) are the ones describing the RMF interval ending at 2 pm, i.e., the 1 pm to 2 pm interval.
Xtract is executed with ST1=1400 and ND1=1459 and does not find any applicable RMF records.
In summary, it is important to remember that Xtract processes all RMF intervals that started during the specified period (or periods), while IFASMFDP dumps the records which were written during the specified period.