admin who

Description

Displays information about threads running in the Replication Server.

Syntax

admin who [, {dist | dsi | rsi | sqm | sqt}]

Parameters

dist

Returns information about Distributor threads. These threads distribute transactions in the inbound queue to replicate databases and Replication Servers.

dsi

Returns information about DSI threads. These threads apply replicated transactions to databases.

rsi

Returns information about RSI threads. These threads send messages to other Replication Servers.

sqm

Returns information about SQM threads. These threads manage Replication Server stable queues.

sqt

Returns information about SQT threads. These threads read queues and group functions into transactions.

Examples

Example 1

In the following example, admin who displays the state of all threads in the Replication Server. DSI scheduler threads are shown as “DSI” in the output. DSI executor threads are shown as “DSI EXEC.” If the DSI is suspended when Replication Server starts up, the output shows only one DSI executor thread, even if more are configured.

admin who
 Spid Name         State              Info 
 ---- ----------   ------------------ --------------------------
  97  DIST        Active              103 LDS.pubs2
  98  SQT         Awaiting Wakeup     103:1  DIST LDS.pubs2
  68  SQM         Awaiting Message    103:0 LDS.pubs2
  89  DSI EXEC    Awaiting Message    106(1) SYDNEY_DS.pubs2sb
  91  DSI         Awaiting Command    106 SYDNEY_DS.pubs2sb
  21  DSI EXEC    Awaiting Message    101(1) TOKYO_DS.TOKYO_RSSD
  10  DSI         Awaiting Command    101 TOKYO_DS.TOKYO_RSSD
  16  DIST        Active              101 TOKYO_DS.TOKYO_RSSD
  17  SQT         Awaiting Wakeup     101:1  DIST TOKYO_DS.TOKYO_RSSD
  15  SQM         Awaiting Message    101:1 TOKYO_DS.TOKYO_RSSD
  14  SQM         Awaiting Message    101:0 TOKYO_DS.TOKYO_RSSD
  30  REP AGENT   Awaiting Command    TOKYO_DS.TOKYO_RSS        
      USER
   4  DSI EXEC    Awaiting Message    104(1) TOKYO_DS.pubs2
   0  DSI         Awaiting Command    104 TOKYO_DS.pubs2
   8  REP AGENT   Awaiting Command    TOKYO_DS.pubs2
      USER
  53  RSI         Awaiting Wakeup     SYDNEY_RS
  52  SQM         Awaiting Message    16777318:0 SYDNEY_RS
      RSI USER    Inactive            TOKYO_RS
  11  dSUB        Active
   6  dCM         Awaiting Message
   9  dAIO        Awaiting Message
  12  dREC        Active              dREC
  71  USER        Active              sa
   5  dALARM      Awaiting Wakeup
  13  dSYSAM      Sleeping

Example 2

In the following example, the admin who, dist command displays information about each DIST thread in the Replication Server.

admin who, dist
Spid      State                      Info
-----     ----------------           ---------------------
21         Active                    102 SYDNEY_DS.SYDNEY_RSSD
22         Active                    106 SYDNEY_DS.pubs2      

PrimarySite  Type   Status   PendingCmds   SqtBlocked
-----------  ----   ------   -----------   ----------
102          P      Normal             0            1
106          P      Normal             0            1

Duplicates   TransProcessed   CmdsProcessed   MaintUserCmds
----------   --------------   -------------   -------------
         0              715            1430               0
       290                1             293               0

NoRepdefCmds   CmdsIgnored   CmdMarkers
------------   -----------   ----------
           0             0            0
           0             0            1

Example 3

In this example, admin who, dsi displays information about each DSI scheduler thread running in the Replication Server.

Example 4

admin who, dsi
 Spid                  State                          Info
 -----       ----------------         ----------------------
     8       Awaiting Message         101 TOKYO_DS.TOKYO_RSSD
    79       Awaiting Message         104 TOKYO_DS.pubs2
   145       Awaiting Message         105 SYDNEY_DS.pubs2sb

Maintenance User  Xact_retry_times   Batch    Cmd_batch_size
 ----------------  ----------------   -----    --------------
 TOKYO_RSSD_maint                 3      on              8192
      pubs2_maint                 3      on              8192
      pubs2_maint                 3      on              8192

Xact_group_size        Dump_load     Max_cmds_to_log
 ---------------        ---------     ---------------
           65536              off                  -1
           65536              off                  -1
           65536              off                  -1

Xacts_read       Xacts_ignored    Xacts_skipped
----------       -------------    -------------
        39                   0                0
         0                   0                0
      1294                   2                0

Xacts_succeeded       Xacts_failed    Xacts_retried  Current Origin DB
---------------       ------------    -------------  -----------------
              0                 28                0                102
              0                  0                0                  0
              0                 93                0                104

Current Origin QID     Subscription Name       Sub Command
------------------     -----------------       -----------
    0x000000000...                  NULL              NULL
    0x000000000...                  NULL              NULL
    0x000000000...                  NULL              NULL

