<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
Re: Remote txinflow: XID changes
</h3>
<span style="margin-bottom: 10px;">
created by <a href="http://community.jboss.org/people/tomjenkinson">Tom Jenkinson</a> in <i>JBoss Transactions Development</i> - <a href="http://community.jboss.org/message/633490#633490">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Hi Mark,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>The main issue with delivering this functionality is the additional 3 persistence points, 2 of which we have covered by providing an alternative XID implementation for proxies and subordinates, 1 of which is optional anyway.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>1. The optional persistence point: This persistence point seems to remain, though still optional: when recovering, you need to know which servers to talk to to call recover on for unprepared transactions, you could  argue that transaction timeout is enough for this and it then becomes an transport implementors prerogative whether to persist this information (perhaps this is only done if the transport detects that the transaction does not have a timeout).</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>2. Using alternative XID implementations for proxy XA resources (which have the subordinate and parent node name in the bqual) and for subordinate transactions (which needs subordinate, parent and parents parent) should remove the requirement to record XIDs at a caller server. The reason that the subordinate needs three node names is because the proxy xa resource is enlisted at node 2 say with with a bqual (2,1), it then needs to ask the remote server (say 3) for all subordinate transaction XIDs that the server it is running in as a parent are part of . It will then need to convert these Xids to one its own local server understands was part of a transaction (by dropping the recovered Xids subordinate node name and bumping the other two down a notch -  i.e. converting a bqual of 3,2,1 to 2,1). Unfortunately, the bqual of the subordinate JTA transactions will have a bqual length over 64 bytes, so this does still need investigation to see how different objectstores cope with this.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>3. The normal XID will need to be changed to have the String node identifier used in the bqual and alongside a shortened EIS name, this will get rid of the requirement for dynamic subordinate node allocation, it is relatively painless but will need Jonathans buy in as it will be impacting funtionality (EIS name) that he has provided.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Of course, in reality I have parked this till after I get back from paternity <span> ;) </span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Tom</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/633490#633490">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Transactions Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2041">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>