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

前端之家收集整理的这篇文章主要介绍了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">
    

使用此配置,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

猜你在找的Spring相关文章