# Chapter 9. Application Queue MIB

The TUXEDO system incorporates the capability to use application queues for time-independent communication. The TUXEDO Application Queue MIB provides the administrative environment required for managing and controlling access to application queues. The Application Queue MIB defines the structure of the application queues.

In TUXEDO applications, messages are stored on a queue, and queues are defined within a particular queue space. Queueing and dequeuing is done within a transaction. The Application Queue MIB consists of five different groups for defining queue access, queues, messages, queues spaces, and queue transactions. The following table lists the groups for managing each of the queue components.

Group Name | Description
--- | ---
`tuxTAppQctrl` | Access control to application queues
`tuxTAppQTbl` | Application queues within a queue space
`tuxTAppQmsgTbl` | Messages within an application queue
`tuxTQspaceTbl` | Application queue spaces
`tuxTQtransTbl` | Transactions associated with application queues

## tuxTAppQctrl

This is a control MIB to enable controlled access to all Application Queue related MIB groups.

Variable Name | Object ID
--- | ---
`tuxTAppQctrlLmid` | .1.3.6.1.4.1.140.300.12.5.1
`tuxTAppQctrlQmConfig` | .1.3.6.1.4.1.140.300.12.5.2
`tuxTAppQctrlSpaceName` | .1.3.6.1.4.1.140.300.12.5.3
`tuxTAppQctrlQname` | .1.3.6.1.4.1.140.300.12.5.4
`tuxTAppQctrlMsgLoPrio` | .1.3.6.1.4.1.140.300.12.5.5
`tuxTAppQctrlMsgHiPrio` | .1.3.6.1.4.1.140.300.12.5.6
`tuxTAppQctrlMsgEndTime` | .1.3.6.1.4.1.140.300.12.5.7
`tuxTAppQctrlMsgStartTime` | .1.3.6.1.4.1.140.300.12.5.8

### tuxTAppQctrlLmid

> #### Syntax

> `INTEGER { local(1), all(2) }`

> #### Access

> read-write

> #### Description

> This applies to all Application Queue related MIB groups. The value of this object controls the machines for which the values are returned.

> If the value is `local(1)`, only the local host where the SNMP agent is running is considered; alternatively, all LMIDs known to the application are considered if the value is `all(2)`.

> The default value of this object is `local(1)`.

### tuxTAppQctrlQmConfig

> #### Syntax

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

> #### Access

> read-write

> #### Description

> This applies to all Application Queue related MIB groups. The value of this object controls the device for which the values are returned.

> The default value of this object is "*", in which case all known devices (which are a part of some group) are considered.

### tuxTAppQctrlSpaceName

> #### Syntax

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

> #### Access

> read-write

> #### Description

> This applies to all Application Queue related MIB groups. The value of this object controls the queue space for which the values are returned.

> The default value of this object is "*", in which case all queue spaces for the devices (qualified by `tuxTAppQctrlQmConfig`) are considered.

### tuxTAppQctrlQname

> #### Syntax

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

> #### Access

> read-write

> #### Description

> The value of this object controls the queue for which the values are returned. This applies to `tuxTAppQTbl` and `tuxTAppQmsgTbl`.

> The default value of this object is "*", in which case all queues for the devices (qualified by `tuxTAppQctrlQmConfig`) and queue spaces (qualified by `tuxTAppQctrlSpaceName`) are considered.

### tuxTAppQctrlMsgLoPrio

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> This object applies only to `tuxTAppQmsgTbl`. The lowest priority within which to search for occurrences of `tuxTAppQmsgTbl` instances. This is valid only for PRIO-based queues. By default, the minimum value of priority is considered. To revert to the default setting, set this object to `0`.

### tuxTAppQctrlMsgHiPrio

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> This object applies only to `tuxTAppQmsgTbl`. The highest priority within which to search for occurrences of `tuxTAppQmsgTbl` instances. This is valid only for PRIO-based queues. By default, the maximum value of priority is considered. To revert to the default setting, set this object to `0`.

### tuxTAppQctrlMsgEndTime

> #### Syntax

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

> #### Access

> read-write

> #### Description

