我们可以从SYSTEM.CHLAUTH.DATA.QUEUE中删除消息吗?

时间:2018-02-05 13:37:15

标签: ibm-mq

您能解释为什么队列SYSTEM.CHLAUTH.DATA.QUEUE中有待处理的消息。现在队列中有3条消息。 如果这些消息被删除怎么办?如果我们删除这些消息,是否会有任何问题。 这些信息消息是关于通道认证记录的吗? 请提出解决方案。

1 个答案:

答案 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规则时,队列管理器更新都会执行以下两项操作:

  1. 它更新内存缓存(运行配置)
  2. 通过添加,更新或删除SYSTEM.CHLAUTH.DATA.QUEUE中的邮件来加强配置。这样可以在重新启动队列管理器时运行配置。
  3. 重新启动队列管理器时,它会从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已启用或禁用,都会有三个默认规则(如下所示)。

    1. BLOCKUSER规则拒绝所有SRVCONN频道上的任何MQADMIN用户。
    2. ADDRESSMAP规则,拒绝从任何IP地址使用以SYSTEM.*开头的任何频道。
    3. ADDRESSMAP规则允许从任何IP地址连接到SYSTEM.ADMIN.SVRCONN。规则#1的限制仍然适用。
    4. 三个默认规则可能与您在队列中观察到的三条消息直接相关。一般来说,让CHLAUTH ENABLED使用默认规则是件好事。我通常摆脱#3,因为我没有这个名字的频道。您注意到CHLAUTH已禁用,如果您无意使用此功能,则可以使用saveqmgrdmpmqcfg转储MQSC命令以重新创建这三个默认规则,然后删除这三个规则,这将删除SYSTEM.CHLAUTH.DATA.QUEUE上的三条消息。

      如果您将来感觉并重新启用CHLAUTH,则可以使用创建的备份恢复您删除的规则。