您能解释为什么队列SYSTEM.CHLAUTH.DATA.QUEUE中有待处理的消息。现在队列中有3条消息。 如果这些消息被删除怎么办?如果我们删除这些消息,是否会有任何问题。 这些信息消息是关于通道认证记录的吗? 请提出解决方案。
答案 0 :(得分:2)
IBM MQ v7.5知识中心页面" Troubleshooting channel authentication records解决了SYSTEM.CHLAUTH.DATA.QUEUE
用途的主题。
SET CHLAUTH命令对队列管理器重启的行为
如果SYSTEM.CHLAUTH.DATA.QUEUE已在某种程度上被删除或更改 它不再可访问,即PUT(DISABLED),SET CHLAUTH 命令只会部分成功。在这个例子中,SET CHLAUTH将更新内存缓存,但在强化时会失败。
这意味着虽然规则由SET CHLAUTH实施 命令最初可以操作,命令的效果不会 坚持队列管理器重启。用户应该调查, 确保队列可访问,然后重新发出命令(使用 在循环队列管理器之前的动作(REPLACE)。
如果SYSTEM.CHLAUTH.DATA.QUEUE在队列管理器中仍然无法访问 启动时,无法加载已保存规则的缓存和所有通道 将被阻止,直到可以访问队列和规则。
在摘要中,每次添加,更改或删除CHLAUTH
规则时,队列管理器更新都会执行以下两项操作:
SYSTEM.CHLAUTH.DATA.QUEUE
中的邮件来加强配置。这样可以在重新启动队列管理器时运行配置。重新启动队列管理器时,它会从SYSTEM.CHLAUTH.DATA.QUEUE
读取消息,最初使用以前存在的规则填充内存缓存(运行配置)。
如果您要从此队列中删除邮件并重新启动队列管理器,您会发现没有设置CHLAUTH
条记录。
存在一个名为SYSTEM.AUTH.DATA.QUEUE
的类似队列,它保存队列管理器的OAM(授权)规则。 CHLAUTH队列和此队列之间的一个区别是AUTH队列由具有MQOO_INPUT_EXCLUSIVE
的内部MQ进程打开,这意味着您根本无法打开队列。
请注意,在MQ v7.1中添加了CHLAUTH。如果在7.1或更高版本下创建新的队列管理器,则默认情况下CHLAUTH将为ENABLED。如果队列管理器从7.1之前的版本升级到MQ v7.1或更高版本,则默认情况下CHLAUTH将为DISABLED。无论是新的或升级的队列管理器,还是CHLAUTH已启用或禁用,都会有三个默认规则(如下所示)。
SYSTEM.*
开头的任何频道。SYSTEM.ADMIN.SVRCONN
。规则#1的限制仍然适用。三个默认规则可能与您在队列中观察到的三条消息直接相关。一般来说,让CHLAUTH ENABLED使用默认规则是件好事。我通常摆脱#3,因为我没有这个名字的频道。您注意到CHLAUTH已禁用,如果您无意使用此功能,则可以使用saveqmgr
或dmpmqcfg
转储MQSC命令以重新创建这三个默认规则,然后删除这三个规则,这将删除SYSTEM.CHLAUTH.DATA.QUEUE
上的三条消息。
如果您将来感觉并重新启用CHLAUTH,则可以使用创建的备份恢复您删除的规则。