Your misunderstanding is that we don't need to log each XAResource (branch Xid)
in each transaction.

All we need to do is log the global XIDs that have been prepared and those that
have been committed.

We need a separate list of 'XAResources'. 

When we recover, we ask each XAResource what XIDs it knows about and compare (ignoring 
the branch).

For our own XAResources, we can just log the ObjectName of the 
ManagedConnectionFactory provided by jca.
For other people's XAResources (e.g. DTM), we need a handle/proxy
(serialized in a persistent location) that lets us reconnect to that server.

The downside to this approach however is that we cannot do a partial recovery.
We must have all XAResources available (including remote servers
or an alternate server with the failed server's recovery log) at recovery time.

With your approach, it would be possible to do a partial recovery without all
XAResources available. If an XAResource that is not available didn't take part in a
transaction we could recover this transaction.

The downside of your approach is that you do a lot more logging.

In practise with either approaches, a failure to reconnect to an XAResource
probably means you'll have to fallback to Heuristics, unless you can afford not
to reboot the server.

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3847927#3847927

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3847927


-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM. 
Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to