monitoring - 如何配置 IIB 10 以将 monitoring_event 消息作为持久性发布到持久性 MQ 队列?

标签 monitoring ibm-mq ibm-integration-bus

我想配置 IIB 10 和 MQ 8,以便将发布的监控事件消息持久保存在一个持久的 MQ 队列中。
手册位于:https://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac37850_.htm
有一个注释说:

Publications resolve to be nonpersistent by default, but you can change a publication to be persistent by configuring named topics in WebSphere® MQ. For more information, see the Subscriptions and message persistence topic in the WebSphere MQ Version 7.5 product documentation online.


不幸的是,这个对旧版本 MQ 的奇怪引用无济于事。
我浏览了 MQ 手册,该手册在资源管理器中定义了主题定义中的字段,但没有帮助,因为“默认持久性”要求发布者使用 MQPER_PERSISTENCE_AS_Q_DE F. 由于 IIB 的默认值是“非持久性”,我必须假设它不使用它。
如果有人能告诉我如何覆盖它并将持久消息写入持久队列,我将不胜感激。
FWIW
我最初认为将队列定义为持久的接收事件消息可以解决问题 - 事实并非如此。
接下来,我尝试定义一个主题 XXX带有主题字符串 $SYS/Broker/int-sver/monitoring/+/+将“默认持久性”设置为“持久性” - 这也不起作用。

最佳答案

您提到文档状态“默认情况下出版物解析为非持久性”,这并不意味着他们使用 MQPER_NOT_PERSISTENT ,可能他们使用 MQPER_PERSISTENCE_AS_Q_DEF或者什么都不指定,在这种情况下,它默认与 MQPER_PERSISTENCE_AS_Q_DEF 相同被指定。
问题在于您的主题字符串。 TOPIC 对象是树中叶子的 anchor 。除非适用更具体的 TOPIC 对象,否则它适用于该叶子以下的任何内容。所以在你的情况下,字符串应该是 $SYS/Broker/int-sver/monitoring没有 /+/+在末尾。+是通配符,通配​​符只在订阅上起作用,而不是在主题上起作用。

您可以在 IBM MQ v8.0 知识中心页面 IBM MQ>Technical overview>IBM MQ objects>Object types>Topic objects 中找到更多信息:

A topic object is an IBM® MQ object that allows you to assign specific, non-default attributes to topics.

A topic is defined by an application publishing or subscribing to a particular topic string. A topic string can specify a hierarchy of topics by separating them with a forward slash character (/). This can be visualized by a topic tree. For example, if an application publishes to the topic strings /Sport/American Football and /Sport/Soccer, a topic tree will be created that has a parent node Sport with two children, American Football, and Soccer.

Topics inherit their attributes from the first parent administrative node found in their topic tree. If there are no administrative topic nodes in a particular topic tree, then all topics will inherit their attributes from the base topic object, SYSTEM.BASE.TOPIC.

You can create a topic object at any node in a topic tree by specifying that node's topic string in the TOPICSTR attribute of the topic object. You can also define other attributes for the administrative topic node. For more information about these attributes, see the The MQSC commands, or the Automating administration tasks. Each topic object will, by default, inherit its attributes from its closest parent administrative topic node.

topic objects can also be used to hide the full topic tree from application developers. If a topic object named FOOTBALL.US is created for the topic /Sport/American Football, an application can publish or subscribe to the object named FOOTBALL.US instead of the string /Sport/American Football with the same result.

If you enter a #, +, /, or * character within a topic string on a topic object, the character is treated as a normal character within the string, and is considered to be part of the topic string associated with a topic object.

For more information about topic objects, see Publish/subscribe messaging.



我能找到的最接近 MQ v8.0 上 IIB KC 链接的页面是 IBM MQ 知识中心页面 IBM MQ>Developing applications>Developing MQI applications with IBM MQ>Writing a procedural application for queuing>Writing publish/subscribe applications>Subscription options :

Message persistence --

Queue managers maintain the persistence of the publications they forward to subscribers as set by the publisher. The publisher sets the persistence to be one of the following options:

0
Nonpersistent

1
Persistent

2
Persistence as queue/topic definition

For publish/subscribe, the publisher resolves the topic object and topicString to a resolved topic object. If the publisher specifies Persistence as queue/topic definition, then the default persistence from the resolved topic object is set for the publication.

关于monitoring - 如何配置 IIB 10 以将 monitoring_event 消息作为持久性发布到持久性 MQ 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63064001/

相关文章:

monitoring - 如何使用collectl获取磁盘使用信息?

linux - 如何使用 vmstat 有效地监控系统状态?

java - session 回滚、撤销和死信处理程序

java - 如何使用 Java 运行 IBM MQSI 命令?

logging - 根据在 Google Cloud 上的 Kubernetes 中运行的容器日志创建 Prometheus 指标

oracle - 监控所有索引

java - 不确认消息是否会导致将其重新传递给 Kafka 消费者?

ibm-mq - java.lang.NoClassDefFoundError : com/ibm/mq/MQException

java - IIB Java 计算节点与 ESQL 计算节点

esb - 时间戳问题