> This object applies only to `tuxTAppQmsgTbl`. The end time within which to search for occurrences of `tuxTAppQmsgTbl` instances. The range is inclusive. This is valid only for TIME-based queues. The default value is the maximum number possible on that machine. To use the default setting, set this object to "*".

> `YY[MM[DD[hh[mm[ss]]]]]`
>   Specifies the year, month, date, hour, minute, and second respectively. Any value which is not specified defaults to its minimum value (e.g., 9506 is taken as 950601000000). The years 00 through 37 are treated as 2000 through 2037, 70 through 99 as 1970 through 1999, and 38 through 69 are invalid.

### tuxTAppQctrlMsgStartTime

> #### Syntax

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

> #### Access

> read-write

> #### Description

> This object applies only to `tuxTAppQmsgTbl`. The start time within which to search for occurrences of `tuxTAppQmsgTbl` instances. The range is inclusive. This is valid only for TIME-based queues. By default, the minimum time value is considered to be `0`. To use the default setting, set this object to "*".

> `YY[MM[DD[hh[mm[ss]]]]]`
>   Specifies the year, month, date, hour, minute, and second respectively. Any value which is not specified defaults to its minimum value (e.g., 9506 is taken as 950601000000). The years 00 through 37 are treated as 2000 through 2037, 70 through 99 as 1970 through 1999, and 38 through 69 are invalid.

## tuxTAppQTbl

The `tuxTAppQTbl` group represents application queues. One or more application queues may exist in a single application queue space. Objects in this table are only accessible through a TUXEDO SNMP agent installed on the local machine.

Creation of a New Queue - For creating a new queue(row), in this group the `SET` request should have the value of `tuxTAppQname`, `tuxTAppQspaceName`, and `tuxTAppQmConfig`. Also the value of `tuxTAppQgrpNo` (which is a part of the index) should be the corresponding group number for that queue space or "40000" (if no such group exists).

Note: For this and all other Application Queue related MIB groups there is a control MIB which can be used to filter the data returned as a part of all Application Queue related MIB groups. Please refer to `tuxTAppQctrl`.

To create a new row in this table, issue a SET request that specifies at least the values for `tuxTAppQname`, `tuxTAppQspaceName`, and `tuxTAppQmConfig`.

Variable Name | Object ID
--- | ---
`tuxTAppQname` | .1.3.6.1.4.1.140.300.12.1.1.1
`tuxTAppQspaceName` | .1.3.6.1.4.1.140.300.12.1.1.2
`tuxTAppQmConfig` | .1.3.6.1.4.1.140.300.12.1.1.3
`tuxTAppQlmid` | .1.3.6.1.4.1.140.300.12.1.1.4
`tuxTAppQgrpNo` | .1.3.6.1.4.1.140.300.12.1.1.5
`tuxTAppQstate` | .1.3.6.1.4.1.140.300.12.1.1.6
`tuxTAppQorder` | .1.3.6.1.4.1.140.300.12.1.1.7
`tuxTAppQcmd` | .1.3.6.1.4.1.140.300.12.1.1.8
`tuxTAppQcmdHw` | .1.3.6.1.4.1.140.300.12.1.1.9
`tuxTAppQcmdLw` | .1.3.6.1.4.1.140.300.12.1.1.10
`tuxTAppQmaxRetries` | .1.3.6.1.4.1.140.300.12.1.1.11
`tuxTAppQoutOfOrder` | .1.3.6.1.4.1.140.300.12.1.1.12
`tuxTAppQretryDelay` | .1.3.6.1.4.1.140.300.12.1.1.13
`tuxTAppQcurBlocks` | .1.3.6.1.4.1.140.300.12.1.1.14
`tuxTAppQcurMsg` | .1.3.6.1.4.1.140.300.12.1.1.15

### tuxTAppQname

> #### Syntax

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

> #### Access

> read-write

> #### Description

> Name of the application queue.

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

### tuxTAppQspaceName

> #### Syntax

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

> #### Access

> read-write

> #### Description

> Name of the application queue space containing the application queue.

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

### tuxTAppQmConfig

> #### Syntax

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

> #### Access

