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)
xa_bqual is often used together with xa_gtrid. This example returns the global transaction IDs and branch qualifiers from all rows in systransactions where its coordinator column is the value of “3”:
1> select gtrid=xa_gtrid(xactname,0), bqual=xa_bqual(xactname,0) from systransactions where coordinator = 3 2> go
gtrid bqual -------------------------------------------------------------------------- -------------------------------------------------------------------------- 0xb1946cdc52464a61cba42fe4e0f5232b 0x227f06ca80
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_gtrid does not perform a validation check on the xid, but only returns a translated string.
ANSI SQL – Compliance level: Transact-SQL extension.
Any user can use xa_gtrid.
Functions xa_bqual