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.
---------------
On all platforms Liberty writes any messages that are logged into a file in the file system called messages.log. It will be written in ASCII (as opposed to console.log which will (probably) be in EBCDIC). You can use file tagging to make it easier to look at. But for z/OS shops that are used to seeing this sort of thing as part of the JOBLOG or other DD that you can look at from SDSF (or equivalent), this is kind of weird.
For that reason we introduced the ability to ‘echo’ anything written to message.log into a DD in the server JCL PROC, normally called MSGLOG. That will make it easier and maybe more intuitive for users/operators/etc. to find and look at.
If the DD isn’t present, of course, then we don’t write to it. What else would we do?
But then things got tricky. The good folks in CICS can run multiple JVMSERVERs inside a single CICS region. That allows them to run multiple Liberty servers inside a single address space. Well, they are all going to go looking for a MSGLOG DD in the JCL for CICS and, if they find it, they’ll all write to it. That will be just lovely.
To fix that, we added a new attribute to the Liberty zosLogging configuration element called messageLogDD. It defaults to ‘MSGLOG’, but you can change it. So, if you run multiple servers in one address space, you can configure each one to look for a different DD to write messages.log content into. That will make it much easier to read.
Typically in CICS it ends up as MSGLOG1, MSGLOG2, MSGLOG3, etc. Not very clever, but you’ve only got 8 characters to play with.
Of course you could set the messageLogDD in the server configuration for any server, in or out of CICS, if you’d prefer a different DD name for your messages.