> read-write

> #### Description

> Absolute pathname of the file or device where the application queue space is located.

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

### tuxTAppQlmid

> #### Syntax

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

> #### Access

> read-write

> #### Description

> Identifier of the logical machine where the application queue space is located.

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

### tuxTAppQgrpNo

> #### Syntax

> `INTEGER``(1..29999)`

> #### Access

> read-write

> #### Description

> Group number of any server group for which this queue is a resource manager, in other words that group's openinfo string `tuxTgroupOpenInfo` contains the device name and queue space name for this queue.

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

### tuxTAppQstate

> #### Syntax

> `INTEGER { valid(1), invalid(2) }`

> #### Access

> read-write

> #### Description

> The values for `GET` and `SET` operations are as follows:

> `GET: valid(1)`
>   A `GET` operation retrieves information about the selected application queues. The following list describes the meaning of the `tuxTAppQstate` attribute returned in response to a `GET` request. States not listed will not be returned.

> `valid(1)`
>   The specified queue exists.

> `SET: invalid(2)`
>   A `SET` operation changes characteristics of the selected application queue or creates a new queue. The following list describes the meaning of the `tuxTAppQstate` attribute returned by a `SET` request. States not listed cannot be set.

> `invalid(2)`
>   Delete the specified queue. If the queue space has processes attached to it, the queue will not be deleted. In addition, if the queue has messages in it, it will not be deleted. Successful return leaves the object in the `invalid(2)` state.

### tuxTAppQorder

> #### Syntax

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

> #### Access

> read-write

> #### Description

> The order in which messages in the queue are to be processed. Legal values are `PRIO` or `TIME`, followed by a comma, optionally followed by another occurrence of `PRIO` or `TIME`, followed by one of the values `LIFO` or `FIFO`. If neither `FIFO` nor `LIFO` is specified, `FIFO` is assumed. If nothing is specified when a queue is created, the default is `FIFO`. For example, these are some legal settings:

> >     PRIO
> >     PRIO,TIME,LIFO
> >     TIME,PRIO,FIFO
> >     TIME,FIFO

### tuxTAppQcmd

> #### Syntax

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

> #### Access

> read-write

> #### Description

> The command to be automatically executed when the high water mark, `tuxTAppQcmdHw`, is reached. The command will be re-executed when the high water mark is reached again after the low water mark, `tuxTAppQcmdLw`, has been reached.

### tuxTAppQcmdHw

> #### Syntax

> `DisplayString`

> #### Access

> read-write

> #### Description

> The high water mark. Refer to `tuxTAppQcmdLw` for further information.

### tuxTAppQcmdLw

> #### Syntax

> `DisplayString`

> #### Access

> read-write

> #### Description

> The low water marks that control the automatic execution of the command specified in the `tuxTAppQcmd` attribute. Each is an integer greater than or equal to zero optionally followed by one of the following keyletters. The keyletters must be consistent for `tuxTAppQcmdHw` and `tuxTAppQcmdLw`.

> `b`
>   The high and low water marks pertain to the number of bytes used by messages in the queue.

> `B`
>   The high and low water marks pertain to the number of blocks used by messages in the queue.

> `m`
>   The high and low water marks pertain to the number of messages in the queue.

> `%`
>   The high and low water marks are expressed in terms of a percentage of queue capacity.

> For example, if `tuxTAppQcmdLw` is 50m and `tuxTAppQcmdHw` is 100m, then the command specified in `tuxTAppQcmd` will be executed when 100 messages are on the queue, and it will not be executed again until the queue has been drained below 50 messages and has filled again to 100 messages.

### tuxTAppQmaxRetries

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> The maximum number of retries for a failed queue message. When the number of retries is exhausted, the message is placed on the error queue of the associated application queue space. If there is no error queue, the message is dropped. The default is zero.

### tuxTAppQoutOfOrder

> #### Syntax

> `INTEGER { none(1), top(2), msgid(3) }`

> #### Access

> read-write

> #### Description

> The way in which out-of-order message processing is to be handled. The default is `none(1)`.

### tuxTAppQretryDelay

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> The delay, in seconds, between retries for a failed queue message. The default is zero.

