我们正在使用IBM MQ8.0。正在记录我们发送到外部系统的外发消息的活动日志。但是没有可用于从外部系统到MQ Manager的消息的日志。 客户端通道配置有问题吗? 或MQ日志配置问题?
答案 0 :(得分:3)
IBM将这些“活动日志”描述为知识中心页面“Making sure that messages are not lost (logging)”
中的恢复日志IBM MQ记录恢复日志中队列管理器控制的持久数据的所有重要更改。
这包括创建和删除对象,持久性消息更新,事务状态,对象属性的更改以及通道活动。该日志包含恢复消息队列的所有更新所需的信息:
- 保留队列管理器更改的记录
- 保留队列更新记录以供重启过程使用
- 使您能够在硬件或软件故障后恢复数据
请注意,非持久性消息不会记录到恢复日志中。
根据您的问题,您发送到外部系统的邮件可能是持续邮件,而您从外部系统收到的邮件非持久性消息,这可以解释为什么他们没有登录到恢复日志文件。
持久性是在消息首次发送时确定的。
IBM有一个关于这个主题的好技术“Message persistence FAQs”。
Q3。确定消息是否持久的最佳方法是什么?
A3。将MQMD消息持久性设置为持久性(
MQPER_PERSISTENT
)或非持久性(MQPER_NOT_PERSISTENT
),并且您的消息将始终保留该值。注意:
MQPER_PERSISTENCE_AS_Q_DEF
是MQMD中持久性值的默认设置。请参阅下面列出的持久性值。...
其他信息
MQPER_PERSISTENCE_AS_Q_DEF
会导致意外结果。如果队列名称解析路径中有多个定义,则默认持久性属性取自MQPUT
或MQPUT1
调用时路径中的第一个队列定义。这个队列可能是:
- 别名队列
- 本地队列
- 远程队列的本地定义
- queue-manager alias
- 传输队列
- 群集队列
外部系统需要确保将您发送的消息设置为持久消息,如果您希望将它们记录下来。