# Chapter 8. Workstation MIB

TUXEDO systems include the capability to require that clients run on a workstation for purposes of security, performance, and convenience. A network administrator can define the environment required to control the workstation clients using the Workstation MIB. This MIB is an extension of the TUXEDO Core MIB and specifies the information required to control access to a TUXEDO application from multiple workstations.

The TUXEDO Workstation subsystem consists of a workstation clients (WSC) library, the workstation listener (WSL) executable, and the workstation handler (WSH) executable. The Workstation MIB specifies information about workstation listeners and workstation handlers. The following table lists the two WSL and WSH groups through which you can manage a workstation listener and its associated workstation handler processes.

The Workstation MIB consists of the following groups.

Group Name | Description
--- | ---
`tuxTwshTbl` | Workstation Handler
`tuxTwslTbl` | Workstation Listener

You can define new workstation listeners in the `tuxTwslTbl` group, and you can obtain information about active workstation handlers from the `tuxTwshTbl` group.

## tuxTwshTbl

The `tuxTwshTbl` table represents runtime attributes of WSH client processes. These objects characterize workstation statistics specific to a particular WSH client process. Objects in this table are only accessible through a TUXEDO SNMP agent installed on the local machine. Objects are only accessible when the corresponding WSH is active.

Variable Name | Object ID
--- | ---
`tuxTwshTaClientId` | .1.3.6.1.4.1.140.300.1.1.1.1
`tuxTwshTaWshClientId` | .1.3.6.1.4.1.140.300.1.1.1.2
`tuxTwshTaSrvGrp` | .1.3.6.1.4.1.140.300.1.1.1.3
`tuxTwshTaSrvId` | .1.3.6.1.4.1.140.300.1.1.1.4
`tuxTwshTaGrpNo` | .1.3.6.1.4.1.140.300.1.1.1.5
`tuxTwshTaState` | .1.3.6.1.4.1.140.300.1.1.1.6
`tuxTwshTaLmid` | .1.3.6.1.4.1.140.300.1.1.1.7
`tuxTwshTaPid` | .1.3.6.1.4.1.140.300.1.1.1.8
`tuxTwshTaNaddr` | .1.3.6.1.4.1.140.300.1.1.1.9
`tuxTwshTaHwClients` | .1.3.6.1.4.1.140.300.1.1.1.10
`tuxTwshTaMultiplex` | .1.3.6.1.4.1.140.300.1.1.1.11
`tuxTwshTaCurClients` | .1.3.6.1.4.1.140.300.1.1.1.12
`tuxTwshTaTimeleft` | .1.3.6.1.4.1.140.300.1.1.1.13
`tuxTwshTaActive` | .1.3.6.1.4.1.140.300.1.1.1.14
`tuxTwshTaTotacttime` | .1.3.6.1.4.1.140.300.1.1.1.15
`tuxTwshTaTotidltime` | .1.3.6.1.4.1.140.300.1.1.1.16
`tuxTwshTaCurwork` | .1.3.6.1.4.1.140.300.1.1.1.17
`tuxTwshTaFlowcnt` | .1.3.6.1.4.1.140.300.1.1.1.18
`tuxTwshTaNumblockQ` | .1.3.6.1.4.1.140.300.1.1.1.19
`tuxTwshTaRcvdByt` | .1.3.6.1.4.1.140.300.1.1.1.20
`tuxTwshTaRcvdNum` | .1.3.6.1.4.1.140.300.1.1.1.21
`tuxTwshTaSentByt` | .1.3.6.1.4.1.140.300.1.1.1.22
`tuxTwshTaSentNum` | .1.3.6.1.4.1.140.300.1.1.1.23

### tuxTwshTaClientId

> #### Syntax

> `DisplayString` ( `SIZE` (`1..78`) )

> #### Access

> read-only

> #### Description

> Client identifier for this WSH. The data in this field should not be interpreted directly by the end user except for equality comparison.

### tuxTwshTaWshClientId

> #### Syntax

> `DisplayString` ( `SIZE` (`1..78`) )

> #### Access

> read-only

> #### Description

> Client identifier for this WSH. The data in this field should not be interpreted directly by the end user except for equality comparison. Value is same as `tuxTwshTaClientId`.

### tuxTwshTaSrvGrp

> #### Syntax

> `DisplayString` ( `SIZE` (`1..30`) )

