Tom Jenkinson [
http://community.jboss.org/people/tomjenkinson] created the discussion
"Remote txinflow: XID changes"
To view the discussion, visit:
http://community.jboss.org/message/629621#629621
--------------------------------------------------------------
Just to get the ball rolling on this part of this design discussion, we need to consider
how best to update XidImple to allow the recovery manager to detect transactions managed
by this node as the status quo would leave transactions that flowed to remote servers
un-recoverable as the recovery manager checks the node name encoded in the XidImple would
not have the same node ID as the local server. Also, branches passed to the XAResources
would be the same branch and this could have undesired behavior in the XAResources.
David suggests one approach:
David Lloyd wrote:
You could however use integer packing to make more room; in such a scheme, the bqual bits
which identify the node would still be an integer sequence but would work like this:
For this to work you'd have to treat 0000 as a special padding sequence for the case
where only one nybble of the last byte is used. Thus giving:
0000: padding
0001-0111: resources 0-6
1000 0000-1011 1111: resources 7-70
1100 0000 0000-1101 1111 1111: resources 71-582
etc.
Node names are currently recorded as variable length Strings, one option is to cat the new
node name onto the end of the bqual resulting in:
Xid {
formatId
gtrid - uid + nodename
bqual - [uid (for the sequence number) + jndi name] + [nodename of the subordinate]
}
This will keep the bquals unique between TMs and will facitilitate recovery of this
transaction.
To be continued...
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/629621#629621]
Start a new discussion in JBoss Transactions Development at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]