### tuxTAppQcurBlocks

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The number of disk pages currently consumed by the queue.

### tuxTAppQcurMsg

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The number of messages currently in the queue.

## tuxTAppQmsgTbl

The `tuxTAppQmsgTbl` group represents messages stored in application queues. A message is not created by an administrator; instead, it comes into existence as a result of a call to `tpenqueue`(3). A message can be destroyed either by a call to `tpdequeue`(3) or by an administrator. In addition, certain attributes of a message can be modified by an administrator. For example, an administrator can move a message from one queue to another queue within the same queue space or change its priority.

Objects in this table are only accessible through a TUXEDO SNMP agent installed on the local machine.

Variable Name | Object ID
--- | ---
`tuxTAppQmsgId` | .1.3.6.1.4.1.140.300.12.2.1.1
`tuxTAppQmsgSerNo` | .1.3.6.1.4.1.140.300.12.2.1.2
`tuxTAppQmsgGrpNo` | .1.3.6.1.4.1.140.300.12.2.1.3
`tuxTAppQmsgQname` | .1.3.6.1.4.1.140.300.12.2.1.4
`tuxTAppQmsgQmConfig` | .1.3.6.1.4.1.140.300.12.2.1.5
`tuxTAppQmsgQspaceName` | .1.3.6.1.4.1.140.300.12.2.1.6
`tuxTAppQmsgLmid` | .1.3.6.1.4.1.140.300.12.2.1.7
`tuxTAppQmsgState` | .1.3.6.1.4.1.140.300.12.2.1.8
`tuxTAppQmsgNewQname` | .1.3.6.1.4.1.140.300.12.2.1.9
`tuxTAppQmsgPrior` | .1.3.6.1.4.1.140.300.12.2.1.10
`tuxTAppQmsgTime` | .1.3.6.1.4.1.140.300.12.2.1.11
`tuxTAppQmsgCorId` | .1.3.6.1.4.1.140.300.12.2.1.12
`tuxTAppQmsgCurRetries` | .1.3.6.1.4.1.140.300.12.2.1.13
`tuxTAppQmsgSize` | .1.3.6.1.4.1.140.300.12.2.1.14

### tuxTAppQmsgId

> #### Syntax

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

> #### Access

> read-only

> #### Description

> A unique identifier for the queue message, which can be used to select the message for `GET` or `SET` operations. No significance should be placed on this value beyond using it for equality comparisons.

### tuxTAppQmsgSerNo

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> A running number corresponding to `tuxTAppQmsgId` for the queue message, which is a part of the composite index of this table.

### tuxTAppQmsgGrpNo

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Group number of any server group for which this queue is a resource manager, in other words that group's openinfo string `tuxTgroupOpenInfo` contains the device name and queue space name for this queue.

### tuxTAppQmsgQname

> #### Syntax

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

> #### Access

> read-only

> #### Description

> Name of the application queue in which the message is stored.

### tuxTAppQmsgQmConfig

> #### Syntax

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

> #### Access

> read-only

> #### Description

> Absolute pathname of the file or device where the application queue space for the queue containing this message is located.

### tuxTAppQmsgQspaceName

> #### Syntax

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

> #### Access

> read-only

> #### Description

> Name of the application queue space containing the application queue in which this message is located.

### tuxTAppQmsgLmid

> #### Syntax

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

> #### Access

> read-only

> #### Description

> Logical machine id for the machine on which the queue containing this message is located.

### tuxTAppQmsgState

> #### Syntax

> `INTEGER { valid(1), invalid(2) }`

> #### Access

> read-write

> #### Description

> The values for `GET` and `SET` operations are as follows:

> `GET: valid(1)`
>   A `GET` operation retrieves information about the selected messages. The following list describes the meaning of the `tuxTAppQmsgState` attribute returned in response to a `GET` request. States not listed will not be returned.

> `valid(1)`
>   The message exists.

> `SET: invalid(2)`
>   A `SET` operation changes characteristics of the selected message. The following list describes the meaning of the `tuxTAppQmsgState` attribute returned by a `SET` request. States not listed cannot be set.

