我使用Spring与Websphere MQ进行发布/订阅。 经过几次测试,我可以:
我现在的目标是订阅管理订阅。 通过Websphere Explore,我创建了与本地队列关联的管理订阅 - >行
在我的应用程序中,我想要依据此行政订阅。 我使用与上面步骤2相同的配置:
import numpy as np
minCorAgua = (108,110,115)
maxCorAgua = (166,163,162)
bool_pixels = np.all(((imagem>minCorAgua) & (imagem<maxCorAgua)), axis = 2)
imagem[bool_pixels] = (255, 255, 255)
如果我没有创建订阅,此配置将在队列管理器中使用以下名称创建订阅:
<!-- producer ibmConnectionFactory -->
<bean id="ibmConnectionFactory" class="com.ibm.mq.jms.MQConnectionFactory">
<property name="transportType" value="1" />
<property name="connectionNameList" value="myHostname(1414)" />
<property name="channel" value="CH_CYD_CON" />
<property name="clientId" value="client1" />
</bean>
<bean id="cachedConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="ibmConnectionFactory" />
</bean>
<bean id="emailListener" class="com.myapp.jms.listener.EmailListener">
</bean>
<bean id="smsListener" class="com.myapp.jms.listener.SMSListener">
</bean>
<jms:listener-container connection-factory="singleConnectionFactory" destination-type="durableTopic" transaction-manager="transactionManager"
acknowledge="transacted" destination-resolver="jmsDestResolver" container-type="default" client-id="client1">
<jms:listener id="newsEmailListener" destination="News" ref="emailListener" method="onMessage" subscription="EmailSubscription" />
<jms:listener id="newsSmsListener" destination="News" ref="smsListener" method="onMessage" subscription="SMSSubscription" />
</jms:listener-container>
而且,我可以使用消息。
现在,如果我在Websphere Explorer中创建了订阅,我认为它将起到相同的配置作用。 事实上,结果是我在执行期间没有错误,但我不能使用这些消息。
我正在关注此tutorial,以便在我的MQ管理器中创建我的不同对象。
所以,我的问题是:
我可以直接连接到与管理订阅相关联的队列,但我认为这不是一个好的解决方案。
答案 0 :(得分:1)
由于在Spring框架下使用JMS与MQ交谈,问题在于JMS主要用于完全托管订阅,其创建由客户端代码启动。
可以从JMS使用管理订阅 - 关键是在Explorer中正确创建订阅名称以匹配MQ JMS客户端正在创建的订阅名称。
此technote中提供了有关语法的信息。查看JMS在您工作的情况下创建的动态订阅的名称也很有帮助。如果恰好有一个相同的名称 - JMS将重新打开该订阅。
有一个RFE可以让这个更容易使用 - 请随意添加您的声音。
答案 1 :(得分:0)
管理订阅的目的是允许只能读取队列的应用程序接收在主题上发布的消息。这样的订阅应该由MQ管理员永久创建,以允许应用程序读取目标队列以获取在订阅所针对的主题上发布的消息。
如果您的应用程序能够直接订阅主题,则无需管理订阅即可接收消息。
您可以通过PCF消息(http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.ref.adm.doc/q087050_.htm)以编程方式创建管理订阅,但您不需要。