C H A P T E R  11

Advanced Tab

The Advanced tab contains information that is used primarily by customer support personnel. The drop-down list enables you to view the following information types:


Asynchronous Starts

The Asynchronous Starts window displays statistics about the region's start queue. It displays the following datapoints:

TABLE 11-1 Asynchronous Starts Window Datapoints

Datapoint

Description

CICS Request Type

Identifies the request type for this CICS-type message. See CICS Request Type.

Expires

Indicates the time when this request expires.

Facility

Identifies the facility that originated this request (TASK, DEST). See Facility.

Recoverable

Indicates if the transaction is recoverable. See Recoverable.

Remote Terminal ID

Remote terminal ID assigned to this request. See Remote Terminal ID.

Remote Transaction ID

Remote transaction ID assigned to this request. See Remote Transaction ID.

Remote System ID

System ID assigned to this request. See Remote System ID.

Request ID

Request ID assigned to this request. See Request ID.

Requested

Timestamp when this entry was placed in the start queue. Not implemented in this release.

Start Code

Indicates the transaction start code (S, QD, SD). See Start Code.

Status

Displays the current status of an entry on the start queue. See Status.

Submitting Task

Indicates the exec interface block (EIB) task number that submitted this request. See Submitting Task.

Terminal ID

Terminal ID assigned to this request. See Terminal ID.

Transaction ID

Requested transaction ID. See Transaction ID.

TS Queue Item

Indicates the item number of the temporary storage queue. See TS Queue Item.

TS Queue ID

Identifies the queue assigned to this request. See TS Queue ID.

Type

Indicates the type of entry on the start queue. The only valid value is CICS, which represents a CICS statement.


Facility

Description

The Facility datapoint shows the origin of the asynchronously started transaction.

Values

The value of the datapoint is based on the facility type. Facility can be either the transaction ID of the CICS request or the name of the transient data (TD) queue that triggered the request.

Interpretation

Use the Start Code datapoint to determine if the started transaction was requested by another transaction or triggered from a TD queue. When the Start Code datapoint is S or SD, it indicates that the CICS request came from another transaction. When the Start Code datapoint is QD, the request was triggered from a TD queue.

TS Queue Item

Description

The TS Queue Item datapoint displays the number of the item within a temporary storage (TS) queue that was passed with a START request.

Values

The value of the datapoint is an integer number that identifies a specific record in a TS queue.

Interpretation

Sun MTP passes data specified with the FROM parameter to the START statement to the requested transaction by means of the TS Queue Item in a particular TS queue. The TS queue can be specified by the user using the QUEUE parameter to the START command, or it is generated by Sun MTP. The item number of the data within the TS queue accompanies the entry so that Sun MTP can retrieve the appropriate data.

TS Queue ID

Description

The TS Queue ID datapoint contains the name of a TS queue specified as the QUEUE parameter to the EXEC CICS START command.

Values

The value of the datapoint is a one- to eight-character queue name.

Interpretation

A particular item in the TS queue holds the data specified by the FROM parameter to the START command. The TS Queue Item datapoint provides a means to pass data along with the START request.

Recoverable

Description

The value of the Recoverable datapoint indicates if the asynchronously started transaction is recoverable or not.

Values

The values of the datapoint can be either true or false.

Interpretation

If the Recoverable value is false, Sun MTP submits the transaction immediately, even for a rollback. However, if the Recoverable value is true, Sun MTP does not submit the transaction when there is a rollback. In this sense, the transaction is protected.

Remote Terminal ID

Description

The Remote Terminal ID datapoint contains the value specified by the RTERMID parameter of the EXEC CICS START command. It represents the terminal name against which the transaction will be run on the remote system.

Values

The value of the datapoint is a one- to four-character name.

Interpretation

The remote terminal name is passed to the asynchronously started transaction, which receives the name by issuing a RETRIEVE command with the RTERMID option.

Remote Transaction ID

Description

The Remote Transaction ID datapoint represents the value specified by the RTRANSID parameter in the EXEC CICS START command. It is the remote transaction identifier to be used on the remote system when routing this transaction entry to the remote system.

Values

The value of the datapoint is a one- to four-character name.

Interpretation

The transaction that issues the START statement specifies the remote transaction ID. The issued transaction receives the remote transaction ID by issuing a RETRIEVE command with the RTRANSID option.

