微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 如何在Spring中为MQSeries创建TopicConnectionFactory?

我已经阅读了有关配置QueueConnectionFactories的文章http://techtots.blogspot.com/2010/01/connecting-to-mq-using-spring-without.html,并让这方面的工作很好.

# MQ related values
mq.jms.qcf=QM_Epsilon
mq.jms.request.queue=TEST.REQUEST.QUEUE

# Connection details
mq.host.url=localhost:1414/SYstem.DEF.SVRCONN
mq.factoryclass=com.ibm.mq.jms.context.WMQInitialContextFactory

# Authentication details
mq.auth=simple
mq.user=******
mq.password=********
diobjectfactorybean">
    ecurity.authentication">${mq.auth}ecurity.principal">${mq.user}ecurity.credentials">${mq.password}

使用此配置,queueConnectionFactory bean可以作为MQQueueConnectionFactory轻松注入到我的类中.

但我想使用发布/订阅模型,据我所知,我需要为此获取MQTopicConnectionFactory.我已经到处搜索并尝试了很多东西,但是我找不到有关如何修改此配置或MQ安装的任何信息,以便我获得MQTopicConnectionFactory而不是MQQueueConnectionFactory.

最佳答案
WMQInitialContextFactory是一个通过WebSphere MQ队列实现JNDI提供程序的类.它们不是将托管对象存储在.bindings文件或LDAP中,而是序列化并存储在队列中,此类允许您将该队列视为另一个JNDI存储.此类只是作为JNDI提供程序,而不是实际IBM JMS实现的替代.由于在主题上存储托管对象不起作用,因此这些类中没有主题工厂.这是预期的.

在我看来,WMQInitialContextFactory的问题在于它必须首先连接到WebSphere MQ才能获得连接工厂,然后告诉应用程序 – 您猜对了 – 如何连接到WebSphere MQ.这使得链接文章变得令人困惑,因为看起来所有配置,WMQ连接细节等等都是为了应用程序的利益,而实际上它们只是引导JNDI提供程序,该提供程序需要定义连接工厂对象.所有这些相同的信息.

本文缺少的是作者必须使用IBM的JMSAdmin工具连接到MQInitialContext,并在将应用程序连接到同一个初始上下文之前定义ConnectionFactory和其他受管对象才能访问它们.

为了记录,WebSphere MQ JMS类已经支持JMS 1.1 ConnectionFactory和Destination类很长一段时间了.在此之前,他们根据JMS 1.0规范支持队列和主题.

您可以将IBM WMQ JMS实现下载为SupportPac MQC7.除了jar文件之外,还有很多其他内容.例如,您可以获得大量示例代码,诊断和跟踪实用程序,文档等.您还可以获得正确的jar文件.

如果要使用.bindings文件(文件系统初始上下文)而不是WMQInitialContextFactory,请将最新的WebSphere MQ资源管理器工具下载为SupportPac MS0T.您可以创建目录,将WMQ Explorer指向它并定义所有连接工厂和目标. (或者使用特定于域的QueueConnectionFactory和TopicConnectionFactory,如果您将它放在旧学校.)有关使用WMQ Explorer定义托管对象的更多信息,请访问:Creating and configuring JMS administered objects

如果您需要一个包含如何使用IBM JMSAdmin工具创建.bindings文件的演示的教程,请查看Running a standalone Java application on WebSphere MQ V6.0.(JMSAdmin工具随WMQ Server一起安装,我相信它还附带免费的MS0T WMQ客户端安装上面链接.)JMSAdmin工具的文档在这里Using the WebSphere MQ JMS administration tool

无论您选择哪种方法来创建托管对象,都可以在以下位置查找IBM实现中支持的所有可能属性Properties of WebSphere MQ classes for JMS objects

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