0

I created a topic connection factory using the WebSphere MQ messaging provider in WAS7. When I lookup the JNDI name, I am given a factory object of type com.ibm.ejs.jms.JMSTopicConnectionFactoryHandle. This implements TopicConnectionFactory, but doesn't implement XATopicConnectionFactory.

In my topic connection factory, I have checked the box that says "Support distributed two phase commit protocol".

How do I create a topic connection factory that implements the XA interface? Do I need to? Does this JMSTopicConnectionFactoryHandle handle XA messages anyway?

spot35
  • 888
  • 4
  • 9

1 Answers1

1

XATopicConnectionFactory defines an API that is used between the JMS provider and the application server (more precisely the transaction manager). On the other hand, the topic connection factory returned to the application is a wrapper that never implements that interface. The reason is that applications are not expected to interfere with XA features directly; managing the individual resources in a distributed transaction is the exclusive responsibility of the transaction manager.

Andreas Veithen
  • 8,868
  • 3
  • 25
  • 28
  • I tend to agree. Unfortunately, I'm hamstrung by the software I'm using requiring that the connection factory returned extend XATopicConnectionFactory if XA is enabled in the software. I'm thinking about creating a new Resource Adaptor that will return an implementation of the XA versions of the connection factories. – spot35 Nov 07 '12 at 08:33
  • What kind of software is this? – Andreas Veithen Nov 07 '12 at 08:49
  • ATG. The internal JMS implementation has checks to ensure that any third party connection factories implement the correct interfaces. – spot35 Nov 07 '12 at 10:02