> `invalid(2)`
>   The message is deleted from its queue space. The message must be in state `valid(1)` before attempting this operation. Successful return leaves the object in the `invalid(2)` state.

### tuxTAppQmsgNewQname

> #### Syntax

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

> #### Access

> read-write

> #### Description

> Name of the queue into which to move the selected message. This queue must be an existing queue in the same queue space. The message must be in state `valid(1)` for this operation to succeed. This attribute is not returned by a `GET` operation.

### tuxTAppQmsgPrior

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> The priority of the message. This attribute is valid only for PRIO-based queues. The value -1 is returned by a `GET` operation if the queue is not PRIO-based.

### tuxTAppQmsgTime

> #### Syntax

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

> #### Access

> read-write

> #### Description

> The time when the message will be processed. This attribute is valid only for TIME-based queues. The empty string is returned by a `GET` operation if the queue is not TIME-based. The format is one of the following:

> `+seconds`
>   Specifies that the message will be processed `seconds` in the future. The value zero specifies that the message should be processed immediately.

> `YY[MM[DD[hh[mm[ss]]]]]`
>   Specifies the year, month, day, hour, minute, and second when the message should be processed. Omitted units default to their minimum possible values. For example, 9506 is equivalent to 950601000000. The years 00 through 37 are treated as 2000 through 20037, 70 through 99 are treated as 1970 through 1999, and 38 through 69 are invalid.

### tuxTAppQmsgCorId

> #### Syntax

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

> #### Access

> read-only

> #### Description

> The correlation identifier for this message provided by the application in the `tpenqueue`(3) request. The empty string indicates that a correlation identifier is not present.

### tuxTAppQmsgCurRetries

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The number of retries that have been attempted so far on this message.

### tuxTAppQmsgSize

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The size of the message, in bytes.

## tuxTQspaceTbl

This group represents application queue spaces. Objects in this table are only accessible through a TUXEDO SNMP agent installed on the local machine.

Note: The values returned by this MIB are controlled by `tuxTAppQctrl`. Refer to the description of the above group for details.

To create a new row in this table, a `SET` request should be issued with an index (`tuxTQspaceGrpNo`) of 40000. This is a reserved value for row creation in the table. The `SET` request also needs to specify values for at least `tuxTQspaceQmConfig`, `tuxTQspaceName`, `tuxTQspaceLmid`, `tuxTQspaceIpckey`, `tuxTQspaceMaxMsg`, `tuxTQspaceMaxPages`, `tuxTQspaceMaxProc`, `tuxTQspaceMaxQueues`, and `tuxTQspaceMaxTrans`. The newly created instance (row) will not be visible until it is attached to some server group.

Variable Name | Object ID
--- | ---
`tuxTQspaceName` | .1.3.6.1.4.1.140.300.12.3.1.1
`tuxTQspaceQmConfig` | .1.3.6.1.4.1.140.300.12.3.1.2
`tuxTQspaceLmid` | .1.3.6.1.4.1.140.300.12.3.1.3
`tuxTQspaceGrpNo` | .1.3.6.1.4.1.140.300.12.3.1.4
`tuxTQspaceState` | .1.3.6.1.4.1.140.300.12.3.1.5
`tuxTQspaceBlocking` | .1.3.6.1.4.1.140.300.12.3.1.6
`tuxTQspaceErrQname` | .1.3.6.1.4.1.140.300.12.3.1.7
`tuxTQspaceForceInit` | .1.3.6.1.4.1.140.300.12.3.1.8
`tuxTQspaceIpckey` | .1.3.6.1.4.1.140.300.12.3.1.9
`tuxTQspaceMaxMsg` | .1.3.6.1.4.1.140.300.12.3.1.10
`tuxTQspaceMaxPages` | .1.3.6.1.4.1.140.300.12.3.1.11
`tuxTQspaceMaxProc` | .1.3.6.1.4.1.140.300.12.3.1.12
`tuxTQspaceMaxQueues` | .1.3.6.1.4.1.140.300.12.3.1.13
`tuxTQspaceMaxTrans` | .1.3.6.1.4.1.140.300.12.3.1.14
`tuxTQspaceCurExtent` | .1.3.6.1.4.1.140.300.12.3.1.15
`tuxTQspaceCurMsg` | .1.3.6.1.4.1.140.300.12.3.1.16
`tuxTQspaceCurProc` | .1.3.6.1.4.1.140.300.12.3.1.17
`tuxTQspaceCurQueues` | .1.3.6.1.4.1.140.300.12.3.1.18
`tuxTQspaceCurTrans` | .1.3.6.1.4.1.140.300.12.3.1.19
`tuxTQspaceHwMsg` | .1.3.6.1.4.1.140.300.12.3.1.20
`tuxTQspaceHwProc` | .1.3.6.1.4.1.140.300.12.3.1.21
`tuxTQspaceHwQueues` | .1.3.6.1.4.1.140.300.12.3.1.22
`tuxTQspaceHwTrans` | .1.3.6.1.4.1.140.300.12.3.1.23
`tuxTQspacePercentInit` | .1.3.6.1.4.1.140.300.12.3.1.24

