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

在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 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。