Configuration
To run TJES, the environments of Tmax and TJES must be pre-configured. This chapter describes Tmax configuration required by TJES.
For more information about TJES configuration, refer to the tjes, tjesmgr, print, tjclrun and rc subjects in OpenFrame Configuration Guide. |
1. Tmax Configuration
Tmax must be installed and configured before TJES can be run in OpenFrame. During the initial installation of OpenFrame, the Tmax environment is automatically configured with default values. To modify these initial configuration values, perform the following steps.
-
Shut down the Tmax server.
$ tmdown
-
Reconfigure the environment variables in the "$TMAXDIR/config/XXX.m" file.
-
Apply the changes.
$ cfl -i $TMAXDIR/config/XXX.m
-
Restart the Tmax server.
$ tmboot
For more information about how to modify the XXX.m configuration file as previously mentioned, refer to Tmax Installation Guide. |
1.1. Tmax Server
The following servers must be active to operate TJES:
-
TJES Server
Server Name Role obmjschd
JOB scheduler
obmjinit
JOB initiator
obmjmsvr
JOB manager
obmjhist
JOB history
obmjspbk
JOB SPOOL backup
ofrpmsvr
Printer manager
obmtsmgr
TSO job processing
obmtscmd (optional)
TSO command processing (obmtscmd is a server provided only in an environment using the ISPF service.)
-
TJES-related Servers
Server Name Role ofrsasvr
Security management
ofrlhsvr
Lock handle allocation
ofruisvr
User interface control server
ofrcmsvr
Console management
The TJES server and related servers are automatically configured when OpenFrame is installed.
The Tmax environment variables are described as follows:
obmjschd SVGNAME = svg_domain,MIN = 1, MAX = 1, SVRTYPE=UCS, CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err" obmjinit SVGNAME = svg_node1,MIN = 1, MAX = 1, SVRTYPE=UCS, CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err" obmjmsvr SVGNAME = svg_node1, CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err" obmjhist SVGNAME = svg_domain, MIN = 1, MAX = 1, CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err" obmjspbk SVGNAME = svg_domain, MIN = 1, MAX = 1, CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err" ofrpmsvr SVGNAME = svg_domain, MIN = 1, MAX = 1, SVRTYPE=UCS, CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err" obmtsmgr SVGNAME = svg_domain, MIN = 1, MAX = 1, SVRTYPE=UCS, CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err" obmtscmd SVGNAME = svg_node1, CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"
In the previous example, SVGNAME=svg_domain defines that the server runs on only one node. MIN=1 , MAX=1 means that only a single server must run. Therefore, one node and one server run obmjschd for all nodes, and each node and one server run obmjinit. Also, all nodes and several servers run obmjmsvr. You can configure MIN according to the site’s load condition. If not specified, the default is MIN= 1.
For more information about TJES-related servers, refer to OpenFrame Base Guide. |
To ensure that the servers operate properly, perform the following steps.
-
Start the Tmax server
$ tmboot
-
Check the servers status
$ tmadmin $$1 node (tmadm): si
The following screen shows whether the Tmax servers are operating properly. The server is operative if the status is RDY, or down if the status is NRDY.
------------------------------------------------------------------------ clh svrname (svri) status count qcount qpcount emcount ------------------------------------------------------------------------ 0 obmjmsvr ( 11) RDY 0 0 0 0 0 obmjschd ( 12) RDY 0 0 0 0 0 obmjinit ( 13) RDY 1 0 0 0 0 obmjhist ( 14) RDY 0 0 0 0 0 obmjspbk ( 15) RDY 0 0 0 0 0 ofrpmsvr ( 16) RDY 0 0 0 0 0 obmtsmgr ( 17) RDY 0 0 0 0 0 obmtscmd ( 18) RDY 0 0 0 0
-
Shut down the Tmax server
$ tmdown
If the server is shown as NRDY with the tmadmin command, check the server log to determine why the server is in NRDY status. The server log is found in the $TMAXDIR/log/ulog directory of the Tmax server.
For more information about Tmax, refer to Tmax Administration Guide. |
1.2. Multi Node Configuration
Operating TJES on a multi-node system requires some additional configuration settings as in the following. For reference, the Tmax configuration files for all nodes, within the same domain, must be identical.
The following example demonstrates how to implement TJES with multiple nodes, NODE1 and NODE2.
-
Add nodes
All nodes you want to configure as multi-nodes must be added as follows:
*NODE DEFAULT: DOMAINNAME = "domofb" NODE1 HOSTNAME = "tmaxof1", IP = "192.168.1.1", TMAXHOME = "$OPENFRAME_HOME/tmax", TMAXDIR = "$OPENFRAME_HOME/tmax", APPDIR = "$OPENFRAME_HOME/server", TLOGDIR = "$OPENFRAME_HOME/tmax/log/tlog", ULOGDIR = "$OPENFRAME_HOME/tmax/log/ulog", SLOGDIR = "$OPENFRAME_HOME/tmax/log/slog", CLHOPT = " -o $OPENFRAME_HOME/tmax/log/clh.log -e /$OPENFRAME_HOME/tmax/log/clh.err", TPORTNO = 9400, SHMKEY = 94000, RACPORT = 9450 NODE2 HOSTNAME = "tmaxof2", IP = "192.168.1.2", TMAXHOME = "$OPENFRAME_HOME/tmax", TMAXDIR = "$OPENFRAME_HOME/tmax", APPDIR = "$OPENFRAME_HOME/server", TLOGDIR = "$OPENFRAME_HOME/tmax/log/tlog", ULOGDIR = "$OPENFRAME_HOME/tmax/log/ulog", SLOGDIR = "$OPENFRAME_HOME/tmax/log/slog", CLHOPT = " -o $OPENFRAME_HOME/tmax/log/clh.log -e /$OPENFRAME_HOME/tmax/log/clh.err", TPORTNO = 9400, SHMKEY = 94000, RACPORT = 9450
-
Modify [SVRGROUP] section
The following modifications are needed for the [SVRGROUP] section: adding a server group for the new node, adding the COUSIN setting to operate the same server, and adding the BACKUP setting to svg_domain for fail-over.
svg_domain NODENAME = "NODE1",BACKUP="svg_domain2" svg_domain2 NODENAME = "NODE2" svg_node1 NODENAME = "NODE1",COUSIN="svg_node2" svg_node2 NODENAME = "NODE2"
-
Add [ROUTING] section and state the ROUTING to service
To configure a multi-node setup, several services use the data-driven routing function of Tmax. The data used in routing is the node name. The [SERVICE] section lists only the services to be modified.
*ROUTING rt_nodename FIELD = "FIELD/FB_NODENAME", RANGES = "'NODE1':svg_node1,'NODE2':svg_node2,*:svg_node1" *SERVICE OBMJMSVRJDETAIL SVRNAME = obmjmsvr, ROUTING = rt_nodename OBMJINITCTLNODE SVRNAME = obmjinit, ROUTING = rt_nodename OBMJINITCTLJOB SVRNAME = obmjinit, ROUTING = rt_nodename OBMJINITCTLINIT SVRNAME = obmjinit, ROUTING = rt_nodename OBMJINITRUN SVRNAME = obmjinit, ROUTING = rt_nodename OBMJINITSTATUS SVRNAME = obmjinit, ROUTING = rt_nodename OBMJINITCHECK SVRNAME = obmjinit, ROUTING = rt_nodename