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.
---------------
Alright, so you’ve decided to start your Liberty servers as started tasks launched using JCL at least modeled on the sample PROC we discussed last time. Now the question is, how many PROCs do you need?
Well, let’s consider the extremes before we realize we need an answer in the middle somewhere. You could define one PROC for every individual server you have. If you plan to only ever have five, that’s probably fine. But if you’re likely going to have a bunch, that’s going to make for a lot of PROCs that are all very similar and it will be a huge pain if you ever have to make an update to them all.
So that’s out. Now we’re thinking about having one PROC that we can use to start a lot of different servers. Could you, at the other extreme, have one PROC that you can use for all of your Liberty servers? Maybe. Maybe not.
Why is that? Well, let’s consider what things are in the PROC that are tied to a server. You’ve got the INSTDIR and the USERDIR variables. Those control where the runtime is and where the configuration is located. Will INSTDIR be the same for all the servers? Or will you have multiple versions used by different servers? In a later post we’ll look at how you might want to set up symbolic links to make it easier to manage updating servers to use a newer level of the Liberty runtime, but even if you do that there’s a decent chance you won’t want all the servers going through the same exact path. You’re probably going to have some sort of grouping of servers that you want to use some copy of the runtime and some other group that uses something else.
This is also true of USERDIR. While you could put all your server configuration stuff in the same directory structure, odds are you’ve got some internal organizational silos that are going to need these servers and those servers to be separated somehow.
But wait, you’re saying (hopefully in your head and not out loud), couldn’t I stick a symbolic value into the paths and specify it as part of the start command? You sure could. You’re certainly going to have to do at least that with the server name itself if you’re going to share the PROC across multiple servers.
Of course, you don’t want your start command to have great big long paths specified as parameter values (and mixed case console commands, while possible, can get entered in all upper case accidentally pretty easily). Which means you might want to organize your copies of the runtime (or symlinks to them) and your server configuration directories (USERDIR paths) in some way that allows you to distinguish whatever groupings you have to have with a small part of that path being different while most of it is the same. That different part might be early or late in the path, of course. It doesn’t have to be in upper case, but you might save yourself some trouble if it is.
Then you could use a single PROC for at least most of your servers, specifying the ‘grouping’ part of the INSTDIR/USERDIR path and the server name as parameters. That same ‘grouping’ might come in handy for other things too.