admin who

Displays information about threads running in the Replication Server.

Syntax

admin who [, {dist | dsi | rsi | sqm | sqt}[, no_trunc | ,connection identifier1
[, connection identifier2] ...]]

Parameters

Examples

Usage

  • If you use admin who with an option, you must include a comma before the option.

  • If you specify connection identifiers and Replication Server cannot find information that fulfills the criteria, the output does not display any record.

  • To display information about all threads in the Replication Server, execute admin who with no options.

Output column descriptions for admin who

The spid, Name, State, and Info columns display when admin who is executed without options.The spid, State, and Info columns also display when any option is chosen.

spid column

This is a unique identifier for a thread running in the Replication Server. If a thread is suspended or down, this field is blank.

Name and Info column

Name is the type of Replication Server thread. The contents of Info varies, depending upon the type of thread.

Name and Info Column for admin who Output

Name

Description

Contents of info

dAlarm

Alarm daemon. This thread keeps track of alarms set by other threads, such as the fade-out time for connections and the subscription daemon retry interval.

Empty

dAIO

The asynchronous I/O daemon. It manages asynchronous I/O to stable queues for the Replication Server.

Empty

dCM

The daemon for the connection manager. It manages connections to data servers and other Replication Servers.

Empty

dREC

The recovery daemon. This thread sleeps for a configurable period of time (rec_daemon_sleep_time configuration parameter) and then initiates any recovery actions specified in the rs_recovery table.

Empty

dSUB

The subscription retry daemon. This thread wakes up after a configurable time-out period (sub_daemon_sleep_time configuration parameter) and attempts to restart any subscriptions that have failed.

Empty

dSYSAM

SySAM daemon. This thread keeps track of checked out licenses.

Empty

dVERSION

The version daemon. This thread activates briefly when the Replication Server is started for the first time after an upgrade. It communicates the Replication Server’s new software version number to the ID Server.

The version of this Replication Server.

DIST

Distributor thread. Each primary database has a Distributor thread that reads transactions from the inbound queue, determines which subscriptions are interested, and forwards the transactions.

The names of the data server and database whose updates the thread is distributing.

DSI

DSI scheduler thread. This thread reads a stable queue via SQT and applies the transactions through the DSI Executor threads.

The name of the data server the thread writes to.

DSI EXEC

DSI executor thread. This thread executes the transactions on the replicate database and acts on errors that the replicate data server returns.

The ID of the DSI executor thread and the name of the data server it is connected to.

GATEWAY

The gateway server thread. This thread passes commands from client to the server and returns the server's reply to the client.

The name of the Replication Server that acts as the gateway server.

REP AGENT USER

A client connection that is a RepAgent thread. This thread verifies that RepAgent submissions are valid and writes them into the inbound queue.

The name of the primary data server and database whose log the RepAgent is forwarding.

RSI

RSI sender. This thread sends messages from one Replication Server to another.

The name of the Replication Server where messages are sent.

RSI User

Client connection thread for a Replication Server connected to this one. It writes messages destined for other Replication Servers or databases into outbound queues.

The name of the Replication Server connected to this one as a client.

RS User

Replication Server connection used to create or drop subscriptions at the primary Replication Server.

The name of the subscription owner.

SQM

Stable queue manager. This thread manages a Replication Server stable queue.

Queue number: An ID for a Replication Server or database.

Queue type: 1 for the inbound queue, 0 for outbound queues.

Any other number is the ID of a subscription the queue is for.

Queue identifier: for these queues:
  • For queues used to spool messages to another Replication Server, it is the name of the other Replication Server.

  • For queues used to spool messages to databases, it is the name of the data server and database.

  • For queues used to spool messages related to a subscription being created or dropped, it is the name of the replication definition and the name of the subscription.

SQT

Stable queue transaction interface. This thread reads a stream of messages from a stable queue and reassembles the transactions in commit order. The Distributor and DSI use this thread.

Same as the corresponding SQM thread.

USER

Thread for a client executing RCL commands.

The login name of the client.

State column

The State column contains the thread execution status. This table describes the valid states for Replication Server threads. The states for DSI threads are defined differently, depending on whether they are scheduler threads or executor threads. For the definitions, see the Replication Server Troubleshooting Guide.

State Column Descriptions for admin who Output

State

Description

Active

Actively processing a command.

Active, DSI timer

Actively processing a command. dsi_timer is on.