> #### Access

> read-only

> #### Description

> Logical name of the server group for the associated WSL.

### tuxTwshTaSrvId

> #### Syntax

> `INTEGER``(1..30001)`

> #### Access

> read-only

> #### Description

> Unique (within the server group) server identification number for the associated WSL.

### tuxTwshTaGrpNo

> #### Syntax

> `INTEGER` `(1..30000)`

> #### Access

> read-only

> #### Description

> Group number.

### tuxTwshTaState

> #### Syntax

> `INTEGER { active(1), suspended(2), dead(3) }`

> #### Access

> read-write

> #### Description

> State for the WSH client within the application. Any state defined for the `tuxTclientTbl` group may be returned or set. State changes to the `suspended(2)` state are transitive to all clients associated with this WSH as is the resetting of a `suspended(2)` WSH to `active(1)`. Additionally, `suspended(2)` WSH clients will not be assigned any additional incoming clients by the WSL.

> Note that the state of a WSH client may not be set to `dead(3)` when accessing the `tuxTclientTbl` group; however, the state transition to `dead(3)` is allowed via the `tuxTwshTbl` group and will result in all connections being handled by the targeted WSH to be dropped abortively.

### tuxTwshTaLmid

> #### Syntax

> `DisplayString` ( `SIZE` (`1..30`) )

> #### Access

> read-only

> #### Description

> Current logical machine on which the WSH is running.

### tuxTwshTaPid

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Native operating system process identifier for the WSH client.

### tuxTwshTaNaddr

> #### Syntax

> `DisplayString` ( `SIZE` (`1..78`) )

> #### Access

> read-only

> #### Description

> Network address of workstation handler. Hexadecimal addresses are converted to an ASCII format with a leading `0x`.

### tuxTwshTaHwClients

> #### Syntax

> `INTEGER` ( `1..32767` )

> #### Access

> read-only

> #### Description

> High water number of clients accessing application via this WSH.

### tuxTwshTaMultiplex

> #### Syntax

> `INTEGER` ( `1..32767` )

> #### Access

> read-only

> #### Description

> Maximum number of clients that may access the application via this WSH.

### tuxTwshTaCurClients

> #### Syntax

> `INTEGER` ( `1..32767` )

> #### Access

> read-only

> #### Description

> Current number of clients accessing application via this WSH.

### tuxTwshTaTimeleft

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> A non-0 value for this attribute indicates that the WSH has been assigned a newly connecting workstation client that has the indicated amount of time, in seconds, to complete the initialization process with the WSH.

### tuxTwshTaActive

> #### Syntax

> `INTEGER { yes(1), no(2), unknown(3) }`

> #### Access

> read-only

> #### Description

> A value of `yes(1)` indicates that the WSH is currently performing work on behalf of one of its associated workstation clients. A value of `no(2)` indicates that the WSH is currently waiting for work to perform on behalf of one of its associated workstation clients.

### tuxTwshTaTotacttime

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Time, in seconds, that the WSH has been active since it started processing.

### tuxTwshTaTotidltime

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Time, in seconds, that the WSH has been idle since it started processing.

### tuxTwshTaCurwork

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Amount of work processed by this WSH since the last WSH assignment by the WSL. This value is used by the WSL to load balance new incoming connections amongst a set of WSH processes.

### tuxTwshTaFlowcnt

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Number of times flow control has been encountered by this WSH. This attribute should be considered only in relation to recent past values as it may wrap around during the lifetime of the WSH.

### tuxTwshTaNumblockQ

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Number of times this WSH has been unable to enqueue a message to a local UNIX system message queue due to queue blocking conditions. This attribute should be considered only in relation to recent past values as it may wrap around during the lifetime of the WSH.

### tuxTwshTaRcvdByt

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Number of bytes received from the network by this WSH from all of its present and past workstation clients. This attribute should be considered only in relation to recent past values as it may wrap around during the lifetime of the WSH.

### tuxTwshTaRcvdNum

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Number of TUXEDO System/T messages received from the network by this WSH from all of its present and past workstation clients. This attribute should be considered only in relation to recent past values as it may wrap around during the lifetime of the WSH.

### tuxTwshTaSentByt

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Number of bytes sent to the network by this WSH to all of its present and past workstation clients. This attribute should be considered only in relation to recent past values as it may wrap around during the lifetime of the WSH.