### tuxTQspaceName

> #### Syntax

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

> #### Access

> read-write

> #### Description

> Name of the application queue space.

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

### tuxTQspaceQmConfig

> #### Syntax

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

> #### Access

> read-write

> #### Description

> Absolute pathname of the file or device where the application queue space is located.

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

### tuxTQspaceLmid

> #### Syntax

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

> #### Access

> read-write

> #### Description

> Identifier of the logical machine where the application queue space is located.

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

### tuxTQspaceGrpNo

> #### Syntax

> `INTEGER``(1..29999)`

> #### Access

> read-write

> #### Description

> Group number of any server group for which this queue space is a resource manager, in other words that group's openinfo string `tuxTgroupOpenInfo` contains the device name and queue space name for this queue space.

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

### tuxTQspaceState

> #### Syntax

> `INTEGER { inactive(1), initializing(2), open(3), active(4), cleaning(5), invalid(6) }`

> #### Access

> read-write

> #### Description

> The values for `GET` and `SET` operations are as follows:

> `GET: inactive(1)|initializing(2)|open(3)|active(4)`
>   A `GET` operation retrieves information about the selected application queue space. The following list describes the meaning of the `tuxTQspaceState` attribute returned in response to a `GET` request. States not listed will not be returned.

> `inactive(1)`
>   The queue space exists; i.e., disk space for it has been reserved in a device and the space has been initialized (if requested or if necessary).

> `initializing(2)`
>   Disk space for the queue space is currently being initialized.

> `open(3)`
>   Shared memory and other IPC resources for the queue space have been allocated and initialized, but no processes are currently attached to the shared memory.

> `active(4)`
>   Shared memory and other IPC resources for the queue space have been allocated and initialized, and at least one process is currently attached to the shared memory. These processes can be the queue servers (`TMS_QM`, `TMQUEUE`, and perhaps `TMQFORWARD`) associated with the queue space, or they can be administrative processes such as `qmadmin`(1), or they can be processes associated with another application.

> `SET: open(3)|cleaning(5)|invalid(6)`
>   A `SET` operation changes the selected application queue space or creates a new one. The following list describes the meaning of the `tuxTQspaceState` attribute returned by a `SET` request. States not listed cannot be set.

> `open(3)`
>   Allocate and initialize shared memory and other IPC resources for the queue space. This is allowed only if the queue space is in the `inactive(1)` state.

> `cleaning(5)`
>   Remove the shared memory and other IPC resources for the queue space. This is allowed only when the queue space is in the `active(4)` or `open(3)` state. Successful return leaves the object in the `inactive(1)` state.

> `invalid(6)`
>   Delete the queue space. An error is reported if the state is `active(4)` or if messages exist on any queues in the queue space. Successful return leaves the object in the `invalid(6)` state.

### tuxTQspaceBlocking

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> The blocking factor used for disk space management of the queue space. The default when a new queue space is created is 16.

### tuxTQspaceErrQname

> #### Syntax

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

> #### Access

> read-write

> #### Description

