我已将websphere配置为weblogic中的外部服务器,但现在我在连接到Foreign Connectionfactory时遇到错误,如下所示:
消息驱动的EJB是事务性的,但是由JNDI名称引用的JMS连接工厂:jms / WASQCF不是JMS XA连接工厂。
我不确定如何使Websphere连接工厂XA兼容?
我正在使用Websphere 8.5和using Queue Connection Factory
,我没有使用MQ系列
答案 0 :(得分:2)
答案因您正在处理的MQ客户端版本而异。由于未提及客户端版本,我将提供一般性答案。
直到几年前,IBM打包了没有启用XA事务功能的免费客户端。如果您最近没有下载MQ客户端,则它无法参与XA事务。如果您有较旧的非XA MQ客户端,请下载较新的。
当然,IBM当时确实提供了支持XA的客户端。不幸的是,事务客户端的成本与完整MQ服务器的成本相同。如果您拥有较旧的事务客户端,则 能够参与XA事务,但它已停止服务。在这种情况下,请下载较新的客户端。
如果您已下载了能够执行XA事务的新MQ客户端,请参阅您的MQ客户端版本的Detailed System Requirements页面,然后深入查看“支持的软件”选项卡。在那里,向下滚动到“Transaction Servers and Gateways”部分。
例如,V8.0要求页面中的此部分说明:
JMS的WebSphere MQ类只能参与全局 通过Java EE连接器体系结构访问时的事务 (JCA)资源适配器,只能与合适的一起使用 应用服务器环境。
有关使用资源适配器的更多详细信息 应用程序服务器,请参阅上面的Application Server部分和 WebSphere MQ资源适配器支持文档声明。
然后链接到WebSphere MQ resource adapter v7.1 and later statement of support,其中列出了已经过JCA适配器测试的JEE服务器以及其他信息。
假设所有pre-req都已到位且您有一个具有事务功能的MQ客户端,请确保为MQ定义XAConnectionFactory
。