### tuxTwshTaSentNum

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Number of TUXEDO System/T messages sent to the network by this WSH to all of its present and past workstation clients. This attribute should be considered only in relation to recent past values as it may wrap around during the lifetime of the WSH.

## tuxTwslTbl

The `tuxTwslTbl` table represents configuration and runtime attributes of WSL server processes configured to manage workstation groups. These attribute values identify and characterize workstation-specific configuration attributes for WSL `tuxTsrvrTbl` objects within the application. To create a new row in this table, use a SET request that specifies the values for at least `tuxTwslTaSrvGrp`, `tuxTwslTaSrvId`, and `tuxTwslTaNaddr`.

Variable Name | Object ID
--- | ---
`tuxTwslTaSrvGrp` | .1.3.6.1.4.1.140.300.1.2.1.1
`tuxTwslTaSrvId` | .1.3.6.1.4.1.140.300.1.2.1.2
`tuxTwslTaGrpNo` | .1.3.6.1.4.1.140.300.1.2.1.3
`tuxTwslTaState` | .1.3.6.1.4.1.140.300.1.2.1.4
`tuxTwslTaLmid` | .1.3.6.1.4.1.140.300.1.2.1.5
`tuxTwslTaPid` | .1.3.6.1.4.1.140.300.1.2.1.6
`tuxTwslTaDevice` | .1.3.6.1.4.1.140.300.1.2.1.7
`tuxTwslTaNaddr` | .1.3.6.1.4.1.140.300.1.2.1.8
`tuxTwslTaWshName` | .1.3.6.1.4.1.140.300.1.2.1.9
`tuxTwslTaMinHandlers` | .1.3.6.1.4.1.140.300.1.2.1.10
`tuxTwslTaMaxHandlers` | .1.3.6.1.4.1.140.300.1.2.1.11
`tuxTwslTaMultiplex` | .1.3.6.1.4.1.140.300.1.2.1.12
`tuxTwslTaMaxIdleTime` | .1.3.6.1.4.1.140.300.1.2.1.13
`tuxTwslTaMaxInitTime` | .1.3.6.1.4.1.140.300.1.2.1.14
`tuxTwslTaClOpt` | .1.3.6.1.4.1.140.300.1.2.1.15
`tuxTwslTaEnvFile` | .1.3.6.1.4.1.140.300.1.2.1.16
`tuxTwslTaGrace` | .1.3.6.1.4.1.140.300.1.2.1.17
`tuxTwslTaMaxGen` | .1.3.6.1.4.1.140.300.1.2.1.18
`tuxTwslTaRcmd` | .1.3.6.1.4.1.140.300.1.2.1.19
`tuxTwslTaRestart` | .1.3.6.1.4.1.140.300.1.2.1.20
`tuxTwslTaSequence` | .1.3.6.1.4.1.140.300.1.2.1.21
`tuxTwslTaCurHandlers` | .1.3.6.1.4.1.140.300.1.2.1.22
`tuxTwslTaHwHandlers` | .1.3.6.1.4.1.140.300.1.2.1.23
`tuxTwslTaWsProto` | .1.3.6.1.4.1.140.300.1.2.1.24
`tuxTwslTaSuspended` | .1.3.6.1.4.1.140.300.1.2.1.25
`tuxTwslTaViewRefresh` | .1.3.6.1.4.1.140.300.1.2.1.26
`tuxTwslTaKeepAlive` | .1.3.6.1.4.1.140.300.1.2.1.28
`tuxTwslTaNetTimeOut` | .1.3.6.1.4.1.140.300.1.2.1.29

### tuxTwslTaSrvGrp

> #### Syntax

> `DisplayString` ( `SIZE`(`1..30`) )

> #### Access

> read-write

> #### Description

> Logical name of the server group. Server group names cannot contain an asterisk (*), comma, or colon.

> Note: This object can be updated only during row creation.

### tuxTwslTaSrvId

> #### Syntax

> `INTEGER` (`1..30001`)

> #### Access

> read-write

> #### Description

> Unique (within the server group) server identification number.

> Note: This object can be updated only during row creation.

### tuxTwslTaGrpNo

> #### Syntax

> `INTEGER` (`1..30001`)

> #### Access

> read-only

> #### Description

> Group number associated with this servers group.

### tuxTwslTaState