Current Secondary QID      Cmds_read      Cmds_parsed_by_sqt
---------------------      ---------      ------------------
                 NULL            129                       0
                 NULL              0                       0
                 NULL           6740                       0

IgnoringStatus   Xacts_Sec_Ignored   GroupingStatus   TriggerStatus
--------------   -----------------   --------------   -------------
      Applying                   0               on              on
      Applying                   0               on              on
      Applying                   0              off             off

ReplStatus     NumThreads     NumLargeThreads     LargeThreshold
----------     ----------     ---------------     --------------
        on              1                   0                100
        on              1                   0                100
       off              3                   1                 20

CacheSize  Serialization    Max_Xacts_in_group  Xacts_retried_blk
---------  ---------------  ------------------  -----------------
0          wait_for_commit                  20                  0
0          wait_for_commit                 200                  0
0          wait_for_start                   20                  0

CommitControl                  CommitMaxChecks CommitLogChecks
------------------------------ --------------- ---------------
on                                         400             200
on                                         400             200
on                                         400             200

CommitCheckIntvl IsolationLevel
---------------- ------------------------------
1000             default
1000             default

Example 5

In this example, admin who, rsi displays information about RSI threads.

Example 6

admin who, rsi
 Spid     State             Info
 ----     ---------------   ----------------
   53     Awaiting Wakeup   SYDNEY_RS

 Packets Sent      Bytes Sent       Blocking Reads
 ------------      -------------    --------------
  3008.000000      624678.000000               269
 
 Locater Sent      Locater Deleted
 ------------      ---------------
 0x000000...       0x000000...

Example 7

In this example, admin who, sqm displays information about SQM threads.

Example 8

admin who, sqm
     Spid      State                Info
    ----      ----------------     -------------------------
      14      Awaiting Message     101:0 TOKYO_DS.TOKO_RSSD
      15      Awaiting Message     101:1 TOKYO_DS.TOKYO_RSSD
      52      Awaiting Message     16777318:0 SYDNEY_RS
      68      Awaiting Message     103:0 LDS.pubs2
 
    Duplicates     Writes     Reads     Bytes
    ----------     ------     -----     -----
    0                             0         0
    0                          8867      9058
    0               0.1        2037      2037
    0               0.1.0         0         0
 
 
 
    B Writes   B Filled  B Reads   B Cache   Save_Int:Seg
    --------   -------   -------   -------   ------------
    0           0                        0            0:0
    0          34         44          2132           0:33
    0           3         54           268            0:4
    0           0         23             0       strict:O
 
    First Seg.Block     Last Seg.Block      Next Read
    ---------------     --------------      ---------
            0.1                0.0              0.1.0
           33.10              33.10           33.11.0
            4.12               4.12            4.13.0
            0.1                0.0              0.1.0
 
    Readers     Truncs
    -------     ------
          1          1
          1          1
          1          1
          1          1

Example 9

In this example, admin who, sqt displays information about SQT threads.

Example 10

admin who, sqt
Spid    State             Info
----    ---------------   -------------------------
  17    Awaiting Wakeup   101:1 TOKYO_DS.TOKYO_RSSD
  98    Awaiting Wakeup   103:1 DIST LDS.pubs2
  10    Awaiting Wakeup   101 TOKYO_DS.TOKYO_RSSD
   0    Awaiting Wakeup   106 SYDNEY_DSpubs2sb

Closed      Read      Open      Trunc
------      ----      ----      -----
     0      0         0         0
     0      0         0         0
     0      0         0         0
     0      0         0         0
   
Removed   Full   SQM Blocked    First Trans   Parsed
-------   ----   -----------    -----------   -------
      0      0             1              0         0
      0      0             1              0         0
      0      0             0              0         0
      0      0             0              0         0
  
SQM Reader   Change Oqids   Detect Orphans
----------   ------------   --------------
         0              0                0
         0              0                0
         0              0                1
         0              0                1

Usage


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 columns

Name is the type of Replication Server thread. The contents of Info varies, depending upon the type of thread. Table 3-7 describes the Name and Info columns for each thread.

Table 3-7: 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.

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. Table 3-8 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.

Table 3-8: State column descriptions for admin who output

State

Description

Active

Actively processing a command.

Awaiting Command

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

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 Wakeup

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

Connecting

The thread is connecting.

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.

Suspended

The thread has been suspended by the user.


Output column descriptions for admin who, dist

This command returns a table with a row for each DIST thread in the Replication Server. With the Spid, State, and Info columns, the table contains the columns shown in Table 3-9.

Table 3-9: 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.


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. Along with the Spid, State, and Info columns, the table contains the columns shown in Table 3-10.

Table 3-10: 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.


Output column descriptions for admin who, rsi

This command displays information about RSI threads that send messages to other Replication Servers. Along with the Spid, State, and Info columns, admin who, rsi contains the columns shown in Table 3-11.

Table 3-11: 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. Along with the Spid, State, and Info columns, admin who, sqm contains the columns shown in Table 3-12.

Table 3-12: 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.


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 Table 3-13 apply to transactions in the SQT cache.

Table 3-13: 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.