IBM TechXchange Virtual WebSphere z/OS User Group

IBM TechXchange Virtual WebSphere z/OS User Group

WebSphere and JAVA continues to grow as workload on System Z. The virtual user group has been established to provide a community to share updates on technology and share customer experiences.

 View Only

Liberty z/OS Post #67- SMF 120-11

By David Follis posted Thu November 07, 2024 08:04 AM

  

This post is part of a series exploring the unique aspects and capabilities of WebSphere Liberty when running on z/OS.
We'll also explore considerations when moving from WebSphere traditional on z/OS to Liberty on z/OS.

The next post in the series is here.

To start at the beginning, follow this link to the first post.

---------------

If you’re familiar with WebSphere traditional on z/OS, then you might already be familiar with the SMF 120 subtype 9 record.  That record is written on completion of any request dispatched in the server.  It contains information about the server (controller and servant regions), about the request itself, and about resources (CPU) it used. 

SMF always makes me think about the Kipling poem about having six honest serving men:  What, Why, When, How, Where, and Who.  The SMF 120-9 record tells you what ran (an HTTP request for a specific URI for example).  It tells you when it ran (various timestamps).  It tells you how it ran (how much CPU it used).  It tells you where it ran (which controller and servant).  It tells you who ran it (the userid used to authenticate/authorize execution). 

The tricky one is ‘why’.  For that, there is a user-data section where the application itself can put whatever information seems appropriate.  Maybe that can tell you why (like what function was requested from the application:  deposit, withdrawal, etc.). 

In Liberty the equivalent SMF record is the Type 120 subtype 11.  It tries to answer the same questions by providing much the same information.  Since there is just the server address space itself and not a controller/servant combination the ‘where’ parts are much fewer. 

We also learned from our problems doing math with CPU values to stop reporting CPU used (by subtracting CPU used by the dispatch thread at start/end of dispatch) and instead just report those absolute values and let you do the math yourself in post processing.  Hopefully we’ll take fewer APARs to fix the code this way. 

The 120-11 also contains a user data section just like the 120-9 and the application API remains the same.  If your application used that API to add user data into your 120-9 records it should just work when you bring your application to Liberty on z/OS.

Note that in WAS traditional the SMF records were written with the help of the controller (which runs authorized).  In Liberty we chose not to make this an Angel service but instead used an existing unauthorized API that does a SAF permission check each time a record is written.  You’ll need to grant access to get the record written.

WAS traditional also had a Modify/Display command to show information about SMF records written (successfully or not) and error information if there had been problems.  As I’m writing this we don’t have such a command for Liberty, but it is on our list. 

0 comments
4 views

Permalink