Troubleshooting high-availability cluster environments
A high-availability cluster environment requires little or no additional troubleshooting when compared with a stand-alone server environment. This topic explains the terminology used to describe high-availability cluster environments and provides some common troubleshooting procedures.
You use the diagnostic tools to display the configuration of a high-availability environment and to verify that your secondary servers are set up correctly to update data.
Transactions are processed by the servers very quickly. The onstat commands display status information only for the instant the command was run.
To update data on secondary servers, HCL OneDB™ creates proxy distributors on both the primary and the secondary database servers. Each proxy distributor is assigned an ID that is unique within the cluster. The proxy distributor is responsible for sending DML update requests from secondary servers to the primary server. Secondary servers determine how many instances of the proxy distributors to create based on the UPDATABLE_SECONDARY setting in the secondary server's onconfig file.
For updatable secondary servers in a high-availability cluster environment, encryption from the updatable secondary server to primary server requires SMX encryption. To encrypt data sent from an updatable secondary server to the primary server, set the ENCRYPT_SMX configuration parameter on the secondary server. See ENCRYPT_SMX configuration parameter for more information.
When initializing an updatable secondary server in a high-availability cluster, the server remains in fast recovery mode until all open transactions, including open and prepared XA transactions, are complete. Applications cannot connect to the server while it is in fast recovery mode. The server remains in fast recovery mode until all open transactions are either committed or rolled back.
onstat -g proxy
Secondary Proxy Reference Transaction Hot Row
Node ID Count Count Total
serv2 392 0 2 112
serv2 393 0 2 150
Examining the output from the onstat command
in the previous example, there are two proxy distributors whose IDs
are 392 and 393. The Transaction Count indicates the number of transactions
currently being processed by each proxy distributor.onstat -g proxy
Primary Proxy Reference Transaction Hot Row
Node ID Count Count Total
serv1 392 0 2 112
serv1 393 0 2 150
In this example, the server is a shared disk (SD) secondary
server, and is configured to update data. In addition, the server
is connected to the primary server named serv1, and there are
two proxy distributors, each with a transaction count of 2.onstat -g proxy all
Secondary Proxy Reference Transaction Hot Row
Node ID Count Count Total
serv2 392 0 2 1
serv2 393 0 2 0
TID Flags Proxy Source Proxy Current sqlerrno iserrno
ID SessID TxnID Seq
63 0x00000024 392 22 1 5 0 0
64 0x00000024 392 19 2 5 0 0
62 0x00000024 393 23 1 5 0 0
65 0x00000024 393 21 2 5 0 0
In the output of the onstat -g proxy all command, TID represents
the ID of the proxy agent thread that is running on the primary server. Source
SessID represents the ID of the user's session on the secondary
server. Proxy TxnID displays the sequence number of the current
transaction. Each Proxy TxnID is unique to the proxy distributor. Current Seq represents
the sequence number of the current operation in the transaction being
processed. Each database transaction sent to a secondary server is
separated internally into one or more operations that are then sent
to the primary server. The last two fields, sqlerrno and iserrno,
display any SQL or ISAM/RSAM errors encountered in the transaction.
An error number of 0 indicates completion with no errors.onstat -g proxy all
Primary Proxy Reference Transaction Hot Row
Node ID Count Count Total
serv1 3466 0 0 1
serv1 3465 0 1 0
Session Proxy Proxy Proxy Current Pending Reference
ID TID TxnID Seq Ops Count
19 3465 67 1 23 0 1
In the output from the onstat -g proxy all command
run on the secondary server, Session represents the ID of a
user's session on the secondary server. The Proxy ID and Proxy
TID are the same as those displayed on the primary server. Pending
Ops displays the number of operations that are waiting to be transferred
to the primary server. Reference Count displays the number
of threads in use for the transaction. When Reference Count displays
0 the transaction processing is complete.onstat -g proxy <proxy id> [proxy transaction id] [operation number]
The
proxy transaction ID and operation number are both optional parameters.
When supplied, the first number is considered the proxy transaction
ID. If a secondary number follows it is interpreted as the operation
number. If no proxy transaction ID exists, the command performs the
same as: onstat -. Similarly, if no such operation
number for the given proxy transaction ID exists, the command performs
the same as: onstat -.onstat -g <server_type>
Examples:onstat -g rss
onstat -g sds
onstat -g dri