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 #79- Messages.log Memory Messages

By David Follis posted Thu May 22, 2025 08:07 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.

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

Finally some z/OS specific stuff!  This week we’re going to look at two messages that come out as part of server startup that tell you about how much memory is available for the server to use.  z/OS has several controls that manage how much memory something running in an address space is allowed to use.  Just because you’re running in 64 bit doesn’t mean you are necessarily allowed to allocate all the possible 64-bit storage.  Doing so could cause all kinds of stress on the system and so there are controls to keep you from doing that.

Originally, of course, z/OS (ok, MVS) only had 24 bit storage, which moved up to 31 bit in the late 1980s.  To control how much of that storage you were allowed to use, the operating system had a limit called REGION size.  There are a bunch of ways that can be set, from JCL to some exits.  It was always a bit tricky to figure out what value you wound up with.  And on occasion having a lower REGION value than you expected can cause problems.  The actual value for an address space is tucked away in a control block and Liberty grabs that value, along with the above/below the line limits, at startup and provides them in message CWWKB0125I. 

Perhaps I should explain about lines and bars.  No, not a line at the bar to get a drink.  The ‘line’ is the limit of 24 bit storage.  So 31 bit storage is either above or below the 16MB line (24 bits gets you 16MB).  And some of the available storage, both above and below the line, is consumed by common storage.  Common storage is the same across all the address spaces as compared to private storage which is, ah ha, private to each address space.  Common storage cuts into the amount of available above/below the line storage, all of which is restricted by the REGION size for the address space

Then we get into 64 bit addressing.  The break between what is addressable with 31 bits and what is addressable with 64 is referred to as the ‘bar’ (to distinguish it from the ‘line’).  How much of that storage you’re allowed to use is controlled by setting the MEMLIMIT for your address space.  That can come from several places.

At startup Liberty will issue message CWWKB0126I which tells you the value of MEMLIMIT and where it came from (since z/OS nicely puts that information in a handy control block).  You’ll get a fill-in in the message like “JCL” if it comes from the JCL MEMLIMIT keyword or “USI” if it comes from the IEFUSI exit.  “OMVS” will indicate the USS OMVS security segment.  And there are some others.  The documentation for the message kindly explains them all. 

Of course both of these messages are just informational.  They are just there to help provide clues if you’re having some sort of native memory usage problem.  Although remember that to z/OS the whole of the JVM heap is just one big memory allocation within these limits.  Out of memory to Java is out of memory within that heap. 

0 comments
5 views

Permalink