Collecting continuous data - syncsort_capacity_management - 12 - 12.40

Syncsort Capacity Management Installation Guide

Product type
Software
Portfolio
Integrate
Product family
Syncsort
Product
Syncsort Capacity Management
Version
12.40
Language
English
Product name
Syncsort Capacity Management
Title
Syncsort Capacity Management Installation Guide
Topic type
How Do I
Copyright
2023
First publish date
1985

Most Syncsort Capacity Management users will want to collect data from their z/OS systems so as to cover all the dates and times available. When SMF data is cut off at the end of a day there is most often some “overhang” from records which belong to the “next” RMF interval, for example, on a system with 15 minute RMF intervals:


YESTERDAY         TODAY	
23:45             00:00	         00:15
|<RMF>            |<RMF>          |<RMF>
|                 | <SMF cutoff>  |
|                 | V             |
| C C CC CC CCC C | CI CCC CC C C | C C CCC C C
| B BB BB B B     | BI BB B BB BB |B BB B B BB B BB

The vertical lines show the interval ends when RMF data is cut, C means a CICS transaction record is written and B means a batch job or step ends or a batch interval ends. The daily SMF cut off occurs at time 00:02, where the V character is, just after the 00:00 RMF interval is written to SMF covering the interval 23:4500:00. CICS transactions and batch events continue to be written as they happen.

Acquire uses the RMF type 70 record as an end-of-interval marker. If the data for YESTERDAY was processed by Acquire then there would be RMF data up to the midnight interval, covering 23:45 - 0:00, plus some CICS and batch records that do not belong to that interval - they belong to the 0:00 - 0:15 interval, which will be in the TODAY data.

When data from TODAY is processed it will pick up data from the second and subsequent C and B items - but the first ones would be lost.

To overcome this, Acquire has some mechanisms to help you. One option is to use the DYNAGDG= or DYNADSN= facility as detailed below, to let Acquire dynamically allocate new members of a GDG. You can use part of this facility to automatically set the start date and time of the “next” run of Acquire using the //LASTGDG file, also described below. These two options should be examined and used if possible.

A final option uses a very simple warehouse file. With this any data processed by Acquire falls beyond the range of the last RMF interval it is stored in the ware­house file. The next time Acquire runs, it can read the warehouse file and add any data there that relates to “this” run.
Note: You cannot use the warehouse with the DYNAGDG or DYNADSN options.

You will see messages in the //IPLIST file that tell you how many records have been read from the warehouse before reading SMF data, how many were processed into “this” run and how many were left over and written away once all data had been processed.

You can control how Acquire treats the warehouse file with the WHS= control card. For compatibility the default is WHS=N, and the warehouse will not be used. WHS=Y instructs Acquire to try to use the warehouse file as described above. If the //WAREHSE file is not allocated in the step’s JCL it will ignore the request and continue. If you provide a control card of WHS=R then Acquire will reset the warehouse file, effectively ignoring any data that may be there. It will still write out any over­spill records to the file at the end of the run.

A DDNAME of //WAREHSE in your JCL must point to a sequential file with LRECL=4096 and RECFM=VB.

The warehouse file can be useful if you want to process data with Acquire immediately after dumping it from SMF. Traditionally, z/OS customers have a daily cut-off for SMF when they process the previous day’s data. With larger and larger systems and ever increasing data this is not always practical. Using the warehouse file allows you to create data and import it into Syncsort Capacity Management very soon after it is available, and ensure you can retain and incorporate any data falling between an SMF switch event and the next RMF interval.

An alternative, and probably better approach, is to use the DYNAGDG= parameter and/or the //LASTGDG file to allow Acquire to control what it allocates and processes, as described in the next section.