Awaiting Batch Order

A DSI thread is waiting to submit a command batch to the replicate data server.

Awaiting Command

The thread is waiting for a client to send a command.

Awaiting Command, DSI timer

The thread is waiting for a client to send a command. dsi_timer is on.

Awaiting Commit Order

Thread is waiting for its turn to commit a completed transaction.

Awaiting I/O

The thread is waiting for an I/O operation to finish.

Awaiting Message

The thread is waiting for a message from an Open Server™ message queue.

Awaiting Message, DSI timer

The thread is waiting for a message from an Open Server™ message queue. dsi_timer is on.

Awaiting Upgrade

The thread is waiting for user database objects, such as stored procedures and tables to upgrade.

Awaiting Wakeup

The thread has posted a sleep and is waiting to be awakened.

Checking Condition

The thread is waiting for an event to occur.

Connecting

The thread is connecting.

Controlling Mem

The thread is executing memory control.

Disconnecting

The thread is disconnecting.

Down

The thread has not started or has terminated.

Getting Lock

The thread is waiting on a mutual exclusion lock.

Inactive

The status of an RSI User thread at the destination of a route when the source Replication Server is not connected to the destination Replication Server.

Initializing

The thread is being initialized.

Invalid

The thread is in an unknown status.

Locking Resource

The thread is attempting to lock a shared resource.

Not Running

Thread is cleaning up in preparation for shutdown.

Reading Disk

The thread is preparing for a disk read.

SkipUntil Dump

Thread has received a resync database marker, and this state remains until the DSI has processed a subsequent dump database marker.

Setting Condition

The thread is setting the condition for another thread to wake up.

SkipUntil Resync

Thread is resuming after you execute skip to resync, and this state remains until the thread receives a resync database marker.

Sleeping

Thread is yielding processor time for a finite period.

Sleeping For Mem

The thread is sleeping until memory is available.

Suspended

The thread has been suspended by the user.

Unlocking Resource

The thread is releasing a shared resource.

Output column descriptions for admin who, dist

This command returns a table with a row for each DIST thread in the Replication Server.

Column Descriptions for admin who, dist Output

Column

Description

PrimarySite

The ID of the primary database for the SQT thread.

Type

The thread is a physical or logical connection.

Status

The thread has a status of “normal” or “ignoring.”

PendingCmds

The number of commands that are pending for the thread.

SqtBlocked

Whether or not the thread is waiting for the SQT.

Duplicates

The number of duplicate commands the thread has seen and dropped.

TransProcessed

The number of transactions that have been processed by the thread.

CmdsProcessed

The number of commands that have been processed by the thread.

MaintUserCmds

The number of commands belonging to the maintenance user.

NoRepdefCmds

The number of commands dropped because no corresponding table replication definitions were defined.

In the case of Warm Standby, it is possible to have Rep Server create the replication definition. In multi-site availability (MSA), one defines database replication definitions. In either of these cases, if the replicated data originates from a source without a table replication definition, the counter is increased and replicated data proceeds to the target.

CmdsIgnored

The number of commands dropped before the status became “normal.”

CmdMarkers

The number of special markers that have been processed.

RSTicket

The number of rs_ticket subcommands that have been processed by a DIST thread, if the Replication Server stats_sampling parameter is on.

Minimum: 0Maximum: 263-1Default: 0

SqtMaxCache

Maximum SQT (Stable Queue Transaction interface) cache memory for the database connection, in bytes.

The default, 0, means that the current setting of sqt_max_cache_size is used as the maximum cache size for the connection.

Output column descriptions for admin who, dsi

This command returns a table with a row for each running DSI scheduler thread in the Replication Server. If a DSI scheduler thread exists for a database but does not appear in the output of admin who, dsi, use resume connection to restart the data server interface for the database.

Column Descriptions for admin who, dsi Output

Column

Description

Maintenance User

The login name of the maintenance user applying the transactions.

Xact_retry_times

The number of times a failed transaction is retried if the error action is RETRY_LOG or RETRY_STOP.

Batch

Indicates if the batch option is on. If it is on, you can submit multiple commands as a batch to the data server.

Cmd_batch_size

The maximum size, in bytes, of a batch of output commands that you can send to the data server.

Xact_group_size

The maximum size, in bytes, of a transaction group consisting of source commands.

Dump_load

