dzmonkeyBLOG 2008-07-03 10:49
浏览 890
已采纳

在IBM MQ中创建topic完成pub/sub通信的问题

目的是在was中配置mq的连接工厂和目标和MQ通信,queue部分都已经实现了,但是在尝试topic时出现了问题:
mq中没有类似queue一样的topic对象,它是通过broker实现发布/订阅的。我照着网上的资料用MQJMS_PSQ.mqsc创建并且启动了队列管理器的代理控制器

[code="java"]C:\Documents and Settings\Administrator>dspmqbrk -m QM_TTL

队列管理器 QM_TTL 的 WebSphere MQ Publish/Subscribe 代理正在运行。[/code]

[color=red]但是,mq里的topic是什么样的概念呢? 我如何创建一个topic呢?

在was配置主题连接工厂和主题目标时,主题目标里有一项是“基本主题名”,怎么填呢? [/color]

后续:(“基本主题名”里随便填了个mq里的队列名,瞎填的)
was启动时,显示jndi绑定成功,但是在启动jms发送程序发送message的时候,was错误:
[code="java"][08-7-1 14:07:38:844 CST] 00000021 ConnectionEve A J2CA0056I: 连接管理器接收到来自资源 JMS$mq.topic.cf$JMSManagedConnection@528635340 的资源适配器的致命连接错误。接收到的异常为 com.ibm.mq.jms.NoBrokerResponseException: MQJMS5053: *** 无代理程序响应。请确保代理程序正在运行。如果您正在使用 WebSphere MQ 代理程序,检查您的 brokerVersion 是否设置为 V1 ***

[08-7-1 14:07:38:859 CST] 00000021 ConnectionEve A J2CA0056I: 连接管理器接收到来自资源 mq/topic/cf 的资源适配器的致命连接错误。接收到的异常为 com.ibm.mq.jms.NoBrokerResponseException: MQJMS5053: *** 无代理程序响应。请确保代理程序正在运行。如果您正在使用 WebSphere MQ 代理程序,检查您的 brokerVersion 是否设置为 V1 ***

[08-7-1 14:07:39:047 CST] 00000021 ServletWrappe E SRVE0068E: 无法调用 servlet TestTopicServlet 的 service() 方法。抛出异常:org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is com.ibm.mq.jms.NoBrokerResponseException: MQJMS5053: *** 无代理程序响应。请确保代理程序正在运行。如果您正在使用 WebSphere MQ 代理程序,检查您的 brokerVersion 是否设置为 V1 **; nested exception is com.ibm.mq.MQException: MQJE001:完成码 2,原因码 2033

Caused by: com.ibm.mq.jms.NoBrokerResponseException: MQJMS5053: *
* 无代理程序响应。请确保代理程序正在运行。如果您正在使用 WebSphere MQ 代理程序,检查您的 brokerVersion 是否设置为 V1 ***

at com.ibm.mq.jms.MQPubSubServices.getBrokerResponse(MQPubSubServices.java:443)

at com.ibm.mq.jms.JMSServicesMgr.getBrokerResponse(JMSServicesMgr.java:173)

at com.ibm.mq.jms.MQMessageProducer.checkBrokerResponse(MQMessageProducer.java:2685)

at com.ibm.mq.jms.MQMessageProducer.publish(MQMessageProducer.java:1882)

at com.ibm.mq.jms.MQTopicPublisher.publish(MQTopicPublisher.java:222)

at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:976)

at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:1056)

at com.ibm.ejs.jms.JMSMessageProducerHandle.send(JMSMessageProducerHandle.java:1169)

at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:538)

at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:515)

.......

---- Begin backtrace for Nested Throwables

com.ibm.mq.MQException: MQJE001:完成码 2,原因码 2033

at com.ibm.mq.MQQueue.getMsg2(MQQueue.java:989)

at com.ibm.mq.jms.MQPubSubServices.getBrokerResponse(MQPubSubServices.java:410)

at com.ibm.mq.jms.JMSServicesMgr.getBrokerResponse(JMSServicesMgr.java:173)

at com.ibm.mq.jms.MQMessageProducer.checkBrokerResponse(MQMessageProducer.java:2685)

at com.ibm.mq.jms.MQMessageProducer.publish(MQMessageProducer.java:1882)

at com.ibm.mq.jms.MQTopicPublisher.publish(MQTopicPublisher.java:222)

at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:976)

........ [/code]

谁能帮帮忙阿?
[b]问题补充:[/b]
回复“baallee”:

“BASIC.TOPIC.NAME”这个jndi是在was中配置的啊,那么这个配置怎么做呢?

was中配置主题目标时,有一项是“基本主题名”,怎么填呢?

[b]问题补充:[/b]
回复“lijie250 ”:
java代码呢?

  • 写回答

3条回答 默认 最新

  • baalee 2008-07-03 16:57
    关注

    IBM MQ 无须在服务器中设定TOPIC
    在程序运行时指定你期望的“基本主题名”

    spring的配置可能就是这样
    [code="xml"]
    class="org.springframework.jndi.JndiObjectFactoryBean">




    BASIC.TOPIC.NAME


    [/code]
    MQ 会为你创建 TOPIC 并管理他。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器