sp_transactions ["xid", <xid_value>] |
["state", {"heuristic_commit" | "heuristic_abort"
| "prepared" | "indoubt"} [, "xactname"]] |
["gtrid", <gtrid_value>]
<xid_value>
是 master.dbo.systransactions 的 xactname 列中的事务名称。
<gtrid_value>
是由 SAP ASE 服务器协调的事务的全局事务 ID 名称。
显示有关所有活动事务的一般信息:
sp_transactions
xactkey type coordinator starttime state
connection dbid spid loid failover srvname namelen xactname
------------------------------ ---- ----------- ---------------- ---------
---------- ---- ---- ---- -------- -------- ------- -------------------
0x00000b1700040000dd6821390001 Local None Jun 1 1999 3:47PM Begun
Attached 1 1 2 Resident Tx NULL 17
$user_transaction
0x00000b1700040000dd6821390001 Remote ASTC Jun 1 1999 3:47PM Begun
NA 0 8 0 Resident Tx caserv2 108
00000b1700040000dd6821390001-aa01f04ebb9a-00000b1700040000dd6821390001-aa0
1f04ebb9a-caserv1-caserv1-0002
显示指定事务的详细信息:
sp_transactions "xid", "00000b1700040000dd6821390001-aa01f04ebb9a-00000b1700040000dd6821390001-aa01f04ebb9a-caserv1-caserv1-0002"
xactkey type coordinator starttime state
connection dbid spid loid failover srvname namelen xactname
commit_node parent_node
gtrid
------------------------------ ----------- ----------- ---------- ------- ---------- ------ ------ --------- -------- --------- ---------- -------
------------- ------------- -------------
0x00000b2500080000dd6821960001 External ASTC Jun 1 1999 3:47PM Begun
Attached 1 8 139 Resident Tx NULL 108
00000b1700040000dd6821390001-aa01f04ebb9a-00000b1700040000dd6821390001-aa0
1f04ebb9a-caserv1-caserv1-0002
caserv1 caserv1
00000b1700040000dd6821390001-aa01f04ebb9a
显示处于“就绪”状态的事务的一般信息:
sp_transactions "state", "prepared"
只显示处于“就绪”状态的事务的事务名称:
sp_transactions "state", "prepared", "xactname"
显示具有指定全局事务 ID 的事务的状态信息:
sp_transactions "gtrid", "00000b1700040000dd6821390001-aa01f04ebb9a"
xactkey type coordinator starttime state
connection dbid spid loid failover srvname namelen xactname
commit_node
parent_node
------------------------------ ------- ---------- ----------------- -----------
<h2> ---------- ------ ------ ----------- ------------ --------------- -------</h2>
-------------
0x00000b1700040000dd6821390001 Local None Jun 1 1999 3:47PM Begun
Attached 1 1 2 Resident Tx NULL 17 $user_transaction
caserv1
caserv1
使用 sp_transactions 时,还存在一些其它注意事项:
| 列 | 说明 |
|---|---|
| xactkey | 该列显示 SAP ASE 服务器用于标识事务的内部事务键。 |
| type | 该列指示事务的类型:· “Local”表示该事务是用 begin transaction 语句在本地 SAP ASE 服务器上显式启动的。· “Remote”表示事务在远程 SAP ASE 服务器上执行。· “External”表示该事务有一个与其相关联的外部事务协调器。例如,由远程 SAP ASE 服务器、MSDTC 或 X/Open XA 事务管理器协调的事务标记为“External”。· “Dtx_State”是由 SAP ASE 服务器协调的分布式事务的一种特殊状态。它表示已在本地服务器上提交或中止了某个事务,但 SAP ASE 服务器无法在远程参与者上解析该事务的分支。如果 SAP ASE 服务器失去了与它正在协调的服务器的联系,则可能会出现这种情况。 |
| coordinator | 该列指示用于管理分布式事务的方法或协议。协调器的值为:· None – 事务不是分布式事务,因此不需要协调协议。· ASTC – 事务通过 SAP ASE 事务协调服务进行协调。· XA – 事务是由符合 X/Open XA 的事务管理器通过 SAP ASE XA-Library 接口协调的。这样的事务管理器包括 Encina、CICS 和 Tuxedo,等等。· DTC – 事务是由 MSDTC 协调的。· SYB2PC – 事务是使用 Sybase 两阶段提交协议协调的。 |
| starttime | 该列显示该事务启动的时间。 |
| state | 该列指示运行 sp_transactions 时该事务的状态:· Begun – 事务已经启动,但尚未执行任何更新。·Done Command – 事务已完成一个更新命令。·Done – X/Open XA 事务已修改完数据。·Prepared·事务已成功准备就绪。·In Command – 事务当前正在修改数据。·In Abort Cmd – 已中止了事务中当前命令的执行。·Committed – 已成功提交了事务,并且已写入了提交日志记录。·In Post Commit – 已成功提交了事务,但当前正在释放事务资源。·In Abort Tran – 正在中止事务。这可能是由显式执行某个命令导致的,也可能是因系统故障导致的。·In Abort Savept – 正在将事务回退到一个保存点。·Begun-Detached – 事务已开始,但当前没有线程附加到该事务。·Done Cmd-Detached – 事务已修改完数据,而且当前没有线程附加到该事务。·Done-Detached – 事务已修改完数据,而且当前没有线程附加到该事务。·Prepared-Detached – 事务已成功准备就绪,而且当前没有线程附加到该事务。·Heur Committed – 已使用 dbcc complete_xact 命令尝试提交了事务。·Heur Rolledback – 已使用 dbcc complete_xact 命令尝试回退了事务。 |
| connection | 该列指示该事务当前是否与线程相关联:·“Attached”表示该事务有相关联的控制线程。·“Detached”表示当前没有线程与该事务相关联。一些外部事务管理器(例如,CICS 和 TUXEDO)使用 X/Open XA“suspend”和“join”语义将不同的线程与同一事务相关联。 |
| dbid | 该列显示启动该事务的数据库的数据库 ID。 |
| spid | 该列指示与该事务相关联的服务器进程 ID。如果事务状态为“Detached”,则“spid”值为 0。 |
| loid | 该列指示 master.dbo.systransactions 中的唯一锁所有者 ID。 |
| failover | 该列指示该事务的故障切换状态:·“Resident Tx”表示事务已启动,并且正在同一服务器上执行。在正常工作条件下,不使用 SAP ASE 高可用性功能的系统上将显示“Resident Tx”。·在已故障切换到辅助协同服务器后,将显示“Failed-over Tx”。“Failed-over Tx”表示事务原来在主服务器上启动并达到就绪状态,但被自动迁移到辅助协同服务器上(例如,因为主服务器发生了系统故障)。就绪事务的迁移对于外部协调服务来说是透明的。·“Tx by Failover-Conn”表示曾尝试在指定的服务器上启动该事务,但却在辅助协同服务器上启动了该事务。在原服务器发生故障切换时,可能会出现这种情况。 |
| srvname | 该列显示正在执行该事务的远程服务器的名称。此列仅对远程事务有意义。对于本地和外部事务,srvname 为空。 |
| namelen | 该列显示 <xactname> 值的总长度。·<xid>)由一个全局事务标识符和一个分支限定符组成,两者都存储在 <xactname> 中。 |
| gtrid | 对于由 SAP ASE 服务器协调的事务,该列显示全局事务 ID。事务分支是同一分布式事务的一部分,它们共享同一个 gtrid。可以使用特定的 gtrid 和 sp_transactionsgtrid 关键字来确定同一分布式事务中其它事务分支的状态。sp_transactions 不能显示具有外部事务协调器的事务的 gtrid。对于由符合 X/Open XA 要求的事务管理器、MSDTC 或 SYB2PC 来协调的事务,gtrid 列将显示外部事务协调器提供的完整事务名称。 |
| commit_node | 对于由 SAP ASE 服务器协调的事务,该列显示执行该分布式事务的最外层块的服务器。这个最外层块最终确定所有下级事务的提交状态。对于不是由 SAP ASE 服务器协调的事务,commit_node 显示以下值之一:·<server_name> – 提交节点或父节点是具有指定 <server_name> 的 SAP ASE 服务器。·XATM – 提交节点或父节点是符合 X/Open XA 的事务管理器。·MSDTCTM – 提交节点或父节点是 MSDTC。·SYB2PCTM – 事务是使用 SYB2PC 协议协调的。 |
|parent_node|对于由 SAP ASE 服务器协调的事务,该列显示在本地服务器上协调外部事务的服务器。对于不是由 SAP ASE 服务器协调的事务,parent_node 将显示与 commit_node 相同的值。注意commit_node 和 parent_node 的值可能会因分布式事务中的层次级别而有所不同。|