[jboss-dev-forums] [Design of JCA on JBoss] - Re: JBAS-5278 Errors .

clebert.suconic@jboss.com do-not-reply at jboss.com
Thu Apr 3 14:28:37 EDT 2008


This is a JCA adapter bug.

I - org.jboss.resource.adapter.jms.JmsManagedConnection doesn't know if JmsXA supports XA or not
II - JBossMessaging Connection Factories will implement both XAConnectionFactory and ConnectionFactory
 (BTW: There is nothing wrong with this. This is just an implementation point).

III - JmsManagedConnection will use an instanceof to determine if it should open an XA or a regular transaction:

You will find lots of things like:


  |             if (con instanceof XATopicConnection)
  |             {
  |                xaTopicSession = ((XATopicConnection)con).createXATopicSession();
  |                topicSession = xaTopicSession.getTopicSession();
  |                xaTransacted = true;
  |             }
  |             else if (con instanceof TopicConnection)
  |             {
  |                topicSession =
  |                   ((TopicConnection)con).createTopicSession(transacted, ack);
  |                if (trace)
  |                   log.trace("Using a non-XA TopicConnection.  " +
  |                             "It will not be able to participate in a Global UOW");
  |             }
  | 


Instead of relaying on the implementation details of the ConnectionFactory,  IMO JCA should be extending JmsConnectionRequestInfo to determine if the request is for a XA or a non XA connection. 

I believe this would be an issue with other JMS implementations as well (besides JBossMQ).

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

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



More information about the jboss-dev-forums mailing list