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.
---------------
We’ve seen in previous posts that a Liberty server on z/OS will respond to an assortment of Modify commands from the z/OS console. It turns out the Angel has a few commands of its own. The most useful is probably the “display,servers” command. This causes the Angel to list the servers which have registered with it. This can be very handy if you’re trying to shut down the Angel (next week’s topic) and want to make sure all the servers that use it are gone. Or if you just want to make sure you know what servers are using a particular Angel.
A rather surprising command is the “display,angels” command. Directed against any Angel, it allows you to find any other Angels running on the same z/OS image. Probably in your head (certainly in mine) the Angels are isolated from one another, so how could you have a command issued against one Angel that could list the others?
Well, when a server starts it has to have a way to ‘find’ its own Angel. That same mechanism allows any Angel to ‘find’ any other Angels on the system (it is done with ENQs, in case you’re wondering). This command will provide you with the ASID, jobname, and USS PID for all the Angels.
This is almost a way to find all the Liberty servers on your system. If you can find one Angel (probably the z/OSMF Angel is easiest) and issue the display-angels command you can find all the other Angels. Then you can issue the display-servers command against every Angel and you’ve got all the servers that are using an Angel. Which, of course, is the catch. It is entirely possible to have servers that just don’t use an Angel. And those are just Java programs which might not be running as a started task even. Still, I think Omegamon for JVM can find them all somehow. But anyway, this trick is a way to find all the servers using Angels which are probably the more interesting ones.
The final Angel modify command we’ll talk about is the “display,version” command. While each level of Liberty code has a level name (22.0.0.9, etc) we tried to keep track of when we made changes to the Angel code that might require a matching change in the server code. Remember that originally we’d hoped that any level of the server could work with any level of the Angel. But in practice that wasn’t possible.
It turned out that at certain points we introduced changes into the Angel that were required for certain levels of the server to work properly with it. So if you wanted to move your servers up to some level, you had to have an Angel of at least that level too. This didn’t happen very often and so we introduced the idea of an Angel ‘version’. The plan was that we’d bump that number whenever one of these changes happened and we could say that a server at level YY.0.0.NN required an Angel of version X. And thus this display command would tell you the Angel version you were running.
I’d suggest ignoring this and just keep the Angel at-or-above the level of any servers using it (as discussed last time).