The RTRANSID parameter contains any data the starting transaction wants to pass to the asynchronously started transaction.

CICS Request Type

Description

The CICS Request Type datapoint shows the type of CICS command request of an entry on the start queue.

Values

The value of the CICS Request Type is:

START: Start request (EXEC CICS START)

Interpretation

If there is a value in the CICS Request Type datapoint, it indicates that the entry on the start queue originated from a CICS application program. The CICS Request Type datapoint contains a value only when the Type datapoint contains the value CICS.

Request ID

Description

The Request ID datapoint displays the value of the REQID parameter specified in the EXEC CICS START command.

Values

The value of the datapoint can be a one- to eight-character name.

Interpretation

The value of the Request ID datapoint uniquely identifies the associated START statement. This value can be used by a CANCEL command to cancel the transaction before it executes.

If the Request ID value is specified for the start queue entry, it indicates that the transaction can be cancelled prior to being executed.

Start Code

Description

The Start Code datapoint shows the start code of a START request.

Values

Value

Description

S

START without data

QD

Transient data trigger

SD

START with data


Interpretation

The Start Code datapoint indicates how a request was started (by means of a START command or a transient data trigger) and whether additional data was passed along with the request. When a transaction issues a START request (identified by Task#), the requestor can use the FROM parameter to the START command to specify data to pass along with the request. The transaction requested by the START statement obtains this data by means of the RETREIVE command.

Status

Description

The Status datapoint displays the current status of an entry on the start queue.

Values

Value

Description

0x01

Not yet time to start

0x02

A protected start waiting for requestor to finish

0x04

Terminal is not available

0x08

Not enough background tasks to start this transaction

0x00

Not enough transaction servers available

0x20

More entries on the process queue than there are transaction servers

0x40

ATI bit not set on a terminal

0x80

LU6.2 send or receive failed, task will be rescheduled

81

LU6.2 client did not open a socket with the LU6.2 server

82

The connection is out of service

83

Sun MTP cannot obtain any more shared memory

84

LU6.2 session allocation failed

85

Connection is not defined in the terminal table system entries

Blank

Unknown reason


Interpretation

The Status value of the entry changes based on Sun MTP region resources. If a resource is not available to process the entry, the appropriate value is set for the entry. When the resource is available, the status is reset. Values marked with an asterisk (*) are not resolvable, and will not relinquish their start queue slots.

If a transaction remains in the start queue for a long time, the Status datapoint indicates exactly why the transaction is waiting. As long as the Status datapoint is blank, there is nothing blocking the transaction's eventual execution.

Remote System ID

Description

The Remote System ID datapoint contains the value specified by the SYSID parameter in the EXEC CICS START command. This is the name of the remote system where the transaction is to run.

Values

The Remote System ID value can be any valid one- to four-character remote system name specified in the system entries portion of the terminal table.

Interpretation

The Remote System ID value can be used to determine the number of jobs that are currently waiting in the start queue that are to be executed on another system.

Submitting Task

Description

The Submitting Task datapoint displays the exec interface block (EIB) task number of the transaction that submitted a transaction to the start queue.

Values

The value of the Submitting Task datapoint is an integer number for a specific instance of a transaction.

Terminal ID

Description

The Terminal ID datapoint contains the value specified by the TERMID parameter in the EXEC CICS START command. It is the terminal identifier against which the transaction is to be started.

Values

The value of the Terminal ID datapoint is any valid four-character name. If the START command is to execute locally, the Terminal ID value must match an entry in the terminal table.

Interpretation

If the Terminal ID datapoint is omitted, the task will run without a terminal, which means that the application program cannot perform I/O to a terminal.

Transaction ID

Description

The Transaction ID datapoint displays the value specified by the TRANSID parameter in an EXEC CICS START command. The Transaction ID is the transaction identifier.

Values

The value of the Transaction ID datapoint can be any valid four-character transaction identifier specified in the region's transaction table.

Interpretation

The Transaction ID datapoint represents the transaction that was initiated by the end user at the terminal, by a another transaction by means of the RETURN statement, or by a transient data queue trigger.

The Transaction ID values on this window give you a good idea of the types of transactions that are waiting to be executed.


Environment Variables

The Environment Variables pane displays each environment variable set for the region and its value.


System Gates

The System Gates panel displays information related to Sun MTP gating primitives. This information is useful for investigating system throughput. The following datapoints are displayed:

TABLE 11-2 System Gates Window Datapoints

Datapoint

Description

Name

Identifies the gate. See Name.

Total Wait Time

Indicates the total time, in seconds, spent attempting to obtain ownership of the gate. This includes any time waiting for the gate due to an existing owner.

Delta Waits

Indicates the delta value of gate waits. See Delta Waits.

Maximum Wait Time

Indicates the maximum time, in seconds, that a requestor was forced to wait for a gate.

Max Lock Time

Indicates the maximum time, in seconds, that an owner held the gate.

Maximum Waiting

Indicates the maximum number of requestors forced to wait for this gate.

Lock Time

Indicates the total amount of time, in seconds, that all owners held this gate.

Owner

Process identifier (PID) of the current owner of the gate.

Total Locks

Indicates the number of times this gate has been owned since the region was started. This value is initialized to zero and region startup and is incremented each time the gate is locked.

Total Waits

Indicates the total number of times a process waited for this gate. See Total Waits

Waiting

Indicates the current number of requestors waiting for this gate.


Name

Description

The Name datapoint shows the name of a system gate used by a region. The server processes of a region employ these gates to control access to shared resources.

Values

The following table describes each gate:

TABLE 11-3 System Gates

Gate Name

Description

KXSEMAL

Allocation gate. Controls access during allocation of blocks of VSAM records.

KXSEMBCA

Browse gate. Controls access to browse control areas in shared memory.

KXSEMBUF(0-f)

VSAM buffer pool gates. The quantity of these gates depends on the number of buffers specified for VSAM datasets in the VCT. The percentage of data buffers versus index buffers depends on the unikixmain -I option used. The default percentage is a 50/50 split. Each gate controls access to a subset of the VSAM buffers.

KXSEMBUF0 through KXSEMBUF7 are always used for the data buffers. KXSEMBUF8 through KXSEMBUFf are always used for index buffers. KXSEMBUF0 and KXSEMBUF8 are always valid.

KXSEMENQ

Enqueue gate. Controls access to CICS ENQ and DEQ memory structures.

KXSEMEVC

Event gate. Controls access to internal Sun MTP counters, such as the transaction number counter that assigns a number to a transaction.

KXSEMFCB

File control gate. Controls access to file control blocks.

KXSEMFLR

Reserved.

KXSEMPPT

Processing program table gate. Controls access to the program table in shared memory.

KXSEMRB

Recovery full gate. Controls access to recovery resources during a recovery file full condition.

KXSEMRCV

Recovery gate. Controls access to recovery resources during before journal processing and dynamic transaction backout.

KXSEMSHR

Shared memory gate. Controls access to shared memory during allocation and deallocation of blocks of memory.

KXSEMSTA

Statistics gate. Controls access during generation of accounting records.

KXSEMSTQ

Start queue gate. Controls access to the start queue. The start queue contains the data retrieved with the CICS RETRIEVE command.

KXSEMTRC

Trace gate. Controls access to the internal Sun MTP trace table.

KXSEMTS

Temporary storage gate. Controls access to the temporary storage queue manipulated by the CICS WRITEQ TS, READQ TS, and DELETEQ TS commands. Both main and auxiliary temporary storage use this gate.

KXSEMUQ

Update gate. Controls access to the update queue during a CICS WRITE, REWRITE, DELETE, or SYNCPOINT. The update queue in Sun MTP contains one entry for each record updated but not yet syncpointed.


Interpretation

A gate is a mechanism that allows multiple processes to gain access to a resource in a mutually exclusive manner. A Sun MTP region's server processes may use all of the gates described in TABLE 11-3. The only user-configurable gates are the buffer and index gates, whose quantity is determined by the number of buffers specified in the VCT. Monitor the usage of the KXSEMBUF0-f gates to adjust the number of buffers for optimum performance. When the numbers of waits on the buffer gates keep climbing, increase the number of buffers to spread out the gate access to the data and indexes in the buffers.

Delta Waits

Description

The Delta Waits datapoint shows the number of times server processes have waited on a particular gate during the last polling interval.

Values

The Delta Waits datapoint is an integer value that is calculated every polling interval.

Interpretation

This datapoint should be monitored when the system seems to be running slowly. A large number of Delta Waits for an extended period of time can indicate a bottleneck in the system due to a particular gate.

Total Waits

Description

The Total Waits datapoint indicates the total number of times a requestor was forced to wait for the gate.

Values

The datapoint value is a number that is initialized to zero at region startup. Sun MTP increments the number of Total Waits for a particular gate every time a requestor has to wait to obtain the gate.

Interpretation

The Total Waits datapoint indicates how much contention a gate has. Two gates may have large numbers of locks, but one may have more waits than the other.


System Queues

The System Queues window displays details about the Sun MTP interprocess communications (IPC) message queues.



Note - The operating system maintains these queues, not the Sun MTP region.



The following datapoints are displayed on this window:

TABLE 11-4 System Queues Window Datapoints

Datapoint

Description

Name

Identifies the queue. See Name.

Maximum Size

Indicates the maximum queue size in bytes. See Maximum Size.

Current Size

Indicates the total number of bytes currently in use by this queue. See Current Size.

Current Messages

Indicates the number of messages currently in this queue. See Current Messages.

Last Receive Process ID

Process ID of process that issued the last msgrcv operation.

Last Receive Time

Timestamp of last msgrcv operation. See Last Receive Time

Last Send Process ID

Process ID of process that issued the last msgsnd operation.

Last Send Time

Timestamp of last msgsnd operation.

Peak Size

Indicates the maximum number of bytes used at one time. See Peak Size.

Peak Messages

Indicates the maximum number of messages queued at one time. See Peak Messages.

Total Bytes

Indicates the total number of bytes processed by this queue.

Total Messages

Indicates the total number of messages processed by this queue.


Name

Description

The Name datapoint shows the name of a system queue used by Sun MTP. A queue is an operating system resource enabling interprocess communication. Sun MTP creates a number of queues that are used to pass messages and requests between the various components and server processes that make up a region.

Values

The possible values for the Name datapoint are: KXPRTQ, KXPROCQ, KXRECOVQ, KXSTRTQ, KXTERMQ, KXCLASSQnnn, and KXTRANQnnn.

Interpretation

The following table describes each type of queue:

TABLE 11-5 System Queues

Queue

Description

KXPRTQ

The print server uses the print queue to process the Sun MTP log files: unikixmain.log, unikixmain.err, and unikixmain.dbg.

KXPROCQ

The process queue is used to initiate all new transactions. Normally, messages are placed on this queue by the TN3270 server, unikixtnemux. Messages can also be placed on this queue by the start queue server (EXEC CICS START), a transient data queue trigger, or a batch job. Any transaction server may remove messages from this queue.

KXRECOVQ

The recovery queue is used to process recovery requests, including saving before images or rolling back transactions.

KXSTRTQ

The start queue is used to process interval control requests. These requests come from the following EXEC CICS commands: START, POST, WAIT, DELAY, or CANCEL.

KXTERMQ

The terminal queue is used by the EPI facility to pass a message from a transaction server to an EPI process.

KXTRANQnnn

The number of transaction queues is the same as the number of transaction servers. Unlike the process queue, where messages are processed by any transaction server, each transaction server has its own transaction queue to process server-specific messages, such as requests to read/write data and recovery requests. Each transaction queue has a number (nnn) corresponding to a transaction server.

KXCLASSQnnn

One queue per transaction class. The unikixsched process removes messages from the process queue and schedules them to the appropriate class queue. Each class queue has a number (nnn), which is the queue ID.


The most important queues relating to system performance are KXPROCQ, KXCLASSQ, and KXRECOVQ.

Maximum Size

Description

The Maximum Size datapoint represents the maximum number of bytes a system queue can hold at any one time. A queue is an operating system resource enabling interprocess communication. This value is part of your operating system configuration (kernel parameter).

Values

This numeric value is obtained directly from the operating system, not from the region.

Interpretation

If, for some reason, the capacity of a queue is reached, the process trying to put a message or request on the queue must wait until another process takes a message or request off the queue. This condition can cause region throughput to slow down. You can detect this condition by comparing the Peak Size datapoint to the corresponding Maximum Size datapoint. If the Peak Size datapoint reaches the allowed size of the queue, the queue size must be increased.

Refer to your operating system's system administrator's guide for information about increasing the maximum size of a system queue.

Monitor the Maximum Size datapoint, especially during the initial deployment of a Sun MTP region, to help determine an appropriate queue size. Resizing system queues not only requires shutting down the region, but the operating system as well, affecting all activity on the machine.

Current Size

Description

The Current Size datapoint represents the number of bytes currently on a particular system queue. A queue is an operating system resource enabling interprocess communication.

Values

The value of the Current Size datapoint is a numeric quantity obtained directly from the operating system.

Interpretation

The value of the Current Size datapoint indicates how heavily a queue is used. The value is the total number of bytes used by messages on a queue. The number of messages appears in the Current Messages datapoint.

The Current Size value is a snapshot in time: at each refresh interval, the administration tool queries the operating system for the size of the queue.

When the value of the Peak Size datapoint approaches the maximum size for the process queue, the transaction class queue, or any of the transaction server queues, more transaction servers can be configured to alleviate server overload for the region. Examine the Performance screens to see how the transaction servers are being utilized. If transactions are always being run in the transaction servers during peak production hours and messages are always waiting to be processed on the process queue or transaction class queues, increase the number of transaction servers.

Current Messages

Description

The Current Messages datapoint represents the number of messages or requests currently on a particular system queue. A queue is an operating system resource enabling interprocess communication.

Values

The value of the Current Messages datapoint is a numeric quantity obtained directly from the operating system.

Interpretation

A message on a queue consists of a certain number of bytes. Each message on a particular queue is the same size, but each queue can have its own message size. To determine the message size for a queue, divide the number of Current Size by the number of Current Messages. Dividing the Maximum Size by the size of a message tells you the effective maximum number of messages allowed on a particular queue.

The value of Current Messages on the process queue and transaction class queues tells how many requests are waiting to be processed. If this number remains high as response time diminishes, consider configuring more transaction servers to accommodate the message processing.

The value of Current Messages on the recovery queue indicates the number of requests (before image, writes, or rollbacks) that are waiting to be processed.

Last Receive Time

Description

The Last Receive Time datapoint shows the last time a process took an entry from a system queue. A queue is an operating system resource enabling interprocess communication.

Values

The Last Receive Time datapoint has the following format: hh:mm:ss. This value is obtained directly from the operating system.

Interpretation

This statistic can be used to determine if processes are taking messages or requests from the queue in a timely manner.

Consider a situation where the Current Size value reaches the allowed size. This indicates that the queue membership has reached its capacity in terms of size. A normal course of action could be to increase the size of the queue or adjust the number of processes that read the queue. However, the Last Receive Time datapoint might reveal that processes are not taking messages off the queue for some reason, such as system problems, aborted processes, looping processes, and so on. Make sure to evaluate all possible causes before changing your configuration.

Peak Size

Description

The Peak Size datapoint represents the maximum number of bytes that have been recorded on a particular system queue. A queue is an operating system resource enabling interprocess communication.

Values

The value of the Peak Size datapoint is a numeric quantity obtained by comparing the current value to the value of Current Size and setting Peak Size to the higher of the two.

Interpretation

This value indicates the queue usage (along with the Peak Messages datapoint) at peak load in production processing. Note that the actual peak usage of a queue might occur between polling intervals and could escape the administration tool's inquiries to the operating system.

If the value of the Peak Size datapoint approaches the value of the Maximum Size datapoint, consider increasing the size of the queue.

Peak Messages

Description

The Peak Messages datapoint indicates the maximum number of messages that have been recorded on a particular system queue. A queue is an operating system resource enabling interprocess communication.

Values

The value of the Peak Messages datapoint is a numeric quantity obtained by comparing the current value to the value of Current Messages and setting Peak Messages to be the maximum of the two.

Interpretation

This value indicates the queue usage (along with the Peak Size datapoint) at peak loads in production processing. The actual peak usage of a queue might occur between polling intervals and may escape the administration tool's inquiries to the operating system.

Most systems have a kernel parameter that specifies the maximum number of messages that can be on a queue at any given time. This parameter is similar to the Maximum Size datapoint of a queue (which is measured in bytes). Consult your operating system's system administrator's guide to find out where to look for this value. If the Peak Messages datapoint approaches this value, it must be increased to obtain better performance from the region.

The size of the messages put on the queue can also affect the maximum number of messages allowed on a queue, because of a queue's maximum size. For example, if a queue has an allowed size of 100 bytes and a maximum of 10 messages, and the messages for this queue are 50 bytes each, the queue has an effective limit of two messages.