Table of Contents
This chapter introduces Tmax management tools provided for efficient management of Tmax.
After the Tmax system has been fully configured and is running, the administrator will need access to the management functions to dynamically modify the configuration of the system or add servers/services. The Tmax management application also enables the administrator to monitor services, including their processing state, processing count, average processing time, queuing count, and expected waiting time. Using this information, the administrator will be able to decide when to load additional server processes or terminate excess processes.
The Tmax management program, tmadmin, is used to dynamically manage the Tmax system while it is running. Administrators can dynamically manage the system by using tmadmin and command interpreter.
The Tmax management program, tmadmin, is a command interpreter similar to the UNIX command line. The program waits for an input command and interprets and executes the command. In a system comprised of multiple nodes in a domain, tmadmin enables centralized management of the entire domain from a single node, or localized management from each node.
Usage
$ tmadmin [-ㅣ] [-s|m] [-h] [-f [config_file]] [-n [node_name]] [-v] [-V] [-p] [-t]
Option | Description |
---|---|
[-l] | Option to allow each node to manage its own system in a multi-node system that is managed centrally through racd. |
[-s] | Option to use read only mode. This option enables users to load up to 10 tmadmin tools, but users will not be able to dynamically modify the system. (Default mode) |
[-m] | Option to use the master mode. Users will be able to dynamically modify the system. It is recommended that only one administrator use the master mode. If more than one user modifies the system configuration, fatal system errors can occur. Do not modify the configuration file, instead follow the preset manual. |
[-h] | Online Help |
[-f [config_file]] | Option to specify the name of the configuration binary file. Only needs to be used when the configuration binary does not use the default name (tmconfg). |
[-n [node_name]] | Option to monitor the specified node. When used in a multi-node environment, tmadmin only monitors the information on the specified node for convenient system management. |
[-v] | Option to check the Tmax version number. This option can be used to check the version from any location within the system. |
[ -V ] | Option to check the version of the execution file. |
[-p] | Option to print out the result screen when performing st –p, st –s, si, ci, or cfg command. (more function). |
[ -t ] | Option to output the start and end times to execute the command. Refer to the following descriptions for detailed information about the option. |
Execute tmadmin with the -t option to output the time in the following format.
[TIME][Type ] : hh:MM:ss:millisec
Type | Description |
---|---|
START | Output the start time when a command is executed on the console. |
END | Output the end time when command execution is complete (after executing commands on the remote node). |
R_END | When a command is executed on the console and the execution on the remote node ends, the end time (not the time on the remote node but the local time where tmadmin was executed) is output. |
RP_START | If the repeat command of tmadmin is executed, time before starting each execution is output. |
RP_END | If the repeat command of tmadmin is executed, the end time of each execution is output (after executing commands on the remote node). |
In tmadmin, the Tmax system can be started up or shut down through a command, and the administrator can search and modify the configuration of the running system. It can also be used to check the server process state and service processing state.
The tmadmin program is executed with the following command.
$tmadmin
Once executed, a prompt will appear to indicate that tmadmin has been properly started.
--- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmax1 (tmadm):
To terminate tmadmin, use the 'quit' or 'q' command.
$$1 tmax1 (tmadm):quit
The following commands can be used in tmadmin.
Configuration information commands
Command | Description |
---|---|
tmaxinfo(ti) | Displays Tmax system information. |
history(hist) | Displays command history (commands used previously). |
config(cfg) | Displays environment configuration information. |
configopt(cfgopt) | Displays current settings that can be modified dynamically among the configured options such as TMMOPT. |
Status information commands
Command | Description |
---|---|
stat(st) | Provides statistics on process and service states. |
gwinfo | Checks the channel states of the gateways defined in the GATEWAY section. |
txgwinfo(txgwi) | Displays Tmax gateway information. |
nontxgwinfo | Displays Tmax non-transaction gateway information. |
jgwinfo | Displays JEUS gateway information. |
ajgwinfo | Displays JEUS async gateway information. |
wsgwinfo | Displays Web service gateway information. |
smtrc | Checks the service status using GID. |
clhsinfo | Checks the connection status between CLHs in a multi node environment. |
tmmsinfo | Checks the connection status between TMMs in a multi node environment. |
repeat(r) | Repeats the command. |
clientinfo(ci) | Displays information about clients connected to the system. |
svrinfo(si) | Displays server information. |
txquery(txq) | Displays information about transaction processing. |
rqstat(rqs) | Displays RQ status, or processes services accumulated in the disk queue. |
Administrative commands
Command | Description |
---|---|
suspend(sp) | Suspends a running server process. |
resume(rs) | Resumes a suspended server process. |
advertise/unadvertise | Advertises/unadvertises a name of a particular service. |
restat | Resets the statistics on a specific server process or all processes. |
rebootsvr(rbs) | Restarts a server process. |
cfgadd(ca) | Dynamically adds a service. |
set | Modifies configuration options dynamically. |
setopt | Dynamically modifies settings among options defined in the configuration, such as TMMOPT. |
qpurge(qp) | Deletes tasks that are waiting in the queue. |
discon(ds) | All clients currently connected are forcibly disconnected from the system. |
logstart / logend | Starts/ends logging. |
chtrc | Manages trace activity. |
chlog | Dynamically changes the log level of TMM, CLH, or a specific server at runtime. |
txcommit / txrollback | Reissues Commit or Rollback to terminate the transaction, if a fault occurs during transaction processing. |
wsgwreload | Applies or modifies service information of the web service gateway. |
restart | Restarts the server process. |
notify_reconnect_clh(nrc) | Notifies the server process to reconnect to a specific CLH process. |
Other
Command | Description |
---|---|
! | Repeats the previous command. |
quit(q) | Terminates tmadmin. |
help(h) | Displays a list of available options. |
nodeset(ns) | Limits tmadmin to only monitor information from the specified node. |
nodeunset(nus) | Releases restriction of monitoring information only from a specific node. |
tmd | Starts a virtual client emulator, which can be used to check services without creating an actual client. |
This command displays Tmax system information.
Usage
$$1 tmax1 (tmadm): ti
Example
Displays information about the Tmax system, including the system version and the maximum allowed number of concurrent users (maxuser).
$$11 tmaxi7 (tmadm): ti Tmax System Info: REAL version 5.0 SP #2: maxuser = UNLIMITED, Supported maximum user per node = 1380 Supported maximum user per handler = 691 domaincount = 1, nodecount = 1, svgrpcount = 4, svrcount = 6, svccount = 11 rout_groupcount = 0, rout_elemcount = 0 cousin_groupcount = 0, cousin_elemcount = 0 backup_groupcount = 0, backup_elemcount = 0 Tmax All Node Info: nodecount = 1: ------------------------------------------------------------------ no name portno racport shmkey shmsize minclh maxclh ------------------------------------------------------------------ 0 tmaxi7 7733 3333 79120 552652 1 3
This command displays a list of the previously executed commands.
Usage
$$1 tmax1 (tmadm): history
Example
The following is an example of using the command.
$$15 tmax1 (tmadm): history 5 : si 4 : txq 3 : ci 2 : st -p 1 : st -s 0 : ci
Enter "!" at the command line to repeat the previous command. Any of the previously entered commands can also be repeated by entering “!” and the number of the command in the history list.
$$1 tmax1 (tmadm): !5 si ---------------------------------------------------------------- clh svri status count qcount qpcount emcount ---------------------------------------------------------------- 0 0 RDY 2 0 0 0 0 1 RDY 0 0 0 0 0 2 RDY 0 0 0 0 0 3 RDY 45 0 0 0
This command displays system configuration information. It enables users to check the configuration information, including the default value, of the domain, node, server group, server, and service. For details about the information accessed through this command, refer to "Chapter 3. Environment Configuration".
Usage
$$1 tmax1 (tmadm): config (cfg) [-d] [-n] [-g[server_group_name]] [-v[service_name]][-s [service_name]] [-w [gateway_name]] [-r] [-b] [-f] [-pr]
Option | Description |
---|---|
[-d] | Option to display information about domain configuration. Displays all items in the DOMAIN section and all information on the domain. |
[-n] | Option to display node settings. Displays all items in the NODE section and node settings defined on the system. |
[-g [server_group_name]] | Option to display server group settings. If the server group name is specified, only information about the server group is displayed, otherwise information about all server groups is displayed. All items related to the SVRGROUP section can be displayed for each server group. |
[-v [service_name]] | Option to display server settings. If a server name is specified, only information about the server is displayed, otherwise information about all servers is displayed. For each server, all items related to the SERVER section, server numbers(svr_no), and data dependent routing information (DDRI) are displayed. |
[-s [service_name]] | Option to display service settings. If a service name is specified, only information about the service is displayed, otherwise information about all services is displayed. For each service, all items related to the SERVICE section is displayed. |
[-w [gateway_name]] | Option to display gateway settings. If a gateway name is specified, only information about the gateway is displayed, otherwise information about all gateways is displayed. |
[-r] | Option to display routing settings. |
[-b] | Option to display backup settings. |
[-f] | Option to display Topend function information. |
[-pr] | Option to display Topend product information. |
Example
The following is an example of checking the domain settings.
$$1 tmaxi7 (tmadm): cfg -d domain_name = tmax1, shmkey = 77733, minclh = 1, maxclh = 3, maxuser = UNLIMITED, portno = 7733, racport = 3377, cmtret = YES, blocktime(bt) = 30, txtime(tt) = 0, nliveinq(ni) = 30, security = NONE, cpc = 1, maxfunc = 0, clichkint = 0, idletime = 0, node_count = 2, svg_count = 2, svr_count = 4, cousin_count = 1, cousin_gcount = 3, backup_count = 0, backup_gcount = 0, rout_count = 0, rout_gcount = 0, maxsacall = 8, maxcacall = 16, nclhchkint = -1, maxconv_node = 16, maxconv_server = 8, maxnode = 32, maxsvg = 32, maxspr = 64, maxsvr = 64, maxsvc = 512, maxcpc = 32, maxtms = 32, maxrout = 16, maxroutsvg = 32, maxrq = 2, maxgw = 10, maxcousin = 16, maxcousinsvg = 32, maxbackup = 16, maxbackupsvg = 32, maxtotalsvg = 64, maxprod = 0, tipsvc = , crypt = NO maxthread = 128, tmmloglvl = DETAIL, clhloglvl = DETAIL, tmsloglvl = DETAIL, loglvl = DETAIL cllblock = NO tdl = NO
After the command, cfg -d, is executed, the following items are displayed.
Item | Description |
---|---|
nodecount | Number of nodes in the domain |
svgcount | Number of server groups |
cousin_gcount | Number of groups with COUSIN defined (number of replicated server groups for load balancing) |
cousin_count | Number of all replicated server groups |
rout_count | Number of routing objects defined in the ROUTING section |
relem_count | Number of routing units for each range, which is defined in the range item of each routing object |
The following is an example of checking all node settings.
$$2 tmaxi7 (tmadm): cfg -n node_name = tmaxi7, hostname = tmaxi7, node_no = 1, load = 0, shmkey = 77733, minclh = 1, maxclh = 3, maxuser = UNLIMITED, Supported maximum user per node = 1380, Supported maximum user per handler = 691, clhqtimeout(cqt) = 0, portno = 7733, racport = 3377, tmaxhome = /data2/tmaxha/tmax/, tmaxdir = /data2/tmaxha/tmax/, appdir = /data2/tmaxha/tmax/appbin/, pathdir = /data2/tmaxha/tmax/path/, tlogdir = /data2/tmaxha/tmax/log/tlog/, slogdir = /data2/tmaxha/tmax/log/slog/, ulogdir = /data2/tmaxha/tmax/log/ulog/, envfile = , svgcount = 2, svrcount = 4, svccount = 4, curclh = 1, ipcperm = 1c0, clichkint = 0, idletime = 0, tmmopt = , clhopt = , tlmopt = , realsvr = , rscpc = 4, maxsvg = 32, maxsprs = 64, maxsvr = 64, maxtmss = 32, maxcpc = 32, maxgwsvr = 2, maxrqsvr = 2, maxgwcpc = 8, restart = YES, maxrstart = -1, gperiod = 86400, autobackup = YES, logoutsvc = , extport = 0, maxthread = 128, cllblock(cb) = NO, cllconnlb = RR, tdl = NO, smsupport = NO,
After the command, cfg -n, is executed, the following items are displayed.
Item | Description |
---|---|
node_no | Node number defined in the system |
svgcount | Number of server groups on the node |
svrcount | Number of servers |
svccount | Number of services |
curclh | Number of CLH processes active on the node |
maxsprs | Maximum allowed number of server processes |
maxtms | Maximum allowed number of TMS processes |
The following is an example of checking the server group settings.
$$2 tmaxi7 (tmadm): cfg -g svg2 svg_name = svg2, svg_no = 3 , xaoption = , openinfo = Oracle_XA+Acc=P/scott/tiger+SesTm=60, closeinfo = , appdir = , ulogdir = , svgtype = TMAX, envfile = , tmsname = tms_ora, mintms = 2, maxtms = 3, tmstype = STD, tmsthreads = 0, tmsopt = , tmsrecovery = YES, tmsrange = DOMAIN, tmsxatime = 0, load(ld) = -9, tms starti = 0, tms endi = 2, restart = YES, maxrstart = -1, gperiod = 86400, autobackup = YES, dummy = NO, dbname = ORACLE , rmid = 0
The following is an example of checking the server settings.
$$4 tmaxi7 (tmadm): cfg -v svr2 svr_name = svr2, svr_no = 4 , svgno = 2, cursvr = 1, clopt = , seq = -1, minsvr = 1, maxsvr = 1, ulogdir = , maxqcount(mq) = -1, asqcount(aq) = -1, conv = NO, ddri = DDR_NO_ROUT, lifespan(ls) = -1, restart(rs) = YES, maxrstart(mr) = 5, gperiod(gp) = 86400, svrtype = TMAX_STD, schedule = FA, cpc = 1, dummy = NO, aus = NO, mac = NO, roc = NO, multiclh = YES
The following is an example of checking the service settings.
$$5 tmaxi7 (tmadm): cfg -s --------------------------------------------------------------------------------- svc_name funcname prio(pr) autotran svctime(st) routno svrname svgno --------------------------------------------------------------------------------- _hms01 50 NO 0 -1 _hms01 4 TOLOWER 50 NO 0 -1 svr2 2 TOUPPER 50 NO 0 -1 svr2 2 HMS 50 NO 0 -1 svr_hms 2 FDLTOLOWER 50 NO 0 -1 svr3 2 FDLTOUPPER 50 NO 0 -1 svr3 2 FDLDEL 50 NO 0 -1 fdltest 3 FDLSEL 50 NO 0 -1 fdltest 3 FDLINS 50 NO 0 -1 fdltest 3 FDLUPT 50 NO 0 -1 fdltest 3 gw2301X 50 NO 0 -1 gw2301X 0
Gateway configuration information (-w)
The following is an example of checking the gateway settings.
$$7 tmaxi7 (tmadm): cfg -w gw_name = gw2301X, node_no = 0, gw_no = 0, gw_type = TMAX, portno = 4020, rgwaddr = 192.168.1.89, rgwportno = 4010, backup_rgwaddr = , backup_rgwportno = -1, backup_rgwaddr2 = , backup_rgwportno2 = 0, backup_rgwaddr3 = , backup_rgwportno3 = 0, cpc = 2, timeout = 30, direction = BIDIR, maxinrgw = 32, clopt = , ptimeout = -1, ptimeint = -1, gwchkint = -1, gwconnect_timeout = -1, nliveinq = -1
This command displays current settings that can be modified dynamically among the defined options such as TMMOPT.
Usage
$$1 tmax1 (tmadm): configopt (cfgopt) [-tmm]
Option | Description |
---|---|
[-tmm] | Option to check the current settings that are dynamically configurable among options defined in the TMMOT element. |
Example
The following is an example of checking the TMMOPT setting.
$$1 tmax1 (tmadm): cfgopt -tmm ------------------------------------------------------------------------ -tmm configurable value ------------------------------------------------------------------------ accept retry count(-A) = 100 max forked threshold(-F) = 765 booting timeout(-t) = 10 ------------------------------------------------------------------------
The following describes items that are displayed when the command is executed.
Item | Description |
---|---|
accept retry count(-A) | Number of server process access requests that can be accepted immediately. Refer to the -A option of TMMOPT. |
max forked threshold(-F) | The maximum number of concurrent requests that can be processed when creating a new process due to TMM starting an additional server process or restarting a process. Refer to the -F option of TMMOPT. |
booting timeout(-t) | Access timeout for a server process that was started via ASQCOUNT. Refer to the -t option of TMMOPT. |
This command displays the status of various elements in the system, including server processes. Information that can be displayed through this command includes the current state of server processes, the names of services being processed, the number of processed services, the state of services, and the number of service requests in the service queue. The stat command is abbreviated as st.
Usage
$$1 tmax1 (tmadm): stat (st) [-p [server_process_name]] [-s [service_name]] [-t [TMS_name]] [-v [server_process_name] [-pod]] [-o [sort condition]] [-n [output message line]] [-x] [-X] [-q [destination_name [-c]]]
Option | Description |
---|---|
[-p [server_process_name]] | Option to display information about server processes. Servers registered in the Tmax configuration file can use MIN and MAX to start multiple processes, and this option is used to check the status of each server. If a server process name is specified, only information about the server process is displayed, otherwise information about all server processes is displayed. The overall system processing state is displayed on the last line of the 'st –p' command execution result. Statistical information including total processing count, average processing time, and the total number of active services are displayed. |
[-s [service_name]] | Option to display information about services. If a service name is specified, only information about the service is displayed, otherwise information about all services is displayed. |
[-t [TMS_name]] | Option to display dynamic information about TMS provided by the system. If a TMS name is specified, only information about the TMS is displayed, otherwise information about all TMSs is displayed. |
[-v [server_process_name] [-pod]] | Option to display information about server processes. (same as si) If the [-pod] option is used, "(POD)" is always displayed with the POD server status. If this option is not used, RDY or NRDY is displayed when a POD server is running or not running respectively. POD server's status is not important because it automatically starts when there is a service request even when the status is NRDY. Use this option to avoid mistaken a POD server in the NRDY status as a server error. |
[-o [sort condition]] | Option to sort output results by the specified condition. Dynamic information about server processes and services provided by the Tmax system can be sorted by the specified condition. This option must be used with the [–p] or [–s] options. Use one of the following options to sort either in descending or ascending order.
|
[-n [output message line]] | Option to set the number of lines of sorted messages to display (number of server processes or services). This option must be used with the [–o] option. |
[-x] | Option to display the following details when using 'st –p' or 'st –s' command to search for the state of server processes or services. Must be used with either [–s] or [–p] option. For more details, refer to "Detailed Info (-x)".
|
[-X] |
|
[-q [destination_name]] | Option to display information about HMS destinations. Displays a list of destinations defined in the configuration file, and the messages and clients being processed at each destination. |
[ -d ] | Option to display the elapsed time when a server process is queried (st -p) and its status is RUN. '-' is displayed for any other statuses. (Example: st -p -d ) Must be used with 'st -p', but not with 'st -p -x'. |
Example
Server process information (–p)
The following is an example of checking server process information.
$$1 tmax1 (tmadm): st –p CLH 0 : - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svr_name svgname spr_no status count avg svc - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svr1 svg1 1 RDY 1 0.001 -1 svr2 svg1 2 RDY 1 0.001 -1 svr3 svg1 3 RDY 1 0.001 -1 syncrtn svg1 4 RDY 1 0.001 -1 syncrtn svg1 5 RDY 1 0.001 -1 ucs svg1 6 RDY 1 0.001 -1 ucs svg1 7 RDY 1 0.001 -1 ucs svg1 8 RDY 1 0.001 -1 _rqsvg rqsvg1 9 RDY 1 0.001 -1 _rqsvg rqsvg1 10 RDY 1 0.001 -1 TOTAL COUNT = 1 TOTAL AVG = 0.001 TOTAL RUNNING COUNT = 0
After the command 'st -p' is executed, the following items are displayed.
Item | Description |
---|---|
svr_name | Server process name. |
svgname | Name of the server group that the server process belongs to. |
spr_no | ID of the server process. |
status | Current status of the server process. For more information, refer to [system status] that follows. |
count | Number of services processed. |
avg | Average processing time. |
svc | Name of the service being processed. If no service is currently being processed, -1 is displayed. |
The following table describes the status item from the st execution result.
Wild cards can be used. For example, the command 'st –p s*' will display information about all server processes with names that begin with 's'.
$$1 tmax1 (tmadm): st –p s* - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svr_name svgname spr_no status count avg svc - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svr1 svg1 1 RDY 0 0.000 -1 svr2 svg1 2 RDY 0 0.000 -1 svr3 svg1 3 RDY 0 0.000 -1 syncrtn svg1 4 RDY 0 0.000 -1 syncrtn svg1 5 RDY 0 0.000 -1
The following is an example of checking the service information.
$$1 tmax1 (tmadm): st –s CLH 0: - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svc_name svr_name count avg cq_count aq_count q_avg status - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - FORW svr1 0 0.000 0 0 0.000 RDY COMVER svr1 3 0.670 0 0 0.000 RDY REGIST svr1 0 0.000 0 0 0.000 RDY VIEW svr1 0 0.000 0 0 0.000 RDY SYNC svr1 10 0.000 0 0 0.000 RDY ASYNC svr1 0 0.000 0 0 0.000 RDY CONVER_R svr1 0 0.000 0 0 0.000 RDY
After the command 'st -s' is executed, the following items are displayed.
Item | Description |
---|---|
svc_name | Service name. |
svr_name | The name of the server that the service belongs to. |
count | Number of services processed. |
avg | Average processing time. |
cq_count | Number of service requests currently in the queue. |
aq_count | Number of service requests that spent time in the queue. |
q_avg | Average service waiting time. |
status | Current service status. For more information, refer to the previous description of [system status]. |
It is possible to use a wild card for the service name option. For example, the command 'st -s *W' will display information about all services ending with W.
$$1 tmax1 (tmadm): st –s *W CLH 0: - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svc_name svr_name count avg cq_count aq_count q_avg status - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - FORW svr1 0 0.000 0 0 0.000 RDY VIEW svr1 0 0.000 0 0 0.000 RDY
The following is an example of checking the TMS information.
$$1 tmax1 (tmadm): st -t CLH 0: ---------------------------------------------------------------- tms_name svgname spr_no status count avg cqcount ---------------------------------------------------------------- tms_ora svg1 0 RDY 5 0.00 2 tms_ora svg1 1 RDY 4 0.00 ( 1)
After the command, st -t, is executed, the following items are displayed.
Item | Description |
---|---|
tms_name | Name of the TMS. |
svgname | Name of the server group that the TMS belongs to. |
spr_no | Process ID of the TMS. |
status | Current status of the TMS. For more information, refer to the previous description of [system status]. |
count | Number of TMS requests processed. |
avg | Average TMS processing time. |
cqcount | Number of service requests currently in the queue. |
For a multi-threaded TMS, the status of each thread can be displayed.
$$1 tmax1 (tmadm): st -t -x CLH 0: ---------------------------------------------------------------- tms_name svgname spr_no(tid) status count avg cqcount XID xastate ---------------------------------------------------------------- tms_ora_mt svgora1 0 RUN 0 0.00 0 000:000:13505 commit tms_ora_mt svgora1 0( 1) RDY 0% 0.00 ( 0) 000:000:00000 - tms_ora_mt svgora1 0( 2) RDY 0% 0.00 ( 0) 000:000:00000 - ---------------------------------------------------------------- tms_ora_mt svgora1 1 RDY 0 0.00 ( 0) 000:000:00000 - tms_ora_mt svgora1 1( 1) RDY 0% 0.00 ( 0) 000:000:00000 - tms_ora_mt svgora1 1( 2) RDY 0% 0.00 ( 0) 000:000:00000 - ---------------------------------------------------------------- tms_ora_mt svgora2 10 RDY 0 0.00 0 000:000:00000 - tms_ora_mt svgora2 10( 1) RDY 0% 0.00 ( 0) 000:000:00000 - tms_ora_mt svgora2 10( 2) RDY 0% 0.00 ( 0) 000:000:00000 - ---------------------------------------------------------------- tms_ora svgora3 20 RDY 0 0.00 0 000:000:00000 - ---------------------------------------------------------------- tms_ora svgora3 21 RDY 0 0.00 ( 0) 000:000:00000 - ----------------------------------------------------------------
When using with the 'st –p' command:
$$20 tmaxi7 (tmadm): st -p -x CLH 0: --------------------------------------------------------------------------- svr_name svgname spr_no status count avg svc PID fail_cnt err_cnt min_time max_time utime umin_time umax_time stime smin_time smax_time --------------------------------------------------------------------------- gw2301X gw2301X 32 RDY 0 0.000 -1 60817498 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 svr2 svg1 36 RDY 3 0.006 -1 7602750 0 0 0.000 0.018 0.000 0.000 0.000 0.000 0.000 0.000 --------------------------------------------------------------------------- TOTAL COUNT = 3 TOTAL SVCFAIL COUNT = 0 TOTAL ERROR COUNT = 0 TOTAL AVG = 0.006 TOTAL RUNNING COUNT = 0
When using with the 'st –s' command:
$$1 tmax1 (tmadm): st -s -x CLH 0: ----------------------------------------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status fail_cnt err_cnt mintime maxtime utime umin_time umax_time stime smin_time smax_time ----------------------------------------------------------------------------------------------- INSERT2 xagwtest2 0 0 0 0.000 0.000 RDY 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
After the command, st -s -x, is executed, the following items are displayed.
Item | Description |
---|---|
PID | Server process PID. |
fail_cnt | Failure count of the server process/service. |
err_cnt | Error count of the server process/service. |
mintime | Minimum time used to handle a service. |
maxtime | Maximum time used to handle a service. |
utime | User time consumed whenever a server process executes a service. |
umin_time | Minimum consumed user time. |
umax_time | Maximum consumed user time. |
stime | System time consumed whenever a server process executes a service. |
smin_time | Minimum consumed system time. |
smax_time | Maximum consumed system time. |
The following is an example of using the [-o] option with the 'st –p' command.
$$1 tmax1 (tmadm): st –p –o ca CLH 0 : - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svr_name svgname spr_no status count avg svc - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svr2 svg1 37 RDY 10 0.000 -1 svr1 svg1 36 RDY 6 0.000 -1 svr3 svg1 38 RDY 2 0.000 -1 TOTAL COUNT = 18 TOTAL AVG = 0.000 TOTAL RUNNING COUNT = 0
The following is an example of using the [-o] option with the 'st –s' command.
$$1 tmax1 (tmadm): st –s –o ca CLH 0: - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svc_name svr_name count avg cq_count aq_count q_avg status - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - TOUPPER svr2 10 0.000 0 0 0.000 RDY SDLTOUPPER svr1 5 0.000 0 0 0.000 RDY FDLTOUPPER svr3 2 0.000 0 0 0.000 RDY SDLTOLOWER svr1 1 0.000 0 0 0.000 RDY FDLTOLOWER svr3 0 0.000 0 0 0.000 RDY TOLOWER svr2 0 0.000 0 0 0.000 RDY
Descending order condition
Condition | Description |
---|---|
ca | Number of processed requests (count) |
aa | Average processing time (avg) |
cq | Number of requests currently in the queue (cq_count) |
aq | Average number of requests in the queue (aq_count) |
qa | Average queuing time (q_avg) |
ce | Sorts by server based on the number of requests processed by each server. |
ae | Sorts by server based on the average processing time of each server. |
Ascending order condition
Condition | Description |
---|---|
ca- | Number of processed requests (count) |
aa- | Average processing time (avg) |
cq- | Number of requests currently in the queue (cq_count) |
aq- | Average number of requests in the queue (aq_count) |
qa- | Average queuing time (q_avg) |
ce- | Sorts by server based on the number of requests processed by each server. |
ae- | Sorts by server based on the average processing time of each server. |
Specifying the number of lines of an output message (-n)
The following is an example of specifying the number of lines of an output message to 2.
$$1 tmax1 (tmadm): st –p –o ca –n 2 CLH 0 : - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svr_name svgname spr_no status count avg svc - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svr2 svg1 37 RDY 10 0.000 -1 svr1 svg1 36 RDY 6 0.000 -1 TOTAL COUNT = 18 TOTAL AVG = 0.000 TOTAL RUNNING COUNT = 0
The following is an example of specifying the number of lines of an output message to 3.
$$1 tmax1 (tmadm): st –s –o ca –n 3 CLH 0: - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - svc_name svr_name count avg cq_count aq_count q_avg status - -- - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - TOUPPER svr2 10 0.000 0 0 0.000 RDY SDLTOUPPER svr1 5 0.000 0 0 0.000 RDY FDLTOUPPER svr3 2 0.000 0 0 0.000 RDY
HMS destination information (-q)
The following is an example of querying information about HMS Destination.
$$1 tmax1 (tmadm): st -q ---------------------------------------------------------------------------------- G dest cqcount type apqcnt acqcnt f_dscrd t_dscrd cons_cnt prod_cnt ---------------------------------------------------------------------------------- - queue01 58 QUEUE 169 111 0 0 30 5 - topic01 32 TOPIC 42 283 0 0 28 3
After the command, st -q, is executed, the following items are displayed.
Item | Description |
---|---|
G | If the destination is set to GLOBAL, this is displayed as 'O', otherwise it is displayed as a hyphen (-). |
dest | Destination name defined in the HMS section of the configuration file. |
cqcount | Number of messages that have not been processed at the destination. |
type | Destination type. Displayed as either QUEUE or TOPIC. |
apqcnt | Total number of accumulated messages up to now. |
acqcnt | The total number of messages that have been processed by a consumer. Since a Topic message is not considered to be complete until all consumers receive the message, acqcnt may become larger than apqcnt. |
f_dscrd | Number of messages that could not be processed. |
t_dscrd | Number of messages, with TTL set, that have expired. |
cons_cnt | Number of consumers connected to the destination. |
prod_cnt | Number of producers connected to the destination. |
The following shows the details about the clients of a particular destination.
$$1 tmax1 (tmadm): st -q queue01 -c ------------------------------------------------------------------------------ sesi clid cname clitype qcnt cnt f_dscrd t_dscrd listener ------------------------------------------------------------------------------ 0 0x39d prodasync ARCV 49 0 0 0 ASYNCSVC 0x1 0 prod41 SND 0 32 0 0 0x1 0 prod42 SND 0 11 0 0 0x1 0 cons51 RCV 3 0 0 0 0x1 0 cons52 RCV 9 0 0 0 $$2 tmax1 (tmadm): st -q topic01 -c ------------------------------------------------------------------------------ sesi clid cname clitype qcnt cnt f_dscrd t_dscrd listener ------------------------------------------------------------------------------ 0x1 0 prod11 PUB 0 2 0 0 0x1 0 prod12 PUB 0 1 0 0 0x1 0 cons11 SUB 30 0 0 0 0x2 0x2 prod21 PUB 0 16 0 0 0x2 0x2 prod22 PUB 0 8 0 0 0x2 0x2 cons21 SUB 23 0 0 0 0x3 0 prod31 PUB 0 3 0 0 0x4 0x4 cons41 ADSUB 32 0 0 0 ASYNCSVC2
After the previous commands are executed, the following items are displayed.
Field | Description |
---|---|
sesi | Number of the session that created the client. |
clid | Client ID. |
cname | Client name. |
clitype | Type of the client connected to the destination |
qcnt | Number of messages that each subscriber actually possesses. |
cnt | Number of messages sent or received by each client. |
f_dscrd | Number of messages that could not be processed. |
t_dscrd | Number of messages, with TTL set, that have expired. |
listener | Name of the service that will receive a message for a consumer created by an ASYNC session. |
This command displays the connection status of a remote gateway from tmadmin. It also displays detailed information such as if the gateway is currently connected to the main node or the backup node and which nodes are connected to the gateway.
It can be used to check the connection information of all gateways (except for web service gateways).
Usage
$$1 tmax1 (tmadm): gwinfo [-w gw_name] [-t gw_type]
Option | Description |
---|---|
[-w gw_name] | Option to search for a specific gateway's information. Use a gateway name defined in the GATEWAY section. |
[-t gw_type] | Option to search for a specific gateway type. Use a type defined in the GATEWAY section. (TMAX, TMAXNONTX, JEUS, JEUS_ASYNC, TUXEDO, TUXEDO_ASYNC, or XAGW) (e.g., TMAX) |
Example
The gwinfo command results vary depending on whether the connected node is the main node or the backup node.
If connected to the main node
10/user2/starbj81>tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxs1 (tmadm): gwinfo ---------------------------------------------------------------- gw_no channel type foreign_address status ---------------------------------------------------------------- 0 OUTCH PRIM tmaxc1(192.168.1.12:9400) RDY 1 OUTCH PRIM tmaxc1(192.168.1.12:9400) RDY 4 INCH - tmaxc1(192.168.1.12:1434) RDY 5 INCH - tmaxc1(192.168.1.12:1436) RDY 6 INCH - tmaxh2(192.168.1.48:58094) RDY 7 INCH - tmaxh2(192.168.1.48:58093) RDY
The following describes the command result.
Item | Description |
---|---|
gw_no | Gateway number. |
channel | Displays whether the channel is INBOUND or OUTBOUND. |
type | Displays whether the connected node is the main or the backup node. |
foreign_address | IP address of the connected remote gateway. |
status | Connection status to webt, jtmax, and webtasync. For more information about the status, refer to [system status]. |
If connected to the backup node
$$1 tmax1 (tmadm): gwinfo ---------------------------------------------------------------- gw_no channel type foreign_address status ---------------------------------------------------------------- 0 OUTCH BACK tmaxh2(192.168.1.48:9200) RDY 1 OUTCH BACK tmaxh2(192.168.1.48:9200) RDY 6 INCH - tmaxh2(192.168.1.48:58091) RDY 7 INCH - tmaxh2(192.168.1.48:58092) RDY
These commands display the connection status to a remote gateway. It can also be used to check whether the gateway is currently connected to a main or a backup node and to which specific node it is connected to.
Txgwinfo (txgwi) is used to display Tmax Gateway information, while nontxgwinfo (ntxgwi) is used to display Tmax non-transaction (TMAXNONTX) Gateway information.
Usage
txgwinfo
$$1 tmax1 (tmadm): txgwinfo
nontxgwinfo
$$1 tmax1 (tmadm): nontxgwinfo
Example
The following is an example of using each command.
txgwinfo
10/user2/starbj81>tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxs1 (tmadm): txgwinfo ---------------------------------------------------------------- gw_no channel type foreign_address status ---------------------------------------------------------------- 0 OUTCH PRIM tmaxc1(192.168.1.12:9400) RDY 1 OUTCH PRIM tmaxc1(192.168.1.12:9400) RDY 4 INCH - tmaxc1(192.168.1.12:1434) RDY 5 INCH - tmaxc1(192.168.1.12:1436) RDY 6 INCH - tmaxh2(192.168.1.48:58094) RDY 7 INCH - tmaxh2(192.168.1.48:58093) RDY
After the command, txgwinfo, is executed, the following items are displayed.
Item | Description |
---|---|
gw_no | Gateway number. |
channel | Displays whether the channel is INBOUND or OUTBOUND. |
type | Displays whether the connected node is the main or the backup node. |
foreign_address | IP address of the connected remote gateway. |
status | Connection status to webt, jtmax, and webtasync. For more information about the status, refer to [system status]. |
nontxgwinfo
When connected to a backup node
$$1 tmax1 (tmadm): nontxgwinfo ---------------------------------------------------------------- gw_no channel type foreign_address status ---------------------------------------------------------------- 0 OUTCH BACK tmaxh2(192.168.1.48:9200) RDY 1 OUTCH BACK tmaxh2(192.168.1.48:9200) RDY 6 INCH - tmaxh2(192.168.1.48:58091) RDY 7 INCH - tmaxh2(192.168.1.48:58092) RDY
These commands display the connection status to JTmax or WebtAsync. It can also be used to check whether the gateway is currently connected to a main or a backup node. Jgwinfo is used to display Java(JEUS) gateway information, and ajgwinfo is used to display Async Java(ASYNC_JEUS) gateway information.
Usage
jgwinfo
$$1 tmax1 (tmadm): jgwinfo
ajgwinfo
$$1 tmax1 (tmadm): ajgwinfo
Example
jgwinfo
The following is an example of using the command.
10/user2/starbj81>tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxs1 (tmadm): jgwinfo ------------------------------------------------------------------------------- gw_no name channel type foreign_address status ------------------------------------------------------------------------------- 0 gw1 OUTCH PRIM unknown(192.168.35.47:6555) RDY
After the command, jgwinfo, is executed, the following items are displayed.
Item | Description |
---|---|
gw_no | Gateway number. |
channel | Displays whether the channel is INBOUND or OUTBOUND. |
type | Displays whether the connected node is the main or the backup node. |
foreign_address | IP address of the connected remote gateway. |
status | Connection status to webt, jtmax, and webtasync. For more information about the status, refer to [system status]. |
ajgwinfo
When connected to a backup node
10/user2/starbj81>tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmax1 (tmadm): ajgwinfo ------------------------------------------------------------------------------- gw_no name channel type foreign_address status ------------------------------------------------------------------------------- 1 gw2 OUTCH BACK unknown(192.168.35.47:6555) RDY
This command displays web service gateway information.
Usage
$$1 tmax1 (tmadm): wsgwinfo [-i svrid[ svrid]]
Option | Description |
---|---|
[-i svrid [ svrid]] | Svrid list to check. |
Example
The following is an example of using the command.
10/user2/starbj81>tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxs1 (tmadm): wsgwinfo ------------------------------------------------------------------------ svrid load_time current_client max_attach_time ------------------------------------------------------------------------ 2 Wed Jan 13 12:43:39 2010 0 0.0sec ------------------------------------------------------------------------
After the command, wsgwinfo, is executed, the following items are displayed.
Item | Description |
---|---|
svrid | Gateway's svr index. |
load_time | Startup time of the web service gateway. |
current_client | Number of clients that are currently connected. |
max_attach_time | Maximum time spent for processing a single service. |
When the SMSUPPORT element in the NODE section of the configuration file is set to Y, executing 'st –p –x' displays GID of the running services.
Usage
$$1 tmax1 (tmadm): smtrc [-a] GID0 GID1
Item | Description |
---|---|
[-a] | Option to display additional information including server process index(spri), user CPU time, system CPU time, and return information. |
GID0 | First four bytes of SysMaster GID in hexadecimal. |
GID1 | Last four bytes of SysMaster GID in hexadecimal. |
Example
The following is an example of executing smtrc to output the GID after executing 'st –p –x'.
$$1 tmax1 (tmadm): st –p -x CLH 0: -------------------------------------------------------------- svr_name svgname spr_no status count avg svc PID fail_cnt err_cnt min_time max_time SysMaster_GID -------------------------------------------------------------- evtsvr svg1 36 RDY 0 0.000 -1 17980 0 0 0.000 0.000 00000000-00000000-00000000 svr1 svg1 37 RUN 0 0.000 SDLTOUPPER 17981 0 0 0.000 0.000 00000000-00000101-00000000 svr2 svg1 38 RUN 0 0.000 SDLTOUPPER2 17982 0 0 0.000 0.000 00000000-00080101-00000000 svr3 svg1 39 RUN 0 0.000 SDLTOUPPER3 17983 0 0 0.000 0.000 00000000-00100101-00000000 svr_sys svg1 40 RDY 3 0.000 -1 17984 0 0 0.000 0.000 00000000-00000000-00000000 ---------------------------------------------------------------- TOTAL COUNT = 3 TOTAL SVCFAIL COUNT = 0 TOTAL ERROR COUNT = 0 TOTAL AVG = 0.000 TOTAL RUNNING COUNT = 3 $$1 tmax1 (tmadm): smtrc 0 0101 CLH 0: ------------------------------------------------------------- sysmaster_global_id status svc_name ------------------------------------------------------------- 00000000:00000101:00000000 SVC_RUNNING SDLTOUPPER2 45670701 tmaxi1 (tmadm): smtrc -a 0 0101 CLH 0: ---------------------------------------------------------------- sysmaster_global_id status svc_name ctime svctime spri ucpu scpu ---------------------------------------------------------------- 00000000:00000101:00000000 SVC_RUNNING SDLTOUPPER2 14:05:32:159 0.000 38 0.000 0.000 00000000:00000101:00010000 SVC_RUNNING SMTRACE 14:05:32:159 0.000 40 0.000 0.000 00000000:00000101:00010000 SVC_DONE SMTRACE 14:05:32:159 0.000 40 0.000 0.000
After the command, smtrc, is executed, the following items are displayed.
Item | Description |
---|---|
sysmaster_global_id | SysMaster GID. |
status | Status of the service. |
svc_name | Service name. |
ctime | Log creation time. |
svctime | Log service time. |
spri | Index of the server processes that executed the service. |
ucpu | User CPU time. |
scpu | System CPU time. |
The nodes in a multi node environment must be connected each other. If node connections are unstable due to using a firewall or obsolete equipment, connections between nodes may be lost interrupting service processing. Such connection issues can be checked by using clhsinfo and tmmsinfo to check the connection status between nodes.
Usage
$$1 tmax1 (tmadm): clhsinfo
Example
The following is an example of using clhsinfo when minclh and maxclh are set to 1 and 2, respectively.
tmaxh4@starbj81:/EMC01/starbj81/tmax/config>tmadmin TMADMIN for rnode (tmaxh2): starting to connect to RAC --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxh4 (tmadm): clhsinfo CLH 0: --------------------------------------- nodename clhno cpc status --------------------------------------- tmaxh2 0 2 RDY tmaxh2 1 0 NRDY --------------------------------------- CLH 1 is not available Msg from rnode(tmaxh2): CLH 0: --------------------------------------- nodename clhno cpc status --------------------------------------- tmaxh4 0 2 RDY tmaxh4 1 0 NRDY --------------------------------------- CLH 1 is not available
After the command, clhsinfo, is executed, the following items are displayed.
Item | Description |
---|---|
nodename | Node name. |
clhno | CLH number. |
cpc | CPC number. |
status | Node status. For more information about a node status, refer to [node status] that follows. |
[Node Status]
The following describes each node status.
The tmmsinfo command displays TMM connection information in a multi node environment.
Usage
$$1 tmax1 (tmadm): tmmsinfo
Example
The following is an example of using the command.
tmaxh4@starbj81:/EMC01/starbj81/tmax/config>tmadmin TMADMIN for rnode (tmaxh2): starting to connect to RAC --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxh4 (tmadm): tmmsinfo ------------------------------------------ no nodename livectime status ------------------------------------------ 1 tmaxh2 13:53:53 RDY Msg from rnode(tmaxh2): ------------------------------------------ no nodename livectime status ------------------------------------------ 0 tmaxh4 13:53:08 RDY
After the command, tmmsinfo, is executed, the following items are displayed.
Item | Description |
---|---|
no | TMM number. |
nodename | Node name. |
livectime | Latest channel use time. |
status | Current node status. For more information, refer to [node status]. |
This command repeatedly displays status information. It can be used as in the following. Repeating a command is useful for monitoring status information and debugging task processing.
Usage
$$1 tmax1 (tmadm): r -k n -i s command to repeat
Item | Description |
---|---|
-k n | Option to repeat n times. |
-i s | Option to repeat at s-second intervals. |
Command to repeat | Target command to repeatedly execute. |
Example
In the following example, st -s is to be executed at 5-second intervals 30 times.
$$1 tmax1 (tmadm): r -k 30 -i 5 st -s
In the following example, st -p is executed at 5-second intervals for 30 seconds.
$$1 tmax1 (tmadm): r -k 30 -i 5 st -p
Displays information about the clients currently connected to the Tmax system.
Usage
$$1 tmax1 (tmadm): ci [–s]
Option | Description |
---|---|
[-s] | Total number of connected clients. |
Example
The following is an example of using the command.
$$1 tmax1 (tmadm): ci CLH 0: --------------------------------------------------------------------------- cli_id clid status count lastin_time ipaddr usrname --------------------------------------------------------------------------- 0 0x00200000 RDY 0 10 192.168.1.43 1 0x00200001 RDY 0 91 192.168.1.43 tmax
After the command, clientinfo, is executed, the following items are displayed.
Item | Description |
---|---|
cli_id | Client ID. |
clid | Combination of the node number, CLH number, and cli_id in hexadecimal. |
status | Current status of the client. For more information, refer to [client status] that follows. |
count | Number of processed requests. |
lastin_time | Time the client spent waiting after calling a service. |
ipaddr | Client connection IP address. |
usrname | User name defined in the usrname field of the TPSTART_T struct. |
[Client Status]
The following describes each client status.
Too many abnormal client connections to CLH that are hanging can prevent other clients from connecting to CLH. Clients that do not send a TPSTART connection message within 60 seconds after the socket is connected will automatically be disconnected. When they are disconnected, the following error will occur.
(I) CLH0209 internal error : disconnect client because client didn't send tpstart msg for 60 sec.(192.168.1.43) [CLH0058]
Displays information about each currently active server process.
Usage
$$1 tmax1 (tmadm): si
Example
The following is an example of using the command.
$$5 tmaxs1 (tmadm): si - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - clh svrname (svri) status count qcount qpcount emcount - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 scoresdl ( 0) NRDY 0 0 0 0 0 bank2 ( 1) RDY 0 0 0 0 0 svr1 ( 2) RDY 0 0 0 0 0 svr2 ( 2) RDY 0 0 0 0 0 svr3 ( 2) NRDY 0 0 0 0 0 api ( 2) RDY 0 0 0 0 0 syncrtn ( 2) RDY 0 0 0 0 0 ucs ( 2) NRDY 0 0 0 0 0 ucssvr ( 2) RDY 0 0 0 0 0 broad ( 2) NRDY 0 0 0 0 0 selins ( 2) NRDY 0 0 0 0
After the command, svrinfo, is executed, the following items are displayed.
Item | Description |
---|---|
clh | CLH number. |
svrname | Server name. |
(svri) | Server ID. |
status | Current status of a server. For more information, refer to [system status]. |
count | Number of processed requests. |
qcount | Amount of enqueued requests. |
qpcount | Number of requests deleted from the queue. |
emcount | Number of requests returned due to exceeding the maximum number of enqueued requests. |
Displays information about transactions currently being processed.
Usage
$$1 tmax1 (tmadm): txquery(txq) [-x] [-g svgname] [-w [-r] [-G gwname]] [<upper-global-xid><lower-global-xid>]
Option | Description |
---|---|
[ -x ] | Option to search for information about each transaction branch. |
[ -g svgname ] | Option to search for transaction branch of the group with the svgname. |
[ -w ] | Option to search for a domain subtransaction tree. |
[ -r ] | Option to search with the XID of the remote domain. |
[ -G gwname] | Option to search for the domain gateway of gwname. |
upper-global-xid | First 4 bytes of gtid of the xid to search for. |
lower-global-xid | Last 4 bytes of gtid of the xid to search for. |
Example
Transaction search
The following is an example of querying for transactions.
$$14 tmax1 (tmadm): txq CLH0: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - cli_id txstime txqcount txrcount XID txstate xastate - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - c0023 8:33:34 1 0 000:000:00022 TXBEGIN TX_OK c0024 18:33:34 1 0 000:000:00023 TXBEGIN TX_OK c0025 18:33:34 1 0 000:000:00024 TXBEGIN TX_OK c0026 18:33:34 1 0 000:000:00025 TXBEGIN TX_OK c0027 18:33:34 1 0 000:000:00026 TXBEGIN TX_OK c0028 18:33:34 1 0 000:000:00027 TXBEGIN TX_OK c0029 18:33:34 1 0 000:000:00028 TXBEGIN TX_OK c0030 18:33:34 1 0 000:000:00029 TXBEGIN TX_OK c0031 18:33:34 1 0 000:000:00030 TXBEGIN TX_OK
After the command, txquery, is executed, the following items are displayed.
Item | Description |
---|---|
cli_id | ID of the currently connected client. |
txstime | Time when the transaction was executed. |
txqcount | Number of transactions waiting in the queue. |
txrcount | Number of transactions already processed. |
XID | Transaction ID. |
txstate | Current transaction status. (TXBEGIN, TXCOMMIT, TXROLLBACK) |
xastate | XA status. |
Transaction information search (-x)
The following is an example of querying for transaction information.
$$6 tmaxh4 (tmadm): txquery -x CLH 0: ---------------------------------------------------------------- cli_id clid txstime txqcount txrcount XID txstate xastate bqualno nodename svgname txbstate xabstate ---------------------------------------------------------------- c1526 0x000005f6 15:13:35 4 0 34800000:0008c087 TXBEGIN TX_OK (B)00000000 tmaxh4 svg12301X BEGIN XA_OK (B)00000001 tmaxh4 gw2301X BEGIN XA_OK (B)00000002 tmaxh4 gw2302X BEGIN XA_OK (B)00000003 tmaxh4 svg12302X BEGIN XA_OK c1527 0x000005f7 15:13:35 4 0 34800000:0008c089 TXBEGIN TX_OK (B)00000000 tmaxh4 svg12301X BEGIN XA_OK (B)00000001 tmaxh4 gw2301X BEGIN XA_OK (B)00000002 tmaxh4 gw2302X BEGIN XA_OK (B)00000003 tmaxh4 svg12302X BEGIN XA_OK
Searching for transactions of a group (-g)
The following is an example of querying for transactions of a group.
$$7 tmaxh4 (tmadm): txq -g svg12301X CLH 1: ---------------------------------------------------------------- cli_id clid txstime txqcount txrcount XID txstate xastate bqualno nodename svgname txbstate xabstate ---------------------------------------------------------------- c1595 0x0000463b 15:14:10 1 0 34800001:0008e953 TXBEGIN TX_OK (B)00000000 tmaxh4 svg12301X BEGIN XA_OK c1596 0x0000463c 15:14:10 1 0 34800001:0008e956 TXBEGIN TX_OK (B)00000000 tmaxh4 svg12301X BEGIN XA_OK c1597 0x0000463d 15:14:10 1 0 34800001:0008e957 TXBEGIN TX_OK (B)00000000 tmaxh4 svg12301X BEGIN XA_OK
The following is an example of querying a transaction tree.
$$9 tmaxh4 (tmadm): txquery -w CLH 0: ---------------------------------------------------------------- gw_no txstime txqcount txrcount XID RXID txstate xastate ---------------------------------------------------------------- g0004 17:00:00 2 0 34800000:0008c38e 39800000:0003bcf7 PHASE2 TX_OK g0004 17:00:00 2 0 34800000:0008c38f 39800000:0003bcf8 PHASE1 TX_OK g0004 17:00:00 2 0 34800000:0008c391 39800000:0003bcf9 PHASE2 TX_OK g0004 17:00:00 2 0 34800000:0008c39a 39800000:0003bd00 PHASE1 TX_OK g0004 17:00:00 2 0 34800000:0008c3a1 39800000:0003bd08 PHASE1 TX_OK g0004 17:00:00 1 0 34800000:0008c3a3 39800000:0003bd09 sTXBEGIN TX_OK g0005 17:00:00 2 0 34800000:0008c38b 3e800100:000177f6 PHASE2 TX_OK g0005 17:00:00 2 0 34800000:0008c38d 3e800101:00014ff7 PENDING TX_OK g0005 17:00:00 2 0 34800000:0008c390 3e800101:00014ff8 PENDING TX_OK g0005 17:00:00 2 0 34800000:0008c392 3e800000:0006e050 PHASE1 TX_OK g0005 17:00:00 2 0 34800000:0008c396 3e800000:0006e052 PHASE1 TX_OK g0005 17:00:00 2 0 34800000:0008c397 3e800100:000177f8 PHASE1 TX_OK g0005 17:00:00 2 0 34800000:0008c398 3e800000:0006e055 PHASE1 TX_OK g0005 17:00:00 2 0 34800000:0008c399 3e800101:00014ff9 sTXBEGIN TX_OK g0005 17:00:00 2 0 34800000:0008c39c 3e800100:000177f9 PENDING TX_OK g0005 17:00:00 2 0 34800000:0008c39d 3e800000:0006e05a sTXBEGIN TX_OK g0005 17:00:00 2 0 34800000:0008c39e 3e800101:00014ffa PHASE1 TX_OK g0005 17:00:00 1 0 34800000:0008c39f 3e800000:0006e05b sTXBEGIN TX_OK g0005 17:00:00 1 0 34800000:0008c3a2 3e800100:000177fa sTXBEGIN TX_OK g0004 17:00:00 2 0 34800000:0008eb51 39800001:0003e50d PHASE2 TX_OK g0004 17:00:00 2 0 34800000:0008eb53 39800001:0003e510 PHASE2 TX_OK g0004 17:00:00 2 0 34800000:0008eb58 39800001:0003e516 PHASE1 TX_OK g0004 17:00:00 2 0 34800000:0008eb5b 39800001:0003e519 sTXBEGIN TX_OK g0005 17:00:00 2 0 34800000:0008eb4d 3e800001:0007084f PHASE2 TX_OK g0005 17:00:00 2 0 34800000:0008eb50 3e800001:00070852 PHASE2 TX_OK g0005 17:00:00 2 0 34800000:0008eb52 3e800001:00070854 PHASE2 TX_OK g0005 17:00:00 1 0 34800000:0008eb56 3e800001:00070858 sTXBEGIN TX_OK g0005 17:00:00 1 0 34800000:0008eb5a 3e800101:00014ffb sTXBEGIN TX_OK g0005 17:00:00 1 0 34800000:0008eb5c 3e800001:0007085b sTXBEGIN TX_OK
The following is an example of using the [-w] and [-r] options.
### txquery -w -r ### $$11 tmaxh4 (tmadm): txquery -w -r CLH 1: ---------------------------------------------------------------- gw_no txstime txqcount txrcount XID RXID txstate xastate ---------------------------------------------------------------- g0004 17:00:00 2 0 34800001:0008ed0a 39800001:0003e6bc PENDING TX_OK g0004 17:00:00 2 0 34800001:0008ed0b 39800001:0003e6bd PENDING TX_OK g0004 17:00:00 2 0 34800001:0008ed0c 39800001:0003e6be PHASE1 TX_OK g0004 17:00:00 2 0 34800001:0008ed0f 39800001:0003e6c1 PHASE1 TX_OK g0005 17:00:00 2 0 34800001:0008ed00 3e800001:000709aa PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008ed03 3e800101:00015046 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008ed04 3e800100:00017846 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008ed05 3e800001:000709b1 PENDING TX_OK g0005 17:00:00 2 0 34800001:0008ed06 3e800100:00017847 PENDING TX_OK g0005 17:00:00 2 0 34800001:0008ed07 3e800001:000709b2 sTXBEGIN TX_OK g0005 17:00:00 2 0 34800001:0008ed08 3e800100:00017848 PENDING TX_OK g0005 17:00:00 2 0 34800001:0008ed09 3e800100:00017849 PHASE2 TX_OK g0004 17:00:00 2 0 34800001:0008c53f 39800000:0003bea9 PHASE2 TX_OK g0004 17:00:00 2 0 34800001:0008c540 39800000:0003beab PHASE2 TX_OK g0004 17:00:00 2 0 34800001:0008c545 39800000:0003beaf PHASE1 TX_OK g0004 17:00:00 2 0 34800001:0008c546 39800000:0003beb0 PHASE1 TX_OK g0004 17:00:00 2 0 34800001:0008c548 39800000:0003beb2 sTXBEGIN TX_OK g0005 17:00:00 2 0 34800001:0008c51c 3e800000:0006e192 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008c536 3e800000:0006e1a5 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008c537 3e800100:00017845 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008c539 3e800000:0006e1a7 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008c53e 3e800000:0006e1ad PENDING TX_OK g0005 17:00:00 2 0 34800001:0008c541 3e800101:00015047 PENDING TX_OK g0005 17:00:00 2 0 34800001:0008c542 3e800000:0006e1af PENDING TX_OK g0005 17:00:00 2 0 34800001:0008c543 3e800101:00015048 PENDING TX_OK g0005 17:00:00 2 0 34800001:0008c544 3e800101:00015049 PHASE1 TX_OK
This command displays the status of the currently active RQs. It can also be used by an administrator to manipulate the disk queue.
Usage
$$1 tmax1 (tmadm): rqstat (rqs) [-l] [-s rqname] [-f rqname] [-c rqname]
Option | Description |
---|---|
[-l] | Option to display a list of available RQs. |
[-s rqname] | Current RQ status. |
[-f rqname] | Option to process services accumulated on the RQ. |
[-c rqname] | Option to delete the RQ backlog. |
To process RQ with the [-f] and [-c] options, it must be executed in the master mode by using the tmadmin -m option.
Example
The following is an example of querying for RQ status.
$$1 tmax1 (tmadm): rqs -s rq1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Number of queue entries - - - - - - - - - - - - - - - - - - - - - - - - - - - - - request 0 reply 0 fail 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Accumulated queue activities - - - - - - - - - - - - - - - - - - - - - - - - - - - - - request enqueued 0 request dequeued 0 reply enqueued 10 reply dequeued 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This command is used to suspend a running server in order to resolve system failures resulting from application program errors. Once this command has been executed, the target server processes will complete processing current services before being suspended. Services in the queue remain in the queue and any subsequent service requests will be accumulated in the queue. The suspend command is abbreviated as sp.
Usage
$$1 tmax1 (tmadm): suspend {-s svc_name [-p pid] | -v svr_name [-k num] [-a]}
Option | Description |
---|---|
-s svc_name | Service name. |
[-p pid] | Option to suspend services for the specified server process. Used with the [-s] option. |
-v svr_name | Option to suspend the scheduling of the server process. A requested service will wait in the queue until the process is resumed, or can be removed from the queue according to the MAXQCOUNT and CLHQTIMEOUT settings. |
[-k num] | Option to suspend the specified number of processes on the target server. Used with the [-v] option. As many server processes, including the already suspended processes, as the specified number are suspended. The specified number must not exceed the MAX value of the server. To check for suspended server processes, execute the [stat -p -X] command. suspend(sp) -v svr_name [-k 5] If as many server processes as MAX are all suspended when using the [-k] option, the server will be blocked (BLK). This is same as executing 'sp -v svr_name' without the [-k] option. |
[-a] | If a running server receives a suspend request, the service is not suspended until it completes processing current requests. This option is used to suspend a running server immediately without delay. It is used with the [-v] option. |
This command will cause the target server processes to resume scheduling. The target server processes will resume processing of the enqueued service requests, and accept any incoming service requests. The resume command is abbreviated as rs.
Usage
$$1 tmax1 (tmadm): resume {-s svc_name [-p pid] | -v svr_name [-k num]}
Option | Description |
---|---|
-s svc_name | Option to resume service scheduling. |
[-p pid] | Option to resumes services for the specified server process. Suspending/resuming the service for a specific server process may take a long time to wait for the processing to complete if the service is running. In this case, the service will be resumed if the tmadmin is forcibly terminated. Any service requests after suspend will be accumulated in the queue. This option is used with the [-s] option. resume(rs) -s svc_name [-p pid] |
-v svr_name | Option to resume scheduling of the server process. |
[-k num] | Option to resume the specified number of processes on the target server. Used with the [-v] option. As many suspended server processes as the specified number are resumed. If there are no suspended server processes, the command will be cancelled. The specified value must not exceed the MAX value of the server. To check for suspended server processes, execute the [stat -p -X] command. resume(rs) -v svr_name [-k 5] If even one server process is resumed by the -k option, the server status will be changed to RDY. If there are no active processes, the status will be NRDY. |
The following describes information related to resume.
How to resume a suspended server
The method depends on the Tmax version.
Tmax v4.0 SP3 Fix#10, Tmax v4.0 SP8 Fix#1, Tmax v5.0 SP1 Fix#1 and later
When a server process is suspended in tmadmin, the process stays in the suspended state even when tmboot is executed after tmdown. A suspended server process must be started by tmboot, and then service must be resumed.
Tmax v4.0 and later
When a server process is suspended in tmadmin, the process is automatically resumed when tmboot is executed after tmdown. Tmboot cannot be executed for a suspended server process.
$ tmboot -s svr02011 TMBOOT for node(tmaxh4) is starting: Welcome to Tmax demo system: it will expire 2006/1/25 Today: 2005/12/19 (E) BOOT3020 svr02011 is suspended, resume(or tmdown) it first. [BOOT0038]
Suspend/resume a server in the COUSIN group of a Node
If multiple server groups are set as COUSIN of a node, suspend/resume will be executed for all servers in the COUSIN group.
ASQCOUNT can be set in the SVRGROUP section. The [-v] option must be used to set a server process to BLK.
The advertise/unadvertise command of tmadmin can be used to advertise/unadvertise a specific service name.
When a service is advertised, the name of the service will be registered in the Service Name Table, which CLH manages for each server. When the service is unadvertised, it will be deleted from the Service Name Table.
In other words, advertise allows the server process to advertise its new service, and unadvertise allows the server process to unadvertise its service. When an unadvertised service is called, a TPENOENT error will occur. However, even though a certain service is unadvertised in one server process, the service routine can be executed if another server process is providing the service.
Usage
Advertise
$$1 tmax1 (tmadm): advertise {-s svc_name [-p pid]}
Option | Description |
---|---|
-s svc_name | Option to advertise the specified service name. |
[-p pid] | Option to advertise the specified server process PID. |
Unadvertise
$$1 tmax1 (tmadm): unadvertise {-s svc_name [-p pid]}
Option | Description |
---|---|
-s svc_name | Option to unadvertises the specified service name. |
[-p pid] | Option to unadvertises the specified server process PID. |
Example
Unadvertising a service (unadvertise -s)
The following is an example of unadvertising a service whose name is TOUPPER and server process ID is 15287. Before executing advertise or unadvertise, check the service status using the st command.
$$1 tmax1 (tmadm): st -p -x CLH 0: ---------------------------------------------------------------- svr_name svgname spr_no status count avg svc PID fail_cnt err_cnt min_time max_time utime umin_time umax_time stime smin_time smax_time ---------------------------------------------------------------- svr2 svg1 36 RDY 0 0.000 -1 15285 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 svr2 svg1 37 RDY 0 0.000 -1 15286 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 svr2 svg1 38 RDY 0 0.000 -1 15287 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ---------------------------------------------------------------- TOTAL COUNT = 0 TOTAL SVCFAIL COUNT = 0 TOTAL ERROR COUNT = 0 TOTAL RUNNING COUNT = 0 $$1 tmax1 (tmadm): unadvertise -s TOUPPER –p 15287 TOUPPER is unadvertise $$8 tmaxh4 (tmadm): st -s CLH 0: ---------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status ---------------------------------------------------------------- TOUPPER svr2 0 0 0 0.000 0.000 PUNADV
Advertising a service (advertise -s)
The following is an example of advertising an unadvertised service. Before executing advertise or unadvertise, check the service status using the st command.
$$1 tmax1 (tmadm): st -p -x CLH 0: ---------------------------------------------------------------- svr_name svgname spr_no status count avg svc PID fail_cnt err_cnt min_time max_time utime umin_time umax_time stime smin_time smax_time ---------------------------------------------------------------- svr2 svg1 36 RDY 0 0.000 -1 15285 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 svr2 svg1 37 RDY 0 0.000 -1 15286 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 svr2 svg1 38 RDY 0 0.000 -1 15287 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ---------------------------------------------------------------- TOTAL COUNT = 0 TOTAL SVCFAIL COUNT = 0 TOTAL ERROR COUNT = 0 TOTAL RUNNING COUNT = 0 $$1 tmax1 (tmadm): advertise -s TOUPPER –p 15287 TOUPPER is advertise $$11 tmaxh4 (tmadm): st -s CLH 0: ---------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status ---------------------------------------------------------------- TOUPPER svr2 0 0 0 0.000 0.000 RDY
This command will reset the statistics of the specified server process or all server processes. This command can only be used when tmadmin is running in the master mode.
Usage
$$1 tmax1 (tmadm): restat [-v [server_process_name]] [-a]
Option | Description |
---|---|
[-v [server_process_name]] | Resets statistics of the specified server process. |
[-a] | Resets statistics of all server processes. |
The command, rbs(Reboot Server Process), replaces the specified currently running server processes with new ones.
The directory TMAX_BKAPPDIR must be defined in .profile and the executable file of the new program must be placed under this directory. For example, move the file to $TMAXDIR/bk_appbin, and execute the following command.
Usage
$$1 tmax1 (tmadm): rbs new_file old_file
Item | Description |
---|---|
new_file | Name of the new file. |
old_file | Name of the existing file. |
The following are the steps for executing rbs.
Add the following variable to .profile.
export TMAX_BKAPPDIR=/data2/starbj81/tmax64/bk_appbin
Create the directory (bk_appbin) in the location specified in step 1.
$mkdir bk_appbin
Copy the execution file from appbin to bk_appbin.
$cp appbin/svr2 bk_appbin/
Execute the rbs command after executing tmadmin –m.
Starting three svr2 server processes
$$1 tmax1 (tmadm): rbs svr2 svr2 TMBOOT for node(tmaxh2) is starting: TMBOOT: SVR(svrname: svr2, execname: _rbs00_svr2) is starting: Fri Dec 19 11:21:06 2003 TMBOOT for node(tmaxh2) is starting: TMBOOT: SVR(svrname: svr2, execname: _rbs00_svr2) is starting: Fri Dec 19 11:21:06 2003 TMBOOT for node(tmaxh2) is starting: TMBOOT: SVR(svrname: svr2, execname: _rbs00_svr2) is starting: Fri Dec 19 11:21:06 2003 >> 3 servers booted using tmp execfile _rbs01_svr2 >> reboot svr /data2/starbj81/tmax64/appbin/svr2 finished
Starting one svr2 server process
$$1 tmax1 (tmadm): rbs svr2 svr2 >> suspend ok >> down ok >> cp ok >> boot ok >> resume ok >> reboot svr /data2/starbj81/tmax64/appbin/svr2 finished
Use the 'ps' command to verify that the server processes have been started successfully.
When three svr2 server processes are running
$ps –ef | grep svr2 starbj81 21710 1 0 11:46:32 pts/ts 0:00 _rbs00_svr2 -b -21709 -S svr2 -s svr2 -d -1 -v 21689 starbj81 21713 1 0 11:46:32 pts/ts 0:00 _rbs00_svr2 -b -21712 -S svr2 -s svr2 -d -1 -v 21689 starbj81 21716 1 0 11:46:32 pts/ts 0:00 _rbs00_svr2 -b -21715 -S svr2 -s svr2 -d -1 -v 21689
When one svr2 server process is running
$ps –ef | grep svr2 starbj81 21607 1 0 11:43:46 pts/ts 0:00 svr2 -s svr2 -g 2
If there are two or more server processes with the same name, the new server processes will be started after shutting down the current server processes one by one.
For instance, if the rbs is executed for svr1 whose MIN is set to 2, it will execute in the following order.
Terminate the first svr1.
Copy the temporary file (_rbs00_svr1) to the bk_appbin directory.
Start _rbs00_svr1.
Terminate the second svr1.
Copy the temporary file (_rbs00_svr1) to the bk_appbin directory.
Start _rbs00_svr1.
Version concurrency control is preventing processes of different versions from concurrently executing services. Executing rbs allows for concurrency control and dynamic server process update for services that have not been updated.
Usage
$$1 tmax1 (tmadm): rbs [-S | -s svc_name,...] newfile svr_name [svg_name]
Item | Description |
---|---|
[-S] | Suspends all services of the server. |
[-s svc_name,...] | Suspends only one service of the server. |
newfile | New file name. |
svr_name | Name of the server to suspend. |
[svg_name] | Server group that the server to be suspended belongs to. |
Example
When updating a specific service of the server (-s)
In the following example, the TOUPPER service of svr2 is temporarily suspended while other services continue to run.
$$1 tmax1 (tmadm): rbs -s TOUPPER svr2_new svr2
In the following example, TOLOWER and TOUPPER services of svr2 are temporarily suspended while other services continue to run. To specify multiple service names, use a comma(,) without blank spaces as a delimiter.
$$1 tmax1 (tmadm): rbs -s TOUPPER,TOLOWER svr2_new svr2
When updating all services of the server (-S)
In the following example, all services of svr2 are suspended temporarily.
$$1 tmax1 (tmadm): rbs -S svr2_new svr2
In the following example, all services of svr2 of the svg1 server group are suspended temporarily.
$$1 tmax1 (tmadm): rbs -S svr2_new svr2 svg1
1. If the option(-s or -S option) for rbs is not specified, version concurrency is not guaranteed.
2. If the COUSIN group is set for only one Node, the rbs command cannot be executed for a svgname.
Controlling version concurrency in a multi node environment means preventing processes of different versions from concurrently executing services in a multi-node environment. Executing rbs in a multi node environment where load balancing option is enabled allows for concurrency control and dynamic server process update for unmodified services.
Usage
$$1 tmax1 (tmadm): mrbs [-S | -s svc_name,...] newfile svr_name
Item | Description |
---|---|
[-S] | Suspends all services of the server. |
[-s svc_name] | Suspends only one service of the server. |
newfile | New file name. |
svr_name | Name of the server to suspend. |
Example
When updating a specific service of the server (-s)
In the following example, the TOUPPER service of svr2 is temporarily suspended while other services continue to run.
$$1 tmax1 (tmadm): mrbs -s TOUPPER svr2_new svr2
In the following example, TOLOWER and TOUPPER services of svr2 are temporarily suspended while other services continue to run. To specify multiple service names, use a comma(,) without blank spaces as a delimiter.
$$1 tmax1 (tmadm): mrbs -s TOUPPER,TOLOWER svr2_new svr2
When updating all services of the server (-S)
In the following example, all services of svr2 are suspended temporarily.
$$1 tmax1 (tmadm): mrbs -S svr2_new svr2
If two or more server groups are set as COUSIN in a node, rbs (server exchange) can be executed for all servers that belong to the COUSIN server groups.
This command is used to dynamically add a service to a specific server program while Tmax is running by only shutting down the related server. A server, server group, or node can also be added dynamically during operation. In Tmax 5.0 and later, a binary configuration file cannot be added dynamically without using the -a option of CFL. Therefore, a configuration file must be compiled with the -a option.
For restrictions on dynamically adding a service by using cfgadd(ca), refer to "Restrictions on dynamic addition using cfgadd(ca)".
Usage
$$1 tmax1 (tmadm) : cfgadd (ca) - i cfgfile
Item | Description |
---|---|
- i cfgfile | Configuration file name of the service to add. |
The following is the process of executing cfgadd(ca) to dynamically add a service.
Create a new configuration file to add.
$vi new.m
Add the created configuration file to the existing configuration file with the -a option. Execute cfl with the –o option to create a binary configuration file with a different name.
$cfl -i org.m -a new.m -o tmchg
Execute gst to create a service table.
$gst -f tmchg
Execute "tmadmin –m" and use cfgadd(ca) to add the service.
$cfgadd -i tmchg
Compile the server program.
$compile c svr1
Load the server process.
$tmboot –S svr1
The following is the process of executing cfgadd(ca) to dynamically add a server.
Create a new configuration file “tmchg.m”, and add additional settings to the file.
<tmchg.m>
*SERVER hello SVGNAME = svg1 *SERVICE HELLO SVRNAME = hello
Compile the new configuration file. Tmconfig.m is the existing configuration file, and tmchg.m is the new configuration file.
cfl -i tmconfig.m -a tmchg.m -o tmchg
Create a service table.
gst -f tmchg
Use cfgadd –i to add the configuration file.
tmaxi1@dhjang ./config > tmadmin -m
$$3 tmaxi1 (tmadm): si
-------------------------------------------------------------
clh svrname (svri) status count qcount qpcount emcount
-------------------------------------------------------------
0 tmaxgw ( 0) RDY 0 0 0 0
0 toupper ( 18) RDY 0 0 0 0
$$4 tmaxi1 (tmadm): cfgadd -i tmchg
config is successfully added
$$5 tmaxi1 (tmadm): si
-------------------------------------------------------------
clh svrname (svri) status count qcount qpcount emcount
-------------------------------------------------------------
0 tmaxgw ( 0) RDY 0 0 0 0
0 toupper ( 18) RDY 0 0 0 0
0 hello ( 19) NRDY 0 0 0 0
The hello server is in the NRDY state.
Enter the following command: tmboot -S hello -f tmchg.
tmaxi1@dhjang ./config > tmboot -S hello -f tmchg TMBOOT for node(tmaxi1) is starting: Welcome to Tmax demo system: it will expire 2002/8/31 Today: 2002/8/19 TMBOOT: SVR(hello) is starting: Mon Aug 19 15:37:44 2002
Execute the si command to check if the server hello is RDY.
$$6 tmaxi1 (tmadm): si ------------------------------------------------------------- clh svrname (svri) status count qcount qpcount emcount ------------------------------------------------------------- 0 tmaxgw ( 0) RDY 0 0 0 0 0 toupper ( 18) RDY 0 0 0 0 0 hello ( 19) RDY 0 0 0 0
The process for dynamically creating a new server group is essentially the same as that for dynamically adding a server. The only difference is the settings in the new configuration file. The configuration file must include settings for the server group being created, as well as the servers and services that will belong to the server group.
<tmchg.m>
*SVRGROUP svg2 NODENAME = "aix5l" *SERVER svr3 SVGNAME = svg2, MIN = 1, MAX = 10 *SERVICE FDLTOUPPER SVRNAME = svr3 FDLTOLOWER SVRNAME = svr3
The following is the process of executing cfgadd(ca) to dynamically add a node. It can also be used to add the node that a COUSIN server group belongs to.
The following is the process of executing cfgadd(ca) to dynamically add a node.
Create a configuration file.
<tmconfig.m>
*DOMAIN tmax1 SHMKEY = @SHMEMKY@, MINCLH = 1, MAXCLH = 3, TPORTNO = @TPORTNO@, BLOCKTIME = 300, MAXCPC = 100, RACPORT = @TRACPORT@ *NODE @HOSTNAME@ TMAXDIR = "@TMAXDIR@", APPDIR = "@TMAXDIR@/appbin", @RMTNAME@ TMAXDIR = "@RMTDIR@", APPDIR = "@RMTDIR@/appbin", *SVRGROUP svg1 NODENAME = "@HOSTNAME@",COUSIN = "svg2",LOAD = 2 svg2 NODENAME = "@RMTNAME@",LOAD = 1 *SERVER svr2 SVGNAME = svg1 *SERVICE TOUPPER SVRNAME = svr2 TOLOWER SVRNAME = svr2
<tmconfig_add.m>
*NODE @RMTNAME2@ TMAXDIR = "@RMTDIR2@", APPDIR = "@RMTDIR2@/appbin", *SVRGROUP svg1 NODENAME = "@HOSTNAME@",COUSIN = "svg2,svg3",LOAD = 2 svg3 NODENAME = "@RMTNAME2@",LOAD = 1
Execute racd on the newly added node.
Node3>$ racd -k
Compile the configuration file. Compile tmconfig_add.m, the configuration file to which the new node has been added. Execute cfl with the –o option to create a binary configuration file with a different name.
node1>$cfl -i tmconfig.m -a tmconfig_add.m –o tmchg CFL is done successfully for node(node1) CFL: rcfl start for rnode (node2) CFL is done successfully for node(node2) CFL: rcfl start for rnode (node3) CFL is done successfully for node(node3)
Compile the server. Compile the server of the node to be added.
node3>$ gst -f tmchg node3>$ compile c svr2
Add the node. Dynamically add the node with the cfgadd command of tmadmin. Note that the command must be executed on each node as 'tmadmin –l'.
The following is an example of adding node3 when node1 and node2 already exist.
# node1 $ node1>tmadmin –l -m --- Welcome to Tmax Admin (Type "quit" to leave) --- $$2 node1 (tmadm): cfgadd -i tmchg (I) TMM0211 General Infomation : CFGADD started [TMM0902] (I) TMM0211 General Infomation : CFGADD completed [TMM0907] config is successfully added # node2 $ node2>tmadmin –l -m --- Welcome to Tmax Admin (Type "quit" to leave) --- $$2 node2 (tmadm): cfgadd -i tmchg (I) TMM0211 General Infomation : CFGADD started [TMM0902] (I) TMM0211 General Infomation : CFGADD completed [TMM0907] config is successfully added
Load the newly added node (node3).
Node3>tmboot -n tmaxh4 -f tmchg TMBOOT for node(tmaxh4) is starting: Welcome to Tmax demo system: it will expire 2008/11/23 Today: 2008/9/24 TMBOOT: TMM is starting: Wed Sep 24 11:11:59 2008 TMBOOT: CLL is starting: Wed Sep 24 11:11:59 2008 (I) TMM0211 General Infomation : node register (nodeno = 0(0)) success [TMM0404] (I) TMM0211 General Infomation : node register (nodeno = 1(1)) success [TMM0404] TMBOOT: CLH is starting: Wed Sep 24 11:11:59 2008 (I) CLH9991 Current Tmax Configuration: Number of client handler(MINCLH) = 1 Supported maximum user per node = 7966 Supported maximum user per handler = 7966 [CLH0125] TMBOOT: TLM(tlm) is starting: Wed Sep 24 11:11:59 2008 TMBOOT: SVR(svr2) is starting: Wed Sep 24 11:11:59 2008
Verify that the node has been added successfully.
node1>tmadmin TMADMIN for rnode (node2): starting to connect to RAC TMADMIN for rnode (node3): starting to connect to RAC --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 node1 (tmadm): ti Tmax System Info: DEMO version 4.0 SP #3 Fix #8: expiration date = 2008/11/22 maxuser = UNLIMITED, domaincount = 1, nodecount = 3, svgrpcount = 3, svrcount = 9, svccount = 6 rout_groupcount = 0, rout_elemcount = 0 cousin_groupcount = 1, cousin_elemcount = 3 backup_groupcount = 0, backup_elemcount = 0 Tmax All Node Info: nodecount = 3: ---------------------------------------------------------------- no name portno racport shmkey shmsize minclh maxclh ---------------------------------------------------------------- 0 node1 8350 3155 88350 225760 1 3 1 node2 8350 3155 88350 225760 1 3 2 node3 8350 3155 88350 225760 1 3 $$2 (tmadm): st -s CLH 0: -------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status -------------------------------------------------------------- TOLOWER svr2 0 0 0 0.000 0.000 RDY TOUPPER svr2 0 0 0 0.000 0.000 RDY Msg from rnode(node2): CLH 0: -------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status -------------------------------------------------------------- TOLOWER svr2 0 0 0 0.000 0.000 RDY TOUPPER svr2 0 0 0 0.000 0.000 RDY Msg from rnode(node3): CLH 0: -------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status -------------------------------------------------------------- TOLOWER svr2 0 0 0 0.000 0.000 RDY TOUPPER svr2 0 0 0 0.000 0.000 RDY
Dynamically adding a service, server, server group or node by using cfgadd(ca) has the following restrictions:
An item can only be added, not removed. To remove an item, remove it from the existing environment file and execute cfl before restarting Tmax.
An item name that exists in the configuration file cannot be duplicated in the newly added configuration file.
When the contents of a newly added configuration file are applied to the existing configuration file, they must be added to the end of each section. If items are inserted in the middle of the existing configuration or the order is changed, the operating environment information can be modified incorrectly. Attention is required.
When adding a new item, the newly added configuration file must be already applied to the existing configuration file that is used with the 'cfl -i' option.
Items can be added to the MAXNODE, MAXSVG, MAXSVR, MAXSPR, MAXSVC, MAXTMS, and MAXCPC settings.
When adding an XA server group, specify TMS and check that the program has been created.
RQ cannot be added dynamically.
A server group that has a COUSIN/BACKUP cannot be added or removed.
A gateway that has a COUSIN/BACKUP cannot be added or removed.
A service that is dynamically added to the server group, which has a COUSIN/BACKUP, cannot be removed.
When adding the service, server, and server group, CFL must be used to create a binary configuration file for the dynamic addition.
If a binary configuration file, which is created using CFL without the '–a' option, is added dynamically, the following error message will be displayed.
(E) ADM2048 Engine type mismatch (0): 'a' option must be used [ADM0417]
This command is used to dynamically modify the settings in the configuration file.
Execute the cfg command to check which items in the configuration file can be modified. The items with an abbreviation inside brackets can be modified by using the set command.
Usage
$$1 tmax1 (tmadm): set [-d [domain]| -g [server_group]| -v [service] | -s [server]] item value
Item | Description |
---|---|
[-d [domain]] | Modify DOMAIN section. To modify a specific domain, specify the domain name. |
[-g [server_group]] | Modify GATEWAY section. To modify a specific server group, specify the server group name. |
[-v [service]] | Modify SERVICE section. To modify a specific service, specify the service name. |
[-s [server]] | Modify SERVER section. To modify a specific server, specify the server name. |
Item | Item to modify. |
Value | New value. |
Example
The following is an example of using each command.
$$1 tmax1 (tmadm): set -d res1 bt 100 $$1 tmax1 (tmadm): set -g svg1 ld 5 $$1 tmax1 (tmadm): set -v kfdl1 mq 1000 $$1 tmax1 (tmadm): set -s SYNC pr 100 $$1 tmax1 (tmadm): set -n tmaxh4 cb n $$1 tmax1 (tmadm): set -s svc_name pr 99
The command dynamically changes an environment configuration value among options configured for TMMOPT. Configurable items can be checked using the cfgopt command in tmadmin. The items displayed by executing cfgopt can be modified dynamically.
Usage
$$1 tmax1 (tmadm): setopt [-tmm] Item Value
Item | Description |
---|---|
[-tmm] | Used to change value of an option defined in the TMMOPT setting. |
Item | Item to change. An item displayed by executing cfgopt. ( e.g., -F ) |
Value | New value. |
Example
The following is an example of executing the command.
$$1 tmax1 (tmadm): setopt -tmm -F 30 new value (30) is set for section = -tmm, name = N/A, fld = -F $$1 tmax1 (tmadm): setopt -tmm -t 15 new value (15) is set for section = -tmm, name = N/A, fld = -t
This command deletes the service requests that are waiting in the queue. This is usually used to remove abnormal number of accumulated requests. This command is most useful for banks, government offices and other such institutions that handle hundreds of thousands of tasks per day.
Deleted requests can be processed later when clients reissue the request. Since Tmax manages a queue for each server process, the administrator can empty a queue for a specific server process to enhance the system efficiency.
The queue purge command is abbreviated as qp. When a service request is deleted from the queue, a TPEQPURGE message (tperrno = 27) will be sent to the client that issued the request. Thus, the client will be able to reissue the request at a later time. When this command is used, information about the deleted requests and client IDs will be recorded in the slog.
Usage
$$1 tmax1 (tmadm): qpurge {-v svr_name [-k number] | -s svc_name}
Item | Description |
---|---|
-v svr_name | Delete requests accumulated in the queue of the specified server. |
[ -k number] | Can purge some of the requests accumulated in the server Queue. Must be used with the –v option. If N is a number greater than 0, keep the first N number of service requests and purge any subsequent incoming requests.
|
-s svc_name | Delete requests accumulated in the queue for the specified service. |
This command forcibly disconnects inactive clients that are connected but are idle. Before the administrator issues this command, it is recommended to use the ci command to check the client information. The discon command is abbreviated as ds with the following options.
Usage
$$1 tmax1 (tmadm): ds [-h clhno] [-f] {-a | -n | -i idle_time | -c cli_id | -A}
Option | Description |
---|---|
[-h clhno] | Disconnect clients connected to the CLH. |
[-f] | Immediately disconnect clients. |
{-a} | Disconnect all clients connected to the CLH. If the [-h] option is not used, the client connected to CLH 0 is disconnected by default. |
{-n} | Disconnect clients with inaccurate information. Buffer allocated by tpalloc() is not used. |
{-i idle time} | Disconnect clients from sessions that exceed the set amount of time (second). |
{-c cli_id} | Disconnect the client with the specified ID number. ID number must be specified. |
{-A} | Disconnect clients connected to all CLHs. |
The administrator can use these two commands to create a log which will allow them to access various information in real time to take immediate and appropriate actions for each situation. The tmadmin tool logs administrative data for statistics analysis. The log file will be created in the current directory. By viewing the log data, the administrator will be able to analyze the system performance to determine the peak times, unnecessary server processes, queue status, etc.
Logging will begin when the logstart command is executed, and terminate when the logend command is executed.
Usage
Start logging (logstart)
$$1 tmax1 (tmadm): logstart filename
Item | Description |
---|---|
filename | Specify a log file name. |
End logging (logend)
$$1 tmax1 (tmadm): logend
TMAX_TRACE enables runtime tracing in a Tmax system. To use this function, TMAX_TRACE must be defined in the Tmax configuration file, and the chtrc command can be used in tmadmin to dynamically modify the configurations.
Usage
chtrc [-g svgname |-v server| -i sprno]] -s newspec
Option | Description |
---|---|
[-g svgname] | Modify the spec of a server group. |
[-v server] | Modify the spec of a server. |
[-i sprno] | Modify the spec of a server process. |
-s newspec | New spec. |
Example
Modifying the spec of all servers on a node (-s)
The following is an example of modifying the spec of all servers on a specific node in a single node environment.
$$1 tmaxs1 (tmadm): chtrc -s newspec
The following is an example of applying a new TRACE spec to a specific node in a multi node environment.
$$1 tmaxh3 (tmadm): nodeset $HOSTNAME node is set to $HOSTNAME $$2 tmaxh3 (tmadm): chtrc –s newspec
Modifying server group spec (-g)
The following is an example of modifying the spec of all servers of a specific server group.
$$1 tmaxs1 (tmadm): chtrc -g svgname -s newspec
The following is an example of modifying the spec of all servers of a specific server group.
$$3 tmaxs1 (tmadm): chtrc -v server -s newspec
The following is an example of modifying the spec of a specific server of a server group.
$$3 tmaxs1 (tmadm): chtrc -g svgname -v server -s newspec
Modifying the spec of a specific server process (-i)
The following is an example of modifying the spec of a particular server process.
$$4 tmaxs1 (tmadm): chtrc -g svgname -i sprno -s newspec
The chlog command can be used to dynamically change the log level in order to rapidly handle specific error conditions. The module must be in debug mode to check the log using chlog. The cfg command can be used to confirm that the change to the log level has been applied successfully.
Usage
$$1 tmaxs1 (tmadm) : chlog [-t | -c | -v [server_name] | -g [server_group_name]|-m] -l [loglvl]
Option | Description |
---|---|
[-t] | TMM log level. |
[-c] | CLH log level. |
[-v [server_name]] | Log level of the specified server. |
[-g [server_group_name]] | Log level of the specified server group. |
[-m] | TMS log level. |
-l [loglvl] | Actual log level. Select one of the following options listed in the order of increasing low level details. DEBUG4 logs most details, and COMPACT logs least details. COMPACT, BASIC, DETAIL, DEBUG1, DEBUG2, DEBUG3, DEBUG4 |
Example
Dynamically modifying the TMM log level (-t)
The following is an example of dynamically changing the log level of TMM.
tmaxh2:/data1/starbj81/tmax/config> tmadmin -l -m --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxh2 (tmadm): chlog -t -l DEBUG4 log level is updated $3 tmaxh2 (tmadm): cfg -n node_name = tmaxh2, hostname = tmaxh2, node_no = 1 ... tmmloglvl = DEBUG4, ...
Dynamically modifying the CLH log level (-c)
The following is an example of dynamically changing the log level of CLH.
tmaxh2:/data1/starbj81/tmax/config> tmadmin -m -l --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxh2 (tmadm): chlog -c -l COMPACT log level is updated $$2 tmaxh2 (tmadm): cfg -n node_name = tmaxh2, hostname = tmaxh2, node_no = 1 tmmloglvl = DEBUG4, clhloglvl = COMPACT, ...
Dynamically modifying the TMS log level (-m, -g)
The following is an example of dynamically changing the log level of TMS.
$$3 tmaxh4 (tmadm): chlog -m -g svg32306X -l debug3 log level is updated $$4 tmaxh4 (tmadm): cfg –g svg_name = svg32306X, svg_no = d tmsloglvl = DEBUG3, ...
Dynamically modifying the log level of a server group (-g)
The following is an example of dynamically changing the log level of a specific server group.
$$4 tmaxh2 (tmadm): chlog -g svg3 -l DETAIL log level is updated $$5 tmaxh2 (tmadm): cfg -g svg_name = svg3, svg_no = 10002 loglvl = DETAIL ...
If a transaction processing does not complete for a certain amount of time due to a network or TMS failure, the administrator can reissue the commit / rollback and complete the transaction. Txcommit can only be used when the Decision is COMMIT in the PHASE2 stage. Txrollback can only be used when the Decision is ROLLBACK in the PHASE1 or PHASE stage.
Usage
$$1 tmax1 (tmadm): txrollback(txr) | txcommit(txc) [-w] [-y]
<upper-global-xid><lower-global-xid>
Item | Description |
---|---|
[-w] | Used for a domain sub-transaction. |
[-y] | Does not go through the checking process for txcommit / txrollback. |
upper-global-xid | First 4 bytes of gtid of xid to process. |
lower-global-xid | Last 4 bytes of gtid of xid to process. |
Txcommit and txrollback are used to reprocess a transaction that is queried via txquery. After reprocessing, it is important to check the result through txquery.
The wsgwreload command of tmadmin is used to modify the configuration of service or web service gateway at runtime. Once the command is executed, the web service gateway does not respond to new service requests. It only completes processing services that are in progress, and then applies the changed settings and resumes service processing.
Usage
$$1 tmax1 (tmadm): wsgwreload [-i svrid[svrid]]
Option | Description |
---|---|
[ -i svrid [ svrid]] | list of Svrid's to apply the changes. |
The restart command terminates the currently running server processes and restarts as many as MIN number of server processes.
Usage
$$1 tmax1 (tmadm): restart [-v[server_name]] [-g[server_group_name]]
Option | Description |
---|---|
[-v[server_name]] | Restarts the specified server. |
[-g[server_group_name]] | Restarts the servers of the specified server group. |
Example
The following is an example of using the restart command.
$$2 tmaxc1 (tmadm): restart -v svr01021 >> suspend ok >> down ok >> boot ok >> resume ok >> reboot svr svr01021 finished $$2 tmaxc1 (tmadm): restart -g svg1 >> suspend ok >> down ok >> boot ok >> resume ok >> reboot svr svr01021 finished >> suspend ok >> down ok >> boot ok >> resume ok >> reboot svr svr01022 finished
The notify_reconnect_clh command notifies a running server process to reconnect to a specific CLH process. The server process attempts to reconnect to the CLH if it has been disconnected from the CLH. The discon command is abbreviated as nrc.
Usage
$$1 tmax1 (tmadm): nrc [clh_index] [spri_index ]
Option | Description |
---|---|
[clh_index] | CLH number that starts from 0. |
[spri_index] | Spri of the server process to which the notification is sent. |
Example
The following is an example of using the notify_reconnect_clh command.
$$2 tmaxc1 (tmadm): nrc 0 42 >> clh reconnect ok $$2 tmaxc1 (tmadm): nrc 0 -1 >> error clh reconnect