onstat -x 命令:打印数据库服务器事务信息

可以使用 onstat -x 命令显示在数据库服务器上的事务信息。

语法:
只有在以下情况下事务信息才是必需的:
  • X/Open 环境
  • 参与分布式查询的数据库服务器
  • 数据库服务使用 Microsoft™ Transaction Server (MTS)事务管理器

示例输出

图: onstat -x 命令输出

            Transactions
            
            address   flags userthread  locks  begin    current     isol   est.     retrys coord
            logpos   logpos             rb_time
            a6d8028   A---- a695028     0      -         -          COMMIT  -        0      
            a6d8348   A---- a695878     0      -         -          COMMIT  -        0      
            a6d8668   A---- a6960c8     0      -         -          COMMIT  -        0      
            a6d8988   A---- a696918     0      -         -          COMMIT  -        0      
            a6d8fc8   A---- a698208     0      -         -          COMMIT  -        0      
            a6d92e8   A---- a6979b8     0      -         -          COMMIT  -        0      
            a6d9608   A---- a698a58     0      -         -          COMMIT  -        0      
            a6d9928   A---- a6992a8     1      -         -          DIRTY   -        0      
            a6d9c48   A---- a6992a8     0      -         -          NOTRANS -        0      
            a6d9f68   A---- a69a348     0      -         -          COMMIT  -        0      
            a6da288   A---- a69ab98     0      -         -          COMMIT  -        0      
            a6da5a8   A---- a69b3e8     0      -         -          COMMIT  -        0      
            a6da8c8   A---- a69bc38     0      -         -          COMMIT  -        0      
            a6dabe8   A---- a69c488     0      -         -          COMMIT  -        0      
            a6daf08   A---- a699af8     0      -         -          COMMIT  -        0      
            a6db228   A---- a6992a8     0      -         -          COMMIT  -        0      
            a6db548   A---- a69ccd8     1      -         -          DIRTY   -        0      
            a6db868   A---- a69d528     1      -         -          DIRTY   -        0      
            a6dbb88   A---- a69ccd8     0      -         -          COMMIT  -        0      
            a6dbea8   A---- a69dd78     0      -         -          COMMIT  -        0      
            a6dc1c8   A---- a69e5c8     0      -         -          COMMIT  -        0      
            a6dc4e8   A-B-- a69ee18   502    33:0x25018  34:0x486fc COMMIT  0:07     0      
            22 active, 128 total, 23 maximum concurrent

输出描述

可以如下解释 onstat -x 命令输出:
address
事务结构的共享内存地址
flags
位置 1 的标志代码(当前事务状态):
A
用户线程已连接到事务
S
TP/XA 暂挂的事务
C
TP/XA 正在等待回滚
位置 2 的标志代码(事务方式):
T
紧耦合方式(MTS)
L
松耦合方式(缺省方式)
位置 3 的标志代码(事务阶段):
B
开始工作
P
准备好用于提交的分布式查询
X
准备好用于提交的 TP/XA
C
正在提交或已提交
R
正在回滚或已回滚
H
正在尝试回滚或已回滚
位置 4 的标志代码
X
XA 事务
位置 5 的标志代码 (事务的类型):
G
全局事务
C
分布式查询协调者
S
分布式查询从属者
B
分布式查询协调者和从属者
M
重新定向的全局事务
userthread
拥有事务的线程(rstcb 地址)
locks
事务持有的锁数
begin logpos
BEGIN WORK 记录已记录到其中的日志
current logpos
事务最近写入的日志的当前日志位置 (当事务回滚时,当前日志位置会回退直到它到达起始日志位置。 当到达起始日志位置,回滚结束。)
isol
隔离级别
est. rb time
服务器回滚该事务所需的估计时间。随着事务前进,该时间增长。如果事务回滚,那么该时间随着事务的展开而减少
retrys
启动分布式查询的恢复线程的尝试次数
coord
从属者正在执行事务时事务协调者的名称

该字段告诉您哪个数据库服务器正在协调两阶段提交

onstat -x 命令输出的最后一行指示 8 是自初始化数据库服务器以来并发事务的最大数。
8 active, 128 total, 8 maximum concurrent