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#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...