Indicates if the dump/load option is on. This configuration option coordinates dumps between primary and replicate databases.

Max_cmds_to_log

Maximum number of commands that can be logged into the exceptions log for a transaction. A value of -1 indicates an unlimited number of commands.

Xacts_read

The number of transactions read by the DSI from the outbound stable queue. This number should increase as the DSI applies transactions. You can use the information to monitor the rate of activity.

Xacts_ignored

The number of transactions determined to be duplicates. Typically, some transactions are ignored at start-up time because they were applied previously. Deletes from the DSI queue are delayed, so at start-up time, duplicates are detected and ignored. If you see a large number of ignored transactions, there is a chance that the rs_lastcommit table is corrupted. For more information, refer to the Replication Server Troubleshooting Guide.

Xacts_skipped

The number of transactions skipped by resuming the connection with skip first transaction.

Xacts_succeeded

The number of transactions applied successfully against the database.

Xacts_failed

The number of transactions that failed. Depending on the error mapping, some transactions may be written into the exceptions log. You should inspect the exceptions log.

Xacts_retried

The number of transactions that were retried.

Current Origin DB

The origin database ID for the current transaction.

Current Origin QID

If the state is Active, it is the Origin Queue ID of the begin log record of the transaction being processed. Otherwise, it is the Origin Queue ID of the begin log record of the last transaction processed.

Subscription Name

If the thread is processing a subscription, this is the name of the subscription.

Sub Command

If the thread is processing a subscription, this is the subscription command: activate, validate, drop, or unknown.

Current Secondary QID

If the thread is processing an atomic subscription applied incrementally, this column holds the queue ID of the current transaction.

Cmds_read

The number of commands read from the DSI queue.

Cmds_parsed_by_sqt

The number of commands parsed by SQT before being read by the DSI queue.

IgnoringStatus

Contains “Ignoring” if the DSI is ignoring transactions while waiting for a marker. Contains “Applying” if the DSI is executing transactions in the database.

Xacts_Sec_ignored

In a warm standby application, the number of transactions that were ignored after the switchover.

GroupingStatus

Contains “on” if the DSI is executing transactions in groups. Contains “off” if the DSI is executing transactions one at a time.

TriggerStatus

Contains “on” if set triggers is on. Contains “off” if set triggers is off.

ReplStatus

Indicates whether the Replication Server replicates transactions in the database. The default is “off” for standby databases. The default is “on” for all other databases.

NumThreads

The number of parallel DSI threads in use.

NumLargeThreads

The number of parallel DSI threads reserved for use with large transactions.

LargeThreshold

In a parallel DSI configuration, the number of commands allowed in a transaction before it is considered large.

CacheSize

The maximum SQT cache memory for the database connection, in bytes. The default, 0, means that the current setting of the sqt_max_cache_size parameter is used as the maximum SQT cache memory.

Serialization

The method used to maintain serial consistency when parallel DSI threads are used.

Max_Xacts_in_group

The maximum number of transactions in a group. The default is 20. You can configure this number using the alter connection command.

Xacts_retried_blk

The number of times the DSI rolled back a transaction due to exceeding maximum number of checks for lock contention.

CommitControl

Indicates if commit control is internal or external. Set to true if internal.

CommitMaxChecks

Indicates the maximum number of lock contention attempts before rolling back transaction and retrying.

CommitLogChecks

Indicates the maximum number of lock contention attempts before logging a message.

CommitCheckIntvl

Amount of time, in milliseconds, a transaction waits before issuing a check for lock contention.

IsolationLevel

Database isolation level for DSI connection.

RSTicket

The number of rs_ticket subcommands that have been processed by a DSI queue manager, if the Replication Server stats_sampling parameter is “on”.

The default, 0, means that the current setting of sqt_max_cache_size is used as the maximum cache size for the connection.

dsi_rs_ticket_report

Determines whether to call function string rs_ticket_report. rs_ticket_report function string is invoked when dsi_rs_ticket_report is set to on.

Default: off

Output column descriptions for admin who, rsi

This command displays information about RSI threads that send messages to other Replication Servers.

Column Descriptions for admin who, rsi Output

Column

Description

Packets Sent

The number of network packets sent.

Bytes Sent

The total number of bytes sent.

Blocking Reads

The number of times the stable queue was read with a blocking read.

Locater Sent

The locator of the last message sent (contains the queue segment, block and row).

Locater Deleted