> Name of the error queue associated with the queue space. If there is no error queue, an empty string is returned by a `GET` request.

### tuxTQspaceForceInit

> #### Syntax

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

> #### Access

> read-write

> #### Description

> The value of this object determines whether or not to initialize disk pages on new extents for the queue space. The default is not to initialize. Depending on the device type (e.g., regular file or raw slice), initialization can occur even if not requested.

### tuxTQspaceIpckey

> #### Syntax

> `INTEGER``(32769..262143)`

> #### Access

> read-write

> #### Description

> The IPC key used to access queue space shared memory.

### tuxTQspaceMaxMsg

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> The maximum number of messages that the queue space can contain.

### tuxTQspaceMaxPages

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> The maximum number of disk pages for all queues in the queue space. Each time the `tuxTQspaceMaxPages` attribute is increased, a new extent is allocated (see `tuxTQspaceCurExtent`). It is not possible to decrease the number of pages by setting this attribute to a lower number; an error is reported in this case.

### tuxTQspaceMaxProc

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> The maximum number of processes that can attach to the queue space.

### tuxTQspaceMaxQueues

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> The maximum number of queues that the queue space can contain.

### tuxTQspaceMaxTrans

> #### Syntax

> `INTEGER`

> #### Access

> read-write

> #### Description

> The maximum number of simultaneously active transactions allowed by the queue space.

### tuxTQspaceCurExtent

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The current number of extents used by the queue space. The largest number allowed is 100. Each time the `tuxTQspaceMaxPages` attribute is increased, a new extent is allocated.

### tuxTQspaceCurMsg

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The current number of messages in the queue space. This number can be determined only if the queue space is `open(3)` or `active(4)`, or if the queue space is newly created. If none of the conditions apply, the value -1 is returned.

### tuxTQspaceCurProc

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The current number of processes accessing the queue space.

### tuxTQspaceCurQueues

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The current number of queues existing in the queue space. This number can be determined only if the queue space is `open(3)` or `active(4)`, or if the queue space is newly created. If none of these conditions apply, the value -1 is returned.

### tuxTQspaceCurTrans

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The current number of outstanding transactions involving the queue space.

### tuxTQspaceHwMsg

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The highest number of messages in the queue space since the queue space was last opened. The number is reset to 0 when the queue space state is set to `cleaning(5)`.

### tuxTQspaceHwProc

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The highest number of processes simultaneously attached to the queue space since the queue space was last opened. The number is reset to 0 when the queue space state is set to `cleaning(5)`.

### tuxTQspaceHwQueues

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The highest number of queues existing in the queue space since the queue space was last opened. The number is reset to 0 when the queue space state is set to `cleaning(5)`.

### tuxTQspaceHwTrans

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> The highest number of outstanding transactions involving the queue space since the queue space was last opened. If the queue space is accessed by more than one application, this number reflects all applications - not just the application represented by the TUXCONFIG environment variable. The number is reset to 0 when the queue space state is set to `cleaning(5)`.

### tuxTQspacePercentInit

> #### Syntax

> `INTEGER``(0..100)`

> #### Access

> read-only

> #### Description

> The percentage (as an integer between 0 and 100 inclusive) of disk space that has been initialized for the queue space.

## tuxTQtransTbl

This group represents runtime attributes of transactions associated with application queue spaces. Objects in this table are only accessible through a TUXEDO SNMP agent installed on the local machine.

Variable Name | Object ID
--- | ---
`tuxTQtransXid` | .1.3.6.1.4.1.140.300.12.4.1.1
`tuxTQtransIndx1` | .1.3.6.1.4.1.140.300.12.4.1.2
`tuxTQtransIndx2` | .1.3.6.1.4.1.140.300.12.4.1.3
`tuxTQtransIndx3` | .1.3.6.1.4.1.140.300.12.4.1.4
`tuxTQtransIndx4` | .1.3.6.1.4.1.140.300.12.4.1.5
`tuxTQtransIndx5` | .1.3.6.1.4.1.140.300.12.4.1.6
`tuxTQtransGrpNo` | .1.3.6.1.4.1.140.300.12.4.1.7
`tuxTQtranSpaceName` | .1.3.6.1.4.1.140.300.12.4.1.8
`tuxTQtransQmConfig` | .1.3.6.1.4.1.140.300.12.4.1.9
`tuxTQtransLmid` | .1.3.6.1.4.1.140.300.12.4.1.10
`tuxTQtransState` | .1.3.6.1.4.1.140.300.12.4.1.11

