Returns the binary version of the gtrid component of an ASCII XA transaction ID.
xa_gtrid(xactname, int)
is the ID of an Adaptive Server transaction, obtained from the xactname column in systransactions or from sp_transactions.
is reserved for future use.
In this typical situation, returns “0x227f06ca80,” the binary translation of the branch qualifier, and “0xb1946cdc52464a61cba42fe4e0f5232b,” the global transaction ID, for the Adaptive Server transaction ID “0000000A_IphIT596iC7bF2#AUfkzaM_8DY6OE0”:
1> select xa_gtrid("0000000A_IphIT596iC7bF2#AUfkzaM_8DY6OE0", 0) 2> go
... -------------------------------------------------------------------------- 0xb1946cdc52464a61cba42fe4e0f5232b (1 row affected)
If an external transaction is blocked on Adaptive Server and you are using sp_lock and sp_transactions to identify the blocking transaction, you can use the XA transaction manager to terminate the global transaction. However, when you execute sp_transactions, the value of xactname it returns is in ASCII string format, while XA Server uses an undecoded binary value. Using xa_gtrid thus allows you to determine the gtrid portion of the transaction name in a format that can be understood by the XA transaction manager.
xa_gtrid returns:
The translation version of tis string that follows the first “_” (underscore) and preceeds either the second “_” or end-of-string value, whichever comes first.
NULL if the transaction ID cannot be decoded, or is in an unexpected format.
xa_bqual is often used with xa_gtrid.
xa_gtrid does not perform
a validation check on the xid.
ANSI SQL – Compliance level: Transact-SQL extension.
Any user can use xa_gtrid.
Function xa_bqual