The Use of tmconfig(1)

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:

Getting Started with the tmconfig Command

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.

Setting Up the Environment

There are three environment variables that are used by tmconfig.

TUXCONFIG
As with all System/T client programs, the environment variable TUXCONFIG must be set to the pathname for the binary configuration file on the machine where tmconfig is being run.

TUXDIR
This is the root directory for the System/T binary files. tmconfig must be able to use $TUXDIR/udataobj/tpadmin to get a list of field names and identifiers in order to run properly.

EDITOR
This variable can be used to specify the desired text editor to be used for modifying parameter values. It is executed using the shell with a command line of the form

 $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

The tmconfig command has no command line options.

tmconfig runs as a System/T system client. This has several implications.

Basic Command Flow

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.

Fig. 1:tmconfig example, Retrieve *NETWORK entry

tmconfig

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]:

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.

tmconfig then prompts for the desired operation.


Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
   6) CLEAR BUFFER 7) QUIT [1]:

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.

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.

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.


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 "Input and Output Buffer" section below. The field names associated with each UBBCONFIG section are listed in tables in the tmconfig(1) manual pages. The semantics of the fields and associated ranges, default values, restrictions, etc. are described in ubbconfig(5). In most cases, the field name is the same as the KEYWORD in the UBBCONFIG file, prefixed with "TA_" (the exceptions are those fields that are TAGS for a section; they do not have names).

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.


Enter editor to correct?

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.


Perform operation [y]?

Entering RETURN or y causes the requested operation to be performed. When the operation completes, tmconfig prints the return value as in


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.

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:


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

Input packets consist of lines formatted as follows:


 fldname <tabs> fldval

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.

Results from Command Processing

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


Return value TAOK
is printed. Also, the field value for TA_STATUS in the output buffer will contain the message

Operation completed successfully.

If the command successfully updated the configuration, then


Return value TAUPDATED
is printed and the TA_STATUS field is set to

Update completed successfully.

If the command failed, then one of the following failure return values are printed.

TAEPERM
The UPDATE or ADD operation was selected but tmconfig is not running as the System/T administrator.

TAESYSTEM
A System/T error has occurred. The exact nature of the error is written to userlog(3c).

TAEOS
An operating system error has occurred. The exact nature of the error is written to userlog(3c).

TAETIME
A blocking timeout occurred. The input buffer is not updated so no information is returned for retrieval operations. The status of update operations can be checked by doing a retrieval on the record that was being updated.

TAERANGE
A field value out of range or is invalid.

TAEINCONSIS
A field value or set of field values are inconsistently specified (for example, specifying an existing RQADDR value for a different SRVGRP and SERVERNAME).

TAECONFIG
An error occurred while reading the TUXCONFIG file.

TAEDUPLICATE
The operation attempted to add a duplicate record.

TAENOTFOUND
The record specified for the operation was not found.

TAEREQUIRED
A field value is required but not present.

TAESIZE
A field value for a string field is too long.

TAEUPDATE
The operation attempted to do an update that is not allowed.

TAENOSPACE
The operation attempted to do an update but there was not enough space in the TUXCONFIG file and/or the Bulletin Board.

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.

Modifying Existing TUXCONFIG Parameters

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.

Changing a *NETWORK Entry

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.

Fig. 2: tmconfig example, Change NETWORK entry

tmconfig

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.

Changing *SERVERS and *SERVICES Entries

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.

Fig. 3:tmconfig example, Change *SERVERS and *SERVICES entries

tmconfig

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.

Adding New TUXCONFIG Entries

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.

Fig. 4: tmconfig example, Adding configuration entries

tmconfig

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


tmboot -B SITE3 -l SITE3

What You Cannot Reconfigure

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).