Displays information about threads running in the Replication Server.
admin who [, {dist | dsi | rsi | sqm | sqt}][, no_trunc]
Returns information about Distributor threads. These threads distribute transactions in the inbound queue to replicate databases and Replication Servers.
Returns information about DSI threads. These threads apply replicated transactions to databases.
Returns information about RSI threads. These threads send messages to other Replication Servers.
Returns information about SQM threads. These threads manage Replication Server stable queues.
Returns information about SQT threads. These threads read queues and group functions into transactions.
Increases the size of the Info column from 40 characters to 80 characters. This is useful in displaying long data server or database names.
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 47 GATEWAY Awaiting Command SYDNEY_RS 5 dALARM Awaiting Wakeup 13 dSYSAM Sleeping
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
In this example, admin who, dsi displays information about each DSI scheduler thread running in the Replication Server.
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
In this example, admin who, rsi displays information about RSI threads.
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...
In this example, admin who, sqm displays information about SQM threads.
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
In this example, admin who, sqt displays information about SQT threads.
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
If you use admin who with an option, you must include a comma before the option.
To display information about all threads in the Replication Server, execute admin who with no options.
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.
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 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.
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:
|
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. |
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.
State |
Description |
---|---|
Active |
Actively processing a command. |
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 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 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. |
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. |
Setting Condition |
The thread is setting the condition for another thread to wake up. |
Sleeping |
Thread is yielding processor time for a finite period. |
Suspended |
The thread has been suspended by the user. |
Unlocking Resource |
The thread is releasing a shared resource. |
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.
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. |
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.
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. |
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.
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. |
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.
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. |
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.
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:
|
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. |
Any user may execute this command.