### tuxTQtransXid

> #### Syntax

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

> #### Access

> read-only

> #### Description

> Transaction identifier as returned by `tx_info`(3) and mapped to a string representation. The data in this field should not be interpreted directly by the user except for equality comparison.

### tuxTQtransIndx1

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> An integer index for `tuxTQtransTbl`. This should not be interpreted by the user. It is used only for uniquely identifying a particular row in this table by the combination of Indx1 through Indx5.

### tuxTQtransIndx2

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> An integer index for `tuxTQtransTbl`. This should not be interpreted by the user. It is used only for uniquely identifying a particular row in this table by the combination of Indx1 through Indx5.

### tuxTQtransIndx3

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> An integer index for `tuxTQtransTbl`. This should not be interpreted by the user. It is used only for uniquely identifying a particular row in this table by the combination of Indx1 through Indx5.

### tuxTQtransIndx4

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> An integer index for `tuxTQtransTbl`. This should not be interpreted by the user. It is used only for uniquely identifying a particular row in this table by the combination of Indx1 through Indx5.

### tuxTQtransIndx5

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> An integer index for `tuxTQtransTbl`. This should not be interpreted by the user. It is used only for uniquely identifying a particular row in this table by the combination of Indx1 through Indx5.

### tuxTQtransGrpNo

> #### Syntax

> `INTEGER`

> #### Access

> read-only

> #### Description

> Group number of any server group for which the queue space concerning this transaction is a resource manager, in other words that group's openinfo string `tuxTgroupOpenInfo` contains the device name and queue space name for the queue space concerning this transaction.

### tuxTQtranSpaceName

> #### Syntax

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

> #### Access

> read-only

> #### Description

> Name of the application queue space associated with the transaction.

### tuxTQtransQmConfig

> #### Syntax

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

> #### Access

> read-only

> #### Description

> Absolute pathname of the file or device where the application queue space is located.

### tuxTQtransLmid

> #### Syntax

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

> #### Access

> read-only

> #### Description

> Identifier of the logical machine where the application queue space is located.

### tuxTQtransState

> #### Syntax

> `INTEGER { active(1), abort-only(2), aborted(3), com-called(4), ready(5), decided(6), suspended(7), habort(8), hcommit(9) }`

> #### Access

> read-write

> #### Description

> The values for `GET` and `SET` operations are as follows:

> `GET: {actdive(1)|abort-only(2)|aborted(3)|com-called(4)|ready(5)| decided(6)|suspended(7)}`
>   A `GET` operation retrieves runtime information about the selected transactions. The following list describes the meaning of the `tuxTQtransState` attribute returned in response to a `GET` request. States not listed will not be returned.

> `active(1)`
>   The transaction is active.

> `abort-only(2)`
>   The transaction has been identified for rollback.

> `aborted(3)`
>   The transaction has been identified for rollback and rollback has been initiated.

> `com-called(4)`
>   The initiator of the transaction has called `tpcommit`(3) and the first phase of two-phase commit has begun.

> `ready(5)`
>   All of the participating groups on the retrieval site have successfully completed the first phase of the two-phase commit and are ready to be committed.

> `decided(6)`
>   The second phase of the two-phase commit has begun.

> `suspended(7)`
>   The initiator of the transaction has suspended processing on the transaction.

> `SET: {habort(8)|hcommit(9)}`
>   A `SET` operation updates the state of the selected transactions. The following list describes the meaning of the `tuxTQtransState` attribute returned by a `SET` request. States not listed cannot be set.

> `habort(8)`
>   Heuristically abort the transaction. Successful return leaves the object in the `habort(8)` state.

> `hcommit(9)`
>   Heuristically commit the transaction. Successful return leaves the object in the `hommit(9)` state.