gpt4 book ai didi

java - 从 Websphere MQ 中删除动态主题

转载 作者:行者123 更新时间:2023-11-29 03:00:34 29 4
gpt4 key购买 nike

我有一个 Java 程序,它在创建新主题(订单)时发布它们。当订单更新时,更改的 Order 对象将重新发布。下面的示例代码;

Topic topic = topicSes.createTopic("/DepartmentA/ProjectB/Orders/"+ order.getOrderId());
TopicPublisher topicPub = topicSes.createPublisher(topic);
ObjectMessage om = topicSes.createObjectMessage(order);
om.setIntProperty(JmsConstants.JMS_IBM_RETAIN, JmsConstants.RETAIN_PUBLICATION);
topicPub.send(om);

我发布了一条有毒消息(带有“DEAD”参数的消息对象),以便现有订阅者知道我们已经完成了。但是,我不明白的是,一旦完成,如何处理该主题,以便新订阅者不接受它?

在我的 MQ Explorer session (MQ Manager 7.5) 中,我的主题列表是空的。我认为这是因为主题是动态的。只有当我右键单击[主题] 并选择[状态...] 时,我才能看到我的主题字符串。如果我右键单击主题字符串并选择 [清除本地保留的出版物...],主题最终会消失。最后我要说的是,它不是立竿见影的,大约需要 30 分钟才会消失。

理想情况下,我想在 JMS、MQ Java 库或 MQ PCF 中以编程方式处理主题字符串。我该怎么做呢? (我不能使用 TemporaryTopics,因为在订单的生命周期中发布过程可能会下降/上升)。

我还尝试通过“runmqsc”查询和清除主题。我不明白的是;

对于显示主题;显示主题字符串的语法是什么 - 语法说明它应该是 DISPLAY TOPIC (topic) TOPICSTR(string),但是对于给定的字符串“/DepartmentA/ProjectB/Orders/123”,我尝试了各种组合,但对我没有任何用处。我似乎只能让它为管理主题工作。

对于 CLEAR TOPICSTR,我可以将任何内容作为主题字符串参数,“runmqsc”从不报错,但即使字符串正确,它仍然什么也不做。 CLEAR TOPICSTR 的正确语法应该是什么?

我应该将“/DepartmentA”设为托管主题吗?

最佳答案

默认的 TREELIFE 为 30 分钟,您可以更改 TREELIFE 间隔。查看以下 MQ 信息中心 URL 了解详细信息。

http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.pla.doc/q005060_.htm?lang=en

关于java - 从 Websphere MQ 中删除动态主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35253210/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com