Jam*_*ods 5 java spring ibm-mq
我已经阅读了有关配置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=********
Run Code Online (Sandbox Code Playgroud)
<bean id="queueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${mq.jms.qcf}" />
<property name="resourceRef" value="false" />
<property name="jndiEnvironment">
<props>
<prop key="java.naming.factory.initial">${mq.factoryclass}</prop>
<prop key="java.naming.provider.url">${mq.host.url}</prop>
<prop key="java.naming.security.authentication">${mq.auth}</prop>
<prop key="java.naming.security.principal">${mq.user}</prop>
<prop key="java.naming.security.credentials">${mq.password}</prop>
</props>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
使用此配置,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 Explorer 工具SupportPac MS0T。您可以创建一个目录,将 WMQ Explorer 指向该目录并定义所有连接工厂和目标。(或者如果您喜欢老派,则使用特定于域的 QueueConnectionFactory 和 TopicConnectionFactory。)有关使用 WMQ Explorer 定义托管对象的更多信息可以在以下位置找到:创建和配置 JMS 管理对象
如果您想要一个包含如何使用 IBM 的 JMSAdmin 工具创建 .bindings 文件演示的教程,请查看在 WebSphere MQ V6.0 上运行独立的 Java 应用程序。(JMSAdmin 工具随 WMQ 服务器一起安装,我相信它还附带上面链接的免费 MS0T WMQ 客户端安装。)JMSAdmin 工具的文档位于此处:使用 WebSphere MQ JMS 管理工具
无论您选择哪种方法来创建托管对象,您都可以在以下位置查找 IBM 实现中支持的所有可能属性:Properties of WebSphere MQ classes for JMS objects
| 归档时间: |
|
| 查看次数: |
4187 次 |
| 最近记录: |