簡體   English   中英

如何在Spring中為MQSeries創建TopicConnectionFactory?

[英]How do I create a TopicConnectionFactory for MQSeries in Spring?

我已經閱讀了有關配置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=********

<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>

使用此配置, queueConnectionFactory bean可以作為MQQueueConnectionFactory輕松注入到我的類中。

但我想使用發布/訂閱模型,據我所知,我需要為此獲取MQTopicConnectionFactory。 我已經找遍和試過無數的事情,但我不能找到如何讓我得到一個MQTopicConnectionFactory,而不是一個MQQueueConnectionFactory修改這個配置,或MQ安裝的任何信息。

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定義托管對象的更多信息,請參閱: 創建和配置JMS管理對象

如果您需要一個包含如何使用IBM的JMSAdmin工具來創建.bindings文件的演示的教程,請查看在WebSphere MQ V6.0上運行獨立Java應用程序 (JMSAdmin工具隨WMQ Server一起安裝,我相信它還附帶了上面鏈接的免費MS0T WMQ客戶端安裝。)JMSAdmin工具的文檔在這里: 使用WebSphere MQ JMS管理工具

無論您選擇哪種方法來創建托管對象,都可以在以下位置查找IBM實現中支持的所有可能屬性: JMS對象的WebSphere MQ類的屬性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM