[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Issue 117 - Standard tid request for XA
Issue number 117. From: Mark Little
[mailto:mlittle@redhat.com] A common interaction pattern when using WS-AtomicTransaction
is bridging between XA domains. XA has a well defined format for TIDs and it
would be nice (aka helpful for users and developers) if we also had a standard
format for WS-AT TIDs that matched, when running in these kinds of environment,
i.e., not mandated for all uses of WS-AT, but an optional supported capability
when the coordinator and participants agree. Here is one simple suggestion (from one of our
developers): a transaction id scheme ("trid"), followed by a
path that contains only the formatId and by a query ("?") that
contains the globalTransactionId part of the Xid.
trid:<formatId>?<globalTransactionId> The
<formatId> part is either -1 (to represent a null transaction id) or the decimal
representation of a non-negative 32-bit integer. The
query part (?<globalTransactionId>) shall be present if and only if the
formatId is not -1. The <globalTransactionId> is a percent-encoded
representation (according to the percent-encoding conventions in RFC 3986) of
the global transaction id part of the Xid. Examples:
"trid:-1" (null trid)
"trid:6789?http://Fabrikam123.com/SS/1234"
(formatId=6789, globalTransactionId=" http://Fabrikam123.com/SS/1234")
"trid:6789?%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%F0%FF"
(formatId=6789, globalTransactionId=[00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D
0E 0F F0 FF]) The
use of a query ("?") for the globalTransactionId part eliminates the
need for percent-encoding any occurrences of the chars "/" or
"?" in the global transaction id. This is good for global transaction
ids that are URIs. (This is the case in the second example above). Note
that there is no branch qualifier in a trid URI, as branch qualifiers do not
need to be propagated across TMs/appservers. This is the main reason we would
prefer an URI scheme like "trid" (over "xid", which
suggests the presence of a branch qualifier). This
proposal is better for textual global ids than for binary ones. We could have
an alternate scheme that would make binary global ids shorter, e.g.:
"hextrid:6789?000102030405060708090A0B0C0D0E0FF0FF" Or
we could still use the same "trid" scheme and have a longer path
instead of a query:
"trid:6789:000102030405060708090A0B0C0D0E0FF0FF" The
occurrence of a ":" instead of a "?" would indicate that
the global id is hex-encoded within the path. Mark. ---- Mark Little JBoss, a Division of Red Hat Registered Address: Red Hat UK Ltd, Amberley Place, 107-111
Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom. Registered in UK and Wales under Company Registration No.
3798903 Directors: Michael Cunningham (USA), Charlie Peters (USA), Matt
Parsons (USA) and Brendan Lane (Ireland)
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]