[Design of JCA on JBoss] - Re: JBossTS/JCA Recovery work for JBoss 4.2
by timfox
"weston.price(a)jboss.com" wrote :
| For JCA inflow, it has to be through JCA as I am the one initiating the transaction calling XASession.getXAResource() so I am not sure how your recovery stuff would come into play. Also, for outbound connections (ie JDBC) this has to be done to properly register recoverables with JBossTS.
Why does it matter who initiated the tx?
For recovery with JBoss TS, as long as you have provided an XAResourceRecovery instance, the recovery manager will call upon that to get an XAresource then call recover() on that to get the list of xids from the resource manager. (You can also make the XAresource serializable but that is another story)
The recovery manager will then call commit or rollback on them as it deems appropriate.
I don't see what relevance it has who started the transaction.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4005948#4005948
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4005948
19 years, 2 months
[Design of JCA on JBoss] - Re: JBossTS/JCA Recovery work for JBoss 4.2
by bill.burke@jboss.com
anonymous wrote : 2)Provide a serializable wrapper to support XA resource recovery using JBossTS.
|
| It was my plan to use this wrapper both on the inbound and outbound for JCA. From my understanding, this would enable JBossTS to reconsruct the XAResource and call recover as the XAResource (in this case the wrapper) would be written to the transaction log enabling JBossTS to do it's thing.
|
One issue with this is that the user that executed the original transaction may not have permission to perform a recovery. For instance, only a DBA may have the permission to perform recovery on the database. Also, because the XA spec is a bit ambiguous, different XAResources of different vendors may have different requirements on what flags you pass into XAResource.recover(). There's also the general problem that some XAResources require Xid padding and others don't. I'm guessing that JBoss TS solves the latter two problems in very very hacky ways that are easy to break as there is no defined integration contract between JBoss, JBoss JCA, and Arjuna. I do not know how or if they solve the permission problem.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4005943#4005943
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4005943
19 years, 2 months
[Design of JCA on JBoss] - JBossTS/JCA Recovery work for JBoss 4.2
by weston.price@jboss.com
Currently in the 4.2 branch the
| org.jboss.resource.connectionmanager.xa.JcaXAResourceWrapper
|
has been provided for two reasons:
1) We needed a way to override the isSameRM method to address a well known WebSphereMQ bug where mutliple XAResouces could not be enlisted in the same transaction from the same RM. Basically this simply amounted to moving the isSameRM stuff that was originally done for Oracle to be more generic.
2)Provide a serializable wrapper to support XA resource recovery using JBossTS.
It was my plan to use this wrapper both on the inbound and outbound for JCA. From my understanding, this would enable JBossTS to reconsruct the XAResource and call recover as the XAResource (in this case the wrapper) would be written to the transaction log enabling JBossTS to do it's thing.
I wanted to throw this out in the forum just be sure I am not missing anything and to solicit advice as to if this is the appropriate approach to take. The alternative approach would be to implement the
| com.arjuna.ats.jta.recovery.XAResourceRecovery
|
interface and do things in the same manner as the JMS recovery work.
Thoughts?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4005906#4005906
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4005906
19 years, 2 months