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.
---------------
Let’s begin our stroll through messages.log with the header. Unlike everything else in here, the header doesn’t actually have any message IDs. It is just a block of text with a row of asterisks above and below. Each line is a name/value pair providing some environmental information about the server that is writing the log. I think that information can be broken down into three parts, which we’ll talk about separately.
But before we get into the first part, I’d like to pause a moment on those two rows of asterisks. Looking closer it turns out there are 80 asterisks in the rows above and below the block. Why 80? Well, I don’t know for sure, but I suspect it is Clair D. Lake’s fault. Who? A bit of crawling around online will reveal that he’s the one responsible for figuring out how to get 80 rectangular holes into what was the standard size punch card. I think anything in computer technology that is 80 wide (characters or whatever) is probably ultimately his fault.
Of course, going further back, the standard size card that constrained his design (3 1/4” by 7 3/8”) happened because that was how big the currency was in the late 1800s and they wanted to store the punch cards in the same stuff the banks kept money in. So perhaps the blame lies with the National Bank Act of 1863 which tried to standardize US currency.
At least that’s what the Internet tells me, and the Internet wouldn’t lie to me, would it?
Anyway, back to messages.log. The first line provides a value for ‘product’. This is the name and level of Liberty. For us this will be “WAS FOR Z/OS” (pardon the upper case ‘Z’..I don’t know why this bit of the string is all upper case) followed by the Liberty level. The level will be something like 24.0.0.9. After that is a string in parenthesis that is an internal build level which you can safely ignore.
Next is the wlp.install.dir which tells you where the server is getting its runtime from. After that might be the server.config.dir which tells you where the server is finding the root (i.e. server.xml) of its configuration. If you’ve got your config in with the runtime (as happens sometimes in containerized environments) then this line won’t show up.
You might also see a line telling you what the server.output.dir is set to. That’s where stuff the server writes (likes logs and traces) will go. This only shows up if it is different than the config dir (which it probably should be…servers generally shouldn’t be able to write into their own config).
All this information is pretty interesting if you’re trying to gather information about the server that wrote this log. What level of Liberty is it running, where did it get the runtime code from, and where to start looking at the configuration and output. Nice stuff to have handy, especially if, for some reason, it isn’t what you expected.