我们正在使用IBM MQ8.0。我们正在发送到外部系统的传出消息的活动日志正在被记录。但是没有日志可用于从外部系统到我们的MQ Manager的消息。客户端通道配置是否有问题?还是MQ日志记录配置问题?
IBM在知识中心页面“确保消息不丢失(记录) ”中将这些“活动日志”描述为恢复日志。
IBM MQ在恢复日志中记录对队列管理器控制的持久性数据的所有重要更改。
这包括创建和删除对象,持久消息更新,事务状态,对对象属性的更改以及通道活动。日志包含通过以下方法恢复对消息队列的所有更新所需的信息:
- 保留队列管理器更改的记录
- 保留队列更新记录,以供重新启动过程使用
- 使您能够在硬件或软件出现故障后还原数据
请注意,非持久性消息不会记录到恢复日志中。
根据您的问题,您发送到外部系统的消息很可能是持久消息,而您从外部系统接收的消息很可能是非持久消息,这可以解释为什么它们没有记录到恢复日志文件中。
持久性是在消息首次被PUT时确定的。
IBM对此主题有很好的技术说明“ Message Persistence FAQs ”。
Q3。确定消息是持久的最佳方法是什么?
A3。将MQMD消息持久性设置为persistent(
MQPER_PERSISTENT
)或nonpersistent(MQPER_NOT_PERSISTENT
),您的消息将始终保留该值。注意:
MQPER_PERSISTENCE_AS_Q_DEF
是MQMD中持久性值的默认设置。请参阅下面列出的持久性值。...
附加信息
MQPER_PERSISTENCE_AS_Q_DEF
可能会导致意外的结果。如果队列名称解析路径中有多个定义,则缺省持久性属性来自MQPUT
orMQPUT1
调用时路径中的第一个队列定义。该队列可能是:
- 又名队列
- 本地队列
- 远程队列的本地定义
- 队列管理器别名
- 传输队列
- 集群队列
如果要记录它们,外部系统将需要确保将它们发送给您的消息设置为持久消息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句