The last locator that the recipient acknowledged and that has been deleted by Replication Server.

Output column descriptions for admin who, sqm

This command displays information about SQM threads that manage Replication Server stable queues.

Column Descriptions for admin who, sqm Output

Column

Description

Duplicates

The number of duplicate messages detected and ignored. There are usually some duplicate messages at start-up.

Writes

The number of messages written into the queue.

Read

The number of messages read from the queue. This usually exceeds the number of writes because the last segment is read at start-up to determine where writing is to begin. Also, long transactions may cause messages to be reread.

Bytes

The number of bytes written.

B Writes

The number of 16K blocks written. It may be greater than Bytes/16K because not every 16K block written is full. You can determine the density of blocks by dividing Bytes by B Writes.

B Filled

The number of 16K blocks written to disk because they are filled.

B Reads

The number of 16K blocks read.

B Cache

The number of 16K blocks read that are in cache.

Save_Int:Seg

The Save_Int interval and the oldest segment in the Save_Int list. The Save_Int interval is the number of minutes the Replication Server maintains an SQM segment after all messages in the segment have been acknowledged by targets.

For example, a value of 5:88 indicates a Save_Int interval of 5 minutes, where segment 88 is the oldest segment in the Save_Int list.

This feature provides redundancy in the event of replication system failure. For example, a Replication Server could lose its disk partitions while receiving data from another Replication Server. The Save_Int feature lets the sending Replication Server re-create all messages saved during the Save_Int interval.

A Save_Int value of “strict” may be used when a queue is read by more than one reader thread. Replication Server maintains the SQM segment until all threads reading the queue have read the messages on the segment and applied them to their destination.

First Seg.Block

The first undeleted segment and block number in the queue. If the figures for First Seg.Block and Last Seg.Block do not match, data remains in the queue for processing.

This information is useful when dumping queues. For more information, refer to the Replication Server Troubleshooting Guide.

Last Seg.Block

The last segment and block written to the queue. If the figures for First Seg.Block and Last Seg.Block do not match, data remains in the queue for processing.

This information is useful when dumping queues. For more information, refer to the Replication Server Troubleshooting Guide.

Next Read

The next segment, block, and row to be read from the queue.

Readers

The number of threads that are reading the queue.

Truncs

The number of truncation points for the queue.

Loss Status

Data loss status:
  • Suspect – Replication Server suspects possible data loss in the queue.
  • Detecting – Replication Server is checking for data loss in the queue.
  • Ignoring – Replication Server is ignoring any data loss in the queue because you executed the ignore loss command .
  • No Loss – Replication Server does not detect any data loss in the queue.

Output column descriptions for admin who, sqt

SQT threads read transactions from a stable queue and pass them to the SQT reader in commit order. The reader can be a DIST or a DSI thread.

SQT stores the transactions it is processing in a memory cache. The Closed, Read, Open, Trunc, and Removed columns shown in this table apply to transactions in the SQT cache.

Column Descriptions for admin who, sqt Output

Column

Description

Closed

The number of committed transactions in the SQT cache. The transactions have been read from the stable queue and await processing.

Read

The number of transactions processed, but not yet deleted from the queue.

Open

The number of uncommitted or unaborted transactions in the SQT cache.

Trunc

The number of transactions in the transaction cache. Trunc is the sum of the Closed, Read, and Open columns.

Removed

The number of transactions whose constituent messages have been removed from memory. This happens when the SQT processes large transactions. The messages are reread from the stable queue.

Full

Indicates that the SQT has exhausted the memory in its cache. This is not a problem as long as there are closed or read transactions still awaiting processing. If the SQT cache is often full, consider raising its configured size. To do this, see "alter connection."

SQM Blocked

1 if the SQT is waiting on SQM to read a message. This state should be transitory unless there are no closed transactions.

First Trans

This column contains information about the first transaction in the queue and can be used to determine if it is an unterminated transaction. The column has three pieces of information:
  • ST: Followed by O (open), C (closed), R (read), or D (deleted)

  • Cmds: Followed by the number of commands in the first transaction

  • qid: Followed by the segment, block, and row of the first transaction

Parsed

The number of transactions that have been parsed.

SQM Reader

The index of the SQM reader handle.

Change Oqids

Indicates that the origin queue ID has changed.

Detect Orphans

Indicates that it is doing orphan detection.

Permissions

Any user may execute this command.