我已经阅读了有关配置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才能获得连接工厂,然后告诉应用程序 – 您猜对了 – 如何连接到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