------------------------------------<snip>-------------------------------------

This "idea" was inspired by the recent posts about the IEFU8n SMF exits. Writing and debugging this 
type of exit can require a good level of knowledge and skill. So what occurred to me is a new facility for 
receiving SMF records at/near generation time. It could not be used to modify the records or to say "no, 
don't write it". It would be simply for "I need to look at the SMF data in near real time in order 
to do something else."

I apologize for the following being so vague and poorly written.

What this would consist of is a way to register a need for a copy of the SMF 
data. This request would result in a local data space being created for the 
address space doing the request. Control blocks would be created in this data 
space. A copy of the SMF record would be made in this data space and chained 
into the control blocks. The simpliest form of the API would simply copy all 
SMF records into this data space as they are generated. If the data space fills 
up, then records are lost. A more advanced form of the request would have a way 
to specify a type of filter. This filter would only copy SMF records which had 
specific values in specific fields. I don't know all the filters, but was 
thinking of filters on fields in the SMF header such as SMFRTY, SMFSID, SMFSSI, 
and SMFSTY. Of course, their needs to be a way to process this data. So, some 
variations could be: POST an ECB; schedule an IRB on the TCB which is using the 
API, passing a pointer to the record; schedule a loc!
a!

l SRB into the address space with a pointer to the record; ??? . In the POST an 
ECB case, there would be an API to dequeue the next record. An RC would 
indicate no more records so the dequeue could be in a loop. When no more 
records, the code could do whatever and eventually the ECB would be posted 
again. For a SYNCHRONOUS request, the API could be set up so that a WAIT is 
automatically done until another record is available.

Would such an API be generally useful to the community? Or am I off in the 
parking lot again?
---------------------------------------<unsnip>-------------------------------------
You're parked in the right lot, John. I did something like this once.

IEFU83/4/5 exits were constructed to invoke other exits, with a name form of BOTCCnnn, where nnn was the record type. The vast majority of the BOTCCnnn exits were simple IEFBR14's, linked directly to the IEFUxx exits, but a select few had additional functionality, such as a display in SYSLOG each time a FTP was completed, showing sender, receiver, bytes transferred, etc. Another one was a display, tailored as needed, for each time the RACF database was updated via RACF command. (Auditors LOVED that one!) And another, again suitably tailored, for each time a LINKLIST dataset was altered.

At that time, management required that we IPL all systems weekly, so updates were relatively easy to install, although the exit code got to be rather large until management decided they were "micromanaging" and reduced their requirements. In retrospect, I probably could have slightly reduced the "overhead" by just checking for an unresolved AD-CON for the supplementary code and bypassed the call. There's that 20-20 hindsight again, biting me right where the "sun don't shine".

I still think the basic idea was good, but the implementation might have been better. :-) Who was it that said "A little education can be a dangerous thing?"

Rick

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to