As the chapter title says, this chapter deals with how to use the interactive reconfiguration program, tmconfig(1).
With tmconfig, the administrator can retrieve and update configuration parameters for a running application and add new entries to the configuration that can subsequently be booted, all without shutting down the entire configuration.
The major sections of this chapter are:
An overview of the use of the tmconfig command
Updating existing configuration parameters
Adding new configuration entries
What cannot be reconfigured dynamically (while the application is running)
tmconfig
is a command interpreter that provides for the inspection
and modification of the TUXCONFIG and its associated
entities while the application is running. This means that
existing parameters can be modified and new machines, servers, etc.
can be added without shutting down the entire application.
tmconfig has an interactive interface that combines the
use of prompts, editing parameter values using a text editor chosen by the
administrator, state information that permits browsing through
the configuration file information sequentially or directly
accessing the desired record, and a simple parameter name/value format.
The TUXCONFIG file is updated on all nodes in the application
that are currently booted, and will be propagated automatically
to new machines as they are booted.
The following sections give an overview of using
tmconfig before going on to actual examples based
on the UBBCONFIG file that was presented in the previous chapter.
You should have a copy of the
tmconfig(1) and
ubbconfig(5)
manual pages handy as you continue to read this section.
The input and output field names corresponding to the UBBCONFIG
parameters and reconfiguration restrictions are listed
in the
tmconfig(1) manual pages.
The
ubbconfig(5) manual pages are the final authority on
the semantics, range values, and validations of configuration
parameters.
There are three environment variables that are used by
tmconfig.
The tmconfig command has no command line options.
tmconfig runs as a System/T system client. This has several
implications.
The command will fail if it cannot allocate
a TPINIT typed buffer.
The username associated with the client is the login
name of the user (and the command fails if this cannot be determined).
For a secure application (with the SECURITY parameter in the
UBBCONFIG file), tmconfig prompts for the application
password (and fails if it cannot get the password).
If not run from a terminal, tmconfig will try to use the APP_PW
environment variable.
tmconfig ignores all unsolicited messages.
If tmconfig cannot register as a client, the program
will print an error message containing tperrno and exit.
Normally, you should check the userlog in this case to determine
the cause. The most likely causes are that TUXCONFIG is not
set correctly or that the system is not booted on the machine
where tmconfig is being run.
The client name that appears in printclient in tmadmin
will be
"tpsysadm."
The basic command flow is to select a UBBCONFIG section and
operation, edit the input buffer to provide any necessary
input values, and confirm that the operation should be done.
The result of the operation is printed to the standard output
and can be used as input for the next operation.
This sequence continues until the administrator selects
the quit operation. At that point, it is possible to make
a backup copy of the UBBCONFIG before the program exits.
Figure 1 has a short example that demonstrates retrieving the first entry
in the *NETWORK section and writing out a backup copy of
UBBCONFIG to the file
backup.
All user input in this figure and the other figures in
this section will appear with bold typeface to make it stand out.
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [1]: 6
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [1]: 1
Enter editor to add/modify fields [n]? n
Perform operation [y]? y
Return value TAOK
Buffer contents:
TA_OPERATION 4
TA_SECTION 6
TA_OCCURS 1
TA_NETID 0
TA_STATUS LIBTUX_CAT:1137: Operation completed successfully
TA_LMID SITE1
TA_NADDR 0x00021112c00b6903
TA_BRIDGE /dev/tcp
TA_NLSADDR 0x00021111c00b6903
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [6]: 8
Unload TUXCONFIG file into ASCII backup [y]? y
Backup filename [UBBCONFIG]? backup
Configuration backed up in backup
tmconfig first prompts for the desired section of the configuration
upon which to operate.
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [1]:
tmconfig then prompts for the desired operation.
The default operation is printed in square brackets at the end
of the prompt. Entering RETURN will select this option.
The other options are selected by entering the number and RETURN.
The operations that may be selected are shown in Table 1.
For
ADD
and
UPDATE
operations, the effective user identifier must
match the System/T administrator user identifier (UID) for the machine
on which this program is run.
When a record is updated or added, all default values and validations
used by
tmloadcf(1) are enforced.
tmconfig then prompts whether or not to edit the input buffer.
When the administrator completes editing the input buffer,
tmconfig reads it.
If any errors occur, a syntax error will be printed and
tmconfig prompts whether or not to correct the problem.
If the problem is not corrected (response n), then the
input buffer will contain no fields. Otherwise, the editor is
executed again.
Finally, tmconfig asks if the operation should be done.
Entering RETURN or y causes the requested operation
to be performed.
When the operation completes, tmconfig prints the return value
as in
Entering break at any time restarts the interaction at
the prompt for the section.
When
"QUIT"
is selected, tmconfig prompts for creating a
backup ASCII version of the configuration:
Input packets consist of lines formatted as follows:
The field name is separated from the field value by one or more tabs.
Lengthy field values can be continued on the next line
by having the continuation line begin with one or more tabs
(which are dropped when read back into tmconfig).
Empty lines consisting of a single newline character are ignored.
If more than one line occurs for a particular field name, the first
occurrence is used and other occurrences are ignored.
To enter an unprintable character in the field value or to start
a field value with a tab,
use a backslash followed by the two-character
hexadecimal representation of the desired character (see
ASCII(5) in a UNIX System reference manual).
A space, for example, can be entered in the input data as
\20. A backslash can be entered using two backslash characters.
tmconfig recognizes all input in this format, but its greatest
usefulness is for non-printing characters.
Using the FIRST operation can reduce the amount of typing
that is needed. When adding a new entry to a section, instead of
typing in all of the parameter names and values, use the FIRST
operation to retrieve an existing entry for the UBBCONFIG
section. Then select the ADD operation and use the
text editor to modify the parameter values.
After the command is executed, the results are printed.
The results consist of the return value and the output buffer.
If the command was successful but no update was done, then
If the command successfully updated the configuration, then
If the command failed, then one of the following failure return values
are printed.
The first four return values in the list above indicate a problem
with permissions or a System/T communications error, not a problem
with the configuration parameters.
The remainder of the return values indicate a problem with
the configuration parameters or the running application.
When one of these latter error returns occurs,
the string field TA_STATUS will be set in the output buffer
indicating the problem.
If the problem is associated with a configuration parameter,
the parameter name will be printed as the TA_BADFLDNAME field value.
While facilities are provided for browsing through entries
in the configuration,
the most common uses will be to modify existing entries and add new entries.
The examples in this section will use the UBBCONFIG file presented
in the previous chapter to show how modifications can be made.
It is assumed that the administrative servers have been booted
on the MASTER machine,
SITE1
in the example, and that
tmconfig(1) is being run on that machine.
The text editor will be the default,
ed.
One common problem after generating a configuration and booting it
for the first time is that a network address is invalid.
This results in the BBL failing to boot on the remote side
and a userlog message indicating a failure to contact the listener.
In the example in Figure 2,
we assume that the network address should end
with
"690d"
instead of
"690c"
for SITE2.
We will use tmconfig to scan through the *NETWORK
section to find the entry for SITE2 and update it.
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [1]: 6
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [1]: 1
Enter editor to add/modify fields [n]? n
Perform operation [y]? y
Return value TAOK
Buffer contents:
TA_OPERATION 4
TA_SECTION 6
TA_OCCURS 1
TA_NETID 0
TA_STATUS LIBTUX_CAT:1137: Operation completed successfully
TA_LMID SITE1
TA_NADDR 0x00021112c00b6903
TA_BRIDGE /dev/tcp
TA_NLSADDR 0x00021111c00b6903
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [6]: 6
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [1]: 2
Enter editor to add/modify fields [n]? n
Perform operation [y]? y
Return value TAOK
Buffer contents:
TA_OPERATION 5
TA_SECTION 6
TA_OCCURS 1
TA_NETID 0
TA_STATUS LIBTUX_CAT:1137: Operation completed successfully
TA_LMID SITE2
TA_NADDR 0x00021112c00b690c
TA_BRIDGE /dev/tcp
TA_NLSADDR 0x00021111c00b690c
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [6]: 6
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [2]: 5
Enter editor to add/modify fields [n]? y
131
g/ADDR/s/690c/690d/p
TA_NADDR 0x00021112c00b690d
TA_NLSADDR 0x00021111c00b690d
w
131
q
Perform operation [y]? y
Return value TAUPDATED
Buffer contents:
TA_OPERATION 1
TA_SECTION 6
TA_OCCURS 1
TA_NETID 0
TA_STATUS LIBTUX_CAT:1136: Update completed successfully
TA_LMID SITE2
TA_NADDR 0x00021112c00b690d
TA_BRIDGE /dev/tcp
TA_NLSADDR 0x00021111c00b690d
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [6]: 8
Unload TUXCONFIG file into ASCII backup [y]? y
Backup filename [UBBCONFIG]?
Configuration backed up in UBBCONFIG
tmboot -B SITE2 -l SITE2
Using the FIRST and NEXT operations to find the record
is the lazy way. While it takes more operations, it does
not require
knowing the key field for the section.
We could have used the RETRIEVE operation by editing the input
buffer to provide "TA_LMID SITE2" as the key for the record to be
retrieved. Note that this update (and any update on a *NETWORK
entry) can be done only while the associated LMID is not booted.
Now let us assume that the entire configuration has been booted,
as was done at the end of the previous example.
By looking at the statistics, we decide that another BALC
server is needed and the priority for TBALC_BID should be increased
from 30 to 40. For the sake of the example in Figure 3, the server will
be added by using the MIN and MAX parameters
on the existing server entry, rather than adding a new server entry,
and dynamic reconfiguration will be used to make the change in
priority permanently in the TUXCONFIG file, rather than
using the tmadmin changeprio command where the
change is temporary.
Looking at the
tmconfig(1) manual pages for the *SERVERS
and *SERVICES section, it is possible to change these parameters
while the associated server is running but the changes will not
take effect until the server is booted again. To minimize down-time,
we can make the configuration changes, then shutdown and re-boot the server.
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [1]: 4
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [1]: 3
Enter editor to add/modify fields [n]? y
1
c
TA_SRVGRP BANKB2
TA_SRVID 25
w
29
q
Perform operation [y]? y
Return value TAOK
Buffer contents:
TA_OPERATION 3
TA_SECTION 3
TA_OCCURS 1
TA_SRVID 25
TA_SEQUENCE 0
TA_MIN 1
TA_MAX 1
TA_RQPERM 432
TA_RPPERM 432
TA_MAXGEN 5
TA_GRACE 86400
TA_STATUS LIBTUX_CAT:1137: Operation completed successfully
TA_SYSTEM_ACCESS FASTPATH
TA_ENVFILE
TA_SRVGRP BANKB2
TA_SERVERNAME BALC
TA_CLOPT -A
TA_CONV N
TA_RQADDR
TA_REPLYQ Y
TA_RCMD
TA_RESTART Y
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [4]:
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [3]: 5
Enter editor to add/modify fields [n]? y
269
/MIN/s/1/3/p
TA_MIN 3
/MAX/s/1/3/p
TA_MAX 3
w
269
q
Perform operation [y]? y
Return value TAUPDATED
Buffer contents:
TA_OPERATION 1
TA_SECTION 3
TA_OCCURS 1
TA_SRVID 25
TA_SEQUENCE 0
TA_MIN 3
TA_MAX 3
TA_RQPERM 432
TA_RPPERM 432
TA_MAXGEN 5
TA_GRACE 86400
TA_STATUS LIBTUX_CAT:1136: Update completed successfully
TA_SYSTEM_ACCESS FASTPATH
TA_ENVFILE
TA_SRVGRP BANKB2
TA_SERVERNAME BALC
TA_CLOPT -A
TA_CONV N
TA_RQADDR
TA_REPLYQ Y
TA_RCMD
TA_RESTART Y
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [4]: 5
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [5]: 6
Buffer cleared
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [5]:
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [6]: 3
Enter editor to add/modify fields [n]? y
1
a
TA_SERVICENAME TBALC_BID
w
26
q
Perform operation [y]?
Return value TAOK
Buffer contents:
TA_OPERATION 3
TA_SECTION 4
TA_OCCURS 1
TA_LOAD 50
TA_PRIO 30
TA_TRANTIME 30
TA_STATUS LIBTUX_CAT:1137: Operation completed successfully
TA_SRVGRP
TA_SERVICENAME TBALC_BID
TA_BUFTYPE ALL
TA_AUTOTRAN N
TA_ROUTINGNAME b_id
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [5]:
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [3]: 5
Enter editor to add/modify fields [n]? y
151
/PRIO/s/30/40/p
TA_PRIO 40
w
151
q
Perform operation [y]?
Return value TAUPDATED
Buffer contents:
TA_OPERATION 1
TA_SECTION 4
TA_OCCURS 1
TA_LOAD 50
TA_PRIO 40
TA_TRANTIME 30
TA_STATUS LIBTUX_CAT:1136: Update completed successfully
TA_SRVGRP
TA_SERVICENAME TBALC_BID
TA_BUFTYPE ALL
TA_AUTOTRAN N
TA_ROUTINGNAME b_id
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [5]: 8
Unload TUXCONFIG file into ASCII backup [y]?
Backup filename [UBBCONFIG]?
Configuration backed up in UBBCONFIG
tmshutdown -s BALC -g BANKB2
tmboot -s BALC -g BANKB2
To minimize output, the RETRIEVE operation
in Figure 3 is done to
retrieve the desired entries directly.
First, the entry for the server is retrieved by using the server group
and the server id parameters. The MIN and MAX values
are both changed to 3 and the update operation is done.
Note that in the sample configuration,
except for the conversational server,
AUDITC,
the SRVID values do not have
gaps so that setting MAX and MIN cannot be done
for the other *SERVERS entries (in this example, the server
chosen has the highest SRVID value so that it works).
The buffer is cleared and the service entry is retrieved
by the service name. Note that the default value is used
where possible (RETURN is entered without any value).
Finally, the priority is changed to 40, the update is done,
and a backup copy of the configuration is stored in UBBCONFIG.
After completing tmconfig, tmshutdown and tmboot
are used to shutdown the existing server process and boot the three
new server processes with the changed priority for the TBALC_BID
service.
In Figure 3, it was necessary to shutdown the server for the
parameters to take effect (even though the configuration update
was allowed while the server was booted).
When updating a parameter for a *GROUPS entry
(for example, updating the OPENINFO parameter), it is necessary
to shutdown the entire group (if any server in the group is booted)
before changing the configuration.
To change a parameter in the *MACHINES or *NETWORK section,
it is necessary to shutdown the entire machine before changing
the configuration. If a change is to be made to the *MACHINES
entry for the MASTER, then the ACTING MASTER should
be migrated to the ACTING BACKUP, as described in the previous
chapter, before shutting down the MASTER.
Another common usage of tmconfig is to add new entries to
the configuration.
In the example in Figure 4, we will add the SIMPAPP application
to the BANKAPP application that we have been using.
The SIMAPP application consists of a single server,
TOUPPER, with a single service, also called
TOUPPER. To make it more interesting, we will add it on a
new machine, implying that a new *MACHINES entry and
a new *NETWORK entry are needed.
In Figure 4, a *MACHINES entry will be added for
mchn2, which is similar in directory structure to mchn1
except the root directory is under
/usr,
the machine type is
sparc,
the LMID name will be SITE3,
and the TLOGDEVICE and TLOGNAME are not needed.
A *NETWORK entry will be added similar to the entry for
SITE1 (same port numbers for TCP/IP) but the address will end
with
"690f"
instead of
"6903."
A *GROUPS entry will be added
for group 3, without any TMS.
A *SERVERS entry, similar to the entry for group BANKB1 and
server id 5, will be added followed by a new *SERVICES entry.
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [1]: 2
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [1]:
Enter editor to add/modify fields [n]?
Perform operation [y]?
Return value TAOK
Buffer contents:
TA_OPERATION 4
TA_SECTION 1
TA_OCCURS 1
TA_PERM 432
TA_MAXACCESSERS 40
TA_MAXGTT 20
TA_MAXCONV 10
TA_MAXWSCLIENTS 0
TA_TLOGSIZE 100
TA_UID 4196
TA_GID 601
TA_TLOGOFFSET 0
TA_TUXOFFSET 0
TA_STATUS LIBTUX_CAT:1137: Operation completed successfully
TA_PMID mchn1
TA_LMID SITE1
TA_TUXCONFIG /home/apps/bank/tuxconfig
TA_TUXDIR /home/tuxroot
TA_APPDIR /home/apps/bank
TA_TYPE 3B2
TA_TLOGDEVICE /home/apps/bank/TLOG
TA_TLOGNAME TLOG
TA_ULOGPFX /home/apps/bank/ULOG
TA_ENVFILE /home/apps/bank/ENVFILE
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [2]:
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [1]: 4
Enter editor to add/modify fields [n]? y
491
g/home/s//usr/p
TA_TUXCONFIG /usr/apps/bank/tuxconfig
TA_TUXDIR /usr/tuxroot
TA_APPDIR /usr/apps/bank
TA_TLOGDEVICE /usr/apps/bank/TLOG
TA_ULOGPFX /usr/apps/bank/ULOG
TA_ENVFILE /usr/apps/bank/ENVFILE
g/TLOG/d
/SITE1/s//SITE3/p
TA_LMID SITE3
/3B2/s//SPARC/p
TA_TYPE SPARC
/mchn1/s//mchn2/p
TA_PMID mchn2
w
412
q
Perform operation [y]?
Return value TAUPDATED
Buffer contents:
TA_OPERATION 2
TA_SECTION 1
TA_OCCURS 1
TA_PERM 432
TA_MAXACCESSERS 40
TA_MAXGTT 20
TA_MAXCONV 10
TA_MAXWSCLIENTS 0
TA_TLOGSIZE 100
TA_UID 4196
TA_GID 601
TA_TLOGOFFSET 0
TA_TUXOFFSET 0
TA_STATUS LIBTUX_CAT:1136: Update completed successfully
TA_PMID mchn2
TA_LMID SITE3
TA_TUXCONFIG /usr/apps/bank/tuxconfig
TA_TUXDIR /usr/tuxroot
TA_APPDIR /usr/apps/bank
TA_TYPE SPARC
TA_TLOGDEVICE
TA_TLOGNAME TLOG
TA_ULOGPFX /usr/apps/bank/ULOG
TA_ENVFILE /usr/apps/bank/ENVFILE
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [2]: 6
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [4]: 6
Buffer cleared
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [6]:
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [6]: 1
Enter editor to add/modify fields [n]?
Perform operation [y]?
Return value TAOK
Buffer contents:
TA_OPERATION 4
TA_SECTION 6
TA_OCCURS 1
TA_NETID 0
TA_STATUS LIBTUX_CAT:1137: Operation completed successfully
TA_LMID SITE1
TA_NADDR 0x00021112c00b6903
TA_BRIDGE /dev/tcp
TA_NLSADDR 0x00021111c00b6903
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [6]:
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [1]: 4
Enter editor to add/modify fields [n]? y
131
g/6903/s//690f/p
TA_NADDR 0x00021112c00b690f
TA_NLSADDR 0x00021111c00b690f
/SITE1/s//SITE3/p
TA_LMID SITE3
w
153
q
Perform operation [y]?
Return value TAUPDATED
Buffer contents:
TA_OPERATION 2
TA_SECTION 6
TA_OCCURS 1
TA_NETID 0
TA_STATUS LIBTUX_CAT:1136: Update completed successfully
TA_LMID SITE3
TA_NADDR 0x00021112c00b690f
TA_BRIDGE /dev/tcp
TA_NLSADDR 0x00021111c00b690f
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [6]: 3
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [4]: 6
Buffer cleared
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [3]:
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [6]: 4
Enter editor to add/modify fields [n]? y
1
c
TA_LMID SITE3
TA_SRVGRP GROUP3
TA_GRPNO 3
w
42
q
Perform operation [y]?
Return value TAUPDATED
Buffer contents:
TA_OPERATION 2
TA_SECTION 2
TA_OCCURS 1
TA_GRPNO 3
TA_TMSCOUNT 0
TA_STATUS LIBTUX_CAT:1136: Update completed successfully
TA_LMID SITE3
TA_SRVGRP GROUP3
TA_TMSNAME
TA_OPENINFO
TA_CLOSEINFO
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [3]: 4
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [4]: 6
Buffer cleared
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [4]:
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [6]: 3
Enter editor to add/modify fields [n]? y
1
c
TA_SRVGRP BANKB1
TA_SRVID 5
w
28
q
Perform operation [y]?
Return value TAOK
Buffer contents:
TA_OPERATION 3
TA_SECTION 3
TA_OCCURS 1
TA_SRVID 5
TA_SEQUENCE 0
TA_MIN 1
TA_MAX 1
TA_RQPERM 432
TA_RPPERM 432
TA_MAXGEN 5
TA_GRACE 86400
TA_STATUS LIBTUX_CAT:1137: Operation completed successfully
TA_SYSTEM_ACCESS FASTPATH
TA_ENVFILE
TA_SRVGRP BANKB1
TA_SERVERNAME XFER
TA_CLOPT -A
TA_CONV N
TA_RQADDR
TA_REPLYQ Y
TA_RCMD
TA_RESTART Y
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [4]:
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [3]: 4
Enter editor to add/modify fields [n]? y
268
/BANKB1/s//GROUP3/p
TA_SRVGRP GROUP3
/XFER/s//TOUPPER/p
TA_SERVERNAME TOUPPER
/SRVID/s/5/30/p
TA_SRVID 30
w
272
q
Perform operation [y]?
Return value TAUPDATED
Buffer contents:
TA_OPERATION 2
TA_SECTION 3
TA_OCCURS 1
TA_SRVID 30
TA_SEQUENCE 0
TA_MIN 1
TA_MAX 1
TA_RQPERM 432
TA_RPPERM 432
TA_MAXGEN 5
TA_GRACE 86400
TA_STATUS LIBTUX_CAT:1136: Update completed successfully
TA_SYSTEM_ACCESS FASTPATH
TA_ENVFILE
TA_SRVGRP GROUP3
TA_SERVERNAME TOUPPER
TA_CLOPT -A
TA_CONV N
TA_RQADDR
TA_REPLYQ Y
TA_RCMD
TA_RESTART Y
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [4]: 5
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [4]: 6
Buffer cleared
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [5]:
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [6]: 4
Enter editor to add/modify fields [n]? y
1
c
TA_SERVICENAME TOUPPER
TA_LOAD 10
TA_PRIO 20
w
45
q
Perform operation [y]?
Return value TAUPDATED
Buffer contents:
TA_OPERATION 2
TA_SECTION 4
TA_OCCURS 1
TA_LOAD 10
TA_PRIO 20
TA_TRANTIME 30
TA_STATUS LIBTUX_CAT:1136: Update completed successfully
TA_SRVGRP
TA_SERVICENAME TOUPPER
TA_BUFTYPE ALL
TA_AUTOTRAN N
TA_ROUTINGNAME
Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
5)SERVICES 6) NETWORK 7) ROUTING 8) QUIT [5]: q
Unload TUXCONFIG file into ASCII backup [y]?
Backup filename [UBBCONFIG]?
Configuration backed up in UBBCONFIG
At this point, the new *MACHINES, *NETWORK, *GROUPS, *SERVERS, and *SERVICES
entries have been added and can be booted using the command
While dynamic reconfiguration in this release will handle the most
important additions and updates on the configuration file,
there are some operations that cannot be done.
Updates cannot be done to the *ROUTING section
while the application is booted.
To update the ROUTING section, the application must be shut down.
Additions are permitted as long as the application was initially
configured with free space available in the bulletin board routing
tables through the MAXDRT, MAXRFT and MAXRTDATA *ROUTING section
parameters.
Records cannot be deleted from any section; deletions must
be done off-line.
It is possible to boot portions of a configuration avoiding the
entities that would be deleted if deletion was supported.
Key fields are defined for each section that are used to identify
the record upon which to operate.
These are shown in the
tmconfig(1) manual pages.
Key field values cannot be changed while the application is running.
Normally, it is sufficient to add a new entry with the new key
field value and use it instead of the old entry. In this case,
the old entry in the configuration would not be booted by
the administrator and the new entry would be used instead.
Most parameters cannot be updated while the related entity is booted.
For example, a *MACHINES or *NETWORK entry cannot be
changed while the associated
machine is booted (before shutting down the MASTER, make sure
to migrate it to the ACTING BACKUP).
A group entry cannot be changed if any server in that group is booted.
A server name, its type (conversational or not), and parameters
related to the message queues of a server
cannot be changed if the server is booted
(other server parameters may be changed any time but do
not take effect until the next time the server is booted).
A *SERVICES entry can be changed any time but the changes
do not take effect
until the next time the service is advertised.
Updating the *RESOURCES section is the most restricted.
The UID, GID, PERM, MAXACCESSERS, MAXGTT, and MAXCONV parameters
cannot be updated in the *RESOURCES section but can be updated
on a per machine basis.
The IPCKEY, MASTER, MODEL, OPTIONS, USIGNAL,
MAXSERVERS, MAXSERVICES, MAXBUFTYPE, and MAXBUFSTYPE parameters
cannot be changed.
When you attempt to update a parameter in the wrong
section (for example, updating the *MACHINES parameter
ENVFILE
while in the *RESOURCES section), the operation
will appear to succeed (that is,
tmconfig
will return
TAOK)
but the change will not appear in your unloaded
UBBCONFIG
file.
An update has been done only when
TAUPDATED
is returned.
With regard to interoperability, updates and additions are not
allowed to any site in an application if a R4.1 site is booted.
The R4.1 site must be shutdown before updates can be done. When the
updates are complete, the R4.1 site can be booted and the updated
TUXCONFIG will be automatically propagated to that node.
Based on the restrictions listed above, some forethought
is advised in setting parameters that cannot be easily changed.
In a multi-machine configuration, a backup for the MASTER
should always be specified, along with the MIGRATE option
(even if application server migration is not anticipated).
The MAXSERVERS and MAXSERVICES parameters
should be set high enough to allow for sufficient growth.
If the configuration is initially a single machine configuration
but may grow to more than one machine, then it is recommended that
the MP model be used, along with specifying the LAN
option and a network entry for the initial machine.
Parameters in the *MACHINES section should be set carefully
since updating them requires shutting down the machine to do so
(and switching the MASTER to the backup in the case of the
MASTER node).
Getting Started with the tmconfig Command
Setting Up the Environment
$EDITOR tmpfilename
so that it is possible for EDITOR to include both
the command name and command line options (for example, to set the
window size, editor options, etc.).
The setting of this environment variable is optional; the default
value is
"ed",
the command line editor, if not set.
Note that many full-screen editors will not function properly
without also setting the TERM environment variable.
tmconfig Command Execution
Basic Command Flow
Fig. 1:tmconfig example, Retrieve *NETWORK entry
tmconfig
The default selection appears in square brackets at the end of the prompt
and entering RETURN will select this default.
Initially, the default is the *RESOURCES
section. If a valid numeric value is entered, that value will
become the default until reset again.
Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
6) CLEAR BUFFER 7) QUIT [1]:
Table 1: tmconfig commands
Number
Command
Description
1
FIRST
Retrieve the first record from the specified section.
No key fields are needed (they are ignored if in the input buffer).
2
NEXT
Retrieve the next record from the specified section, based
on the key fields in the input buffer.
3
RETRIEVE
Retrieve the indicated record from the specified
section by key field(s).
4
ADD
Add the indicated record in the specified section.
Any fields not specified (unless required) take their default
values as specified in
ubbconfig(5).
The current value for all fields is returned in the output buffer.
This operation can only be done by the System/T administrator.
5
UPDATE
Update the record specified in the input
buffer in the selected section.
Any fields not specified in the input buffer remain unchanged.
The current value for all fields is returned in the input buffer.
This operation can only be done by the System/T administrator.
6
CLEAR BUFFER
Clear the input buffer
(all fields are deleted). After this operation,
tmconfig immediately prompts for the section again.
7
QUIT
Exit the program gracefully (the client is terminated).
A value of q for any prompt also exits the program.
Enter editor to add/modify fields [n]?
Entering a value of y will put the input buffer into
a temporary file and execute the text editor.
The input format is in field name/field value pairs and is
described in the
Enter editor to correct?
Perform operation [y]?
Return value TAOK
followed by the output buffer fields.
The process then begins again with a prompt for the section.
All output buffer fields are available in the input buffer
unless the buffer is cleared.
Unload TUXCONFIG file into ASCII backup [y]?
If RETURN or y is entered,
tmconfig prompts for the output file name in which to store
the UBBCONFIG backup.
Backup filename [UBBCONFIG]?
Entering RETURN will cause the backup file name to be
the default, UBBCONFIG; otherwise, the administrator
can enter an output file name.
On success, tmconfig indicates that a backup was created
and otherwise an error is printed.
Input and Output Buffer
fldname <tabs> fldval
Results from Command Processing
Return value TAOK
is printed. Also, the field value for TA_STATUS in the output buffer
will contain the message
Operation completed successfully.
Return value TAUPDATED
is printed and the
TA_STATUS
field is set to
Update completed successfully.
Modifying Existing TUXCONFIG Parameters
Changing a *NETWORK Entry
Fig. 2: tmconfig example, Change NETWORK entry
tmconfig
Changing *SERVERS and *SERVICES Entries
Fig. 3:tmconfig example, Change *SERVERS and *SERVICES entries
tmconfig
Adding New TUXCONFIG Entries
Fig. 4: tmconfig example, Adding configuration entries
tmconfig
tmboot -B SITE3 -l SITE3
What You Cannot Reconfigure