> #### Syntax

> `INTEGER { active(1), inactive(2), migrating(3), cleaning(4), restarting(5), suspended(6), partitioned(7), dead(8), invalid(9) }`

> #### Access

> read-write

> #### Description

> State for the WSL server within the application. Any state defined for the `tuxTsrvrTbl` group may be returned or set as indicated.

### tuxTwslTaLmid

> #### Syntax

> `DisplayString` ( `SIZE` (`1..30`) )

> #### Access

> read-only

> #### Description

> Current logical machine on which the server is running.

### tuxTwslTaPid

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Native operating system process identifier for the WSL server.

### tuxTwslTaDevice

> #### Syntax

> `DisplayString` ( `SIZE` (`0..78`) )

> #### Access

> read-write

> #### Description

> Device name to be used by the WSL process to access the network. This is a required value for access to a network via a TLI-based TUXEDO System/T binary. This attribute is not needed for sockets-based TUXEDO System/T binaries.

### tuxTwslTaNaddr

> #### Syntax

> `DisplayString` ( `SIZE`(`1..78`) )

> #### Access

> read-write

> #### Description

> Specifies the complete network address to be used by the WSL process as its listening address. The listening address for a WSL is the means by which it is contacted by workstation client processes participating in the application.

> If string has the form `0xhex-digits` or `\\xhex-digits`, it must contain an even number of valid hexadecimal digits. These forms are translated internally into a character array containing the hexadecimal representations of the string specified.

### tuxTwslTaWshName

> #### Syntax

> `DisplayString` ( `SIZE` (`1..78`) )

> #### Access

> read-write

> #### Description

> The name of the executable providing workstation handler services for this workstation listener. The default value for this is WSH, which corresponds to the system provided workstation handler. Workstation handlers may be customized using the command `buildwsh`.

### tuxTwslTaMinHandlers

> #### Syntax

> `INTEGER` (`0..256`)

> #### Access

> read-write

> #### Description

> The minimum number of handlers that should be available in conjunction with this WSL at any given time. The WSL will start this many WSHs immediately upon being activated and will not deplete the supply of WSHs below this number until the administrator issues a shutdown to the WSL. Modifications to this attribute for a running WSL may cause additional handlers to be activated.

### tuxTwslTaMaxHandlers

> #### Syntax

> `INTEGER` (`0..32767`)

> #### Access

> read-write

> #### Description

> The maximum number of handlers that should be available in conjunction with this WSL at any given time. Handlers are started as necessary to meet the demand of workstation clients attempting to access the system. This attribute must be greater than or equal to the setting for the minimum number of handlers.

### tuxTwslTaMultiplex

> #### Syntax

> `INTEGER` (`0..32767`)

> #### Access

> read-write

> #### Description

> Maximum number of clients that are to be supported by any one handler process concurrently.

### tuxTwslTaMaxIdleTime

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> Maximum amount of time, in minutes, that a workstation client is permitted to be idle before it will be abortively disconnected from the application by the handler. A value of 0 allows clients to be idle as long as they wish without being timed out.

### tuxTwslTaMaxInitTime

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> The minimum number of seconds that should be allowed for a workstation client to complete initialization processing through the WSH before being timed out by the WSL.

### tuxTwslTaClOpt

> #### Syntax

> `DisplayString` ( `SIZE` (`0..128`) )

> #### Access

> read-write

> #### Description

> Command-line options to be passed to WSL server when it is activated. See the `servopts`(5) reference page for details.

> Note: Runtime modifications to this attribute will not affect a running WSL server. Server-specific options (i.e., those after a double-dash "--") may not be set and will not be returned.

### tuxTwslTaEnvFile

> #### Syntax

> `DisplayString` ( `SIZE` (`0..78`) )

> #### Access

> read-write

> #### Description

> WSL server-specific environment file. See `tuxTmachineEnvFile` for a complete discussion of how this file is used to modify the environment.

> Note: Runtime modifications to this attribute will not affect a running WSL server.

### tuxTwslTaGrace

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> The period of time, in seconds, over which the `tuxTwslTaMaxGen` limit applies. This attribute is meaningful only for restartable WSL servers, i.e., if the `tuxTwslTaRestart` attribute is set to `yes(1)`. When a restarting server would exceed the `tuxTwslTaMaxGen` limit but the `tuxTwslTaGrace` period has expired, the system resets the current generation (`tuxTsrvrGeneration`) to 1 and resets the initial boot time (`tuxTsrvrTimeStart`) to the current time. A value of 0 for this attribute indicates that the WSL server should always be restarted.

### tuxTwslTaMaxGen

> #### Syntax

> `INTEGER` (`0..256`)

> #### Access

> read-write

> #### Description

> Number of generations allowed for a restartable WSL server (`tuxTwslTaRestart == yes(1)`) over the specified grace period (`tuxTwslTaGrace`). The initial activation of the WSL server counts as one generation and each restart also counts as one. Processing after the maximum generations is exceeded is discussed above with respect to `tuxTwslTaGrace`.

### tuxTwslTaRcmd

> #### Syntax

> `DisplayString` ( `SIZE`(`0..78`) )

> #### Access

> read-write

> #### Description

> Application specified command to be executed in parallel with the system restart of an application server. This command must be an executable file in the native operating system.

### tuxTwslTaRestart

> #### Syntax

> `INTEGER { yes(1), no(2) }`

> #### Access

> read-write

> #### Description

> Restartable (`yes(1)`) or non-restartable (`no(2)`) WSL server. If server migration is specified for this server group (`tuxTdomainOptions = migrate(2)` and `tuxTgroupLMID` with alternate site), then this attribute must be set to `yes(1)`.

### tuxTwslTaSequence

> #### Syntax

> `INTEGER` (`1..10000`)

> #### Access

> read-write

> #### Description

> Specifies when this server should be booted (`tmboot`(1)) or shutdown (`tmshutdown`(1)) relative to other servers. If two servers are given the same sequence number, it is possible for `tmboot`(1) to boot them in parallel and for `tmshutdown`(1) to shut them down in parallel. `tuxTwslTbl` instances added without a `tuxTwslTaSequence` attribute specified or with an invalid value will have one generated for them that is 10,000 or more and is higher than any other automatically selected default value. Servers are booted by `tmboot`(1) in increasing order of sequence number and shutdown by `tmshutdown`(1) in decreasing order. Runtime modifications to this attribute affect only `tmboot`(1) and `tmshutdown`(1) and will affect the order in which running servers may be shutdown by a subsequent invocation of `tmshutdown`(1).

### tuxTwslTaCurHandlers

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Number of currently active handlers associated with this WSL.

### tuxTwslTaHwHandlers

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Maximum number of currently active handlers associated with this WSL at any one time.

### tuxTwslTaWsProto

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The TUXEDO System/T /WS protocol version number for this /WS group. Note that /WS clients connecting to this group may themselves have a different protocol version number associated with them.

### tuxTwslTaSuspended

> #### Syntax

> `INTEGER { new(1), all(2), none(3) }`

> #### Access

> read-write

> #### Description

> A value of `new(1)` indicates that new incoming clients may not connect through this `tuxTwslTbl` instance. A value of `all(2)` indicates that workstation clients already connected to the application through this WSL have been `suspended(2)` (see `tuxTclientState`) in addition to disallowing new incoming connections. A value of `none(3)` indicates that no suspension characteristics are in effect.

### tuxTwslTaViewRefresh

> #### Syntax

> `INTEGER { yes(1), no-value-returned(2) }`

> #### Access

> read-write

> #### Description

> Setting a value of `yes(1)` will cause all active WSHs in the /WS group to refresh their VIEW buffer type cache. A `GET` request on this object always returns `no`-value-returned`(2)` and does not mean anything. This object has meaning only for `SET` requests.

### tuxTwslTaKeepAlive

> #### Syntax

> `INTEGER {client(1), handler(2), both(3), none(4), not-available(5)}`

> #### Access

> read-write

> #### Description

> The network "keep alive" option will be configured for the client, the handler, or both the client and the handler, or not on either side of the connection. Changing this value only affects connections that will be established in the future. This object is supported only on TUXEDO 6.4 or later.

### tuxTwslTaNetTimeOut

> #### Syntax

> `INTEGER` `(0..35204650)`

> #### Access

> read-write

> #### Description

> The minimum number of seconds that should be allowed for a workstation client to wait for receiving a response from WSL/WSH. A value of 0 indicates no network time-out. Changing this value affects only connections established in the future. This object is supported only on TUXEDO 6.4. `-1` is returned if the object is not available.