gpt4 book ai didi

ibm-mq - 监控队列有旧消息

转载 作者:行者123 更新时间:2023-12-02 09:12:35 25 4
gpt4 key购买 nike

我们有一个队列,需要监视长时间未处理的消息。我们设置QSVCINT(1800000)即 30 分钟。

仅当没有成功的获取操作或 MQPUT 时才会发生此事件在大于指定限制的时间间隔内检测到调用。 (30 分钟)

在我们的例子中,队列以 30 分钟的时间间隔连续获取消息(MQPUT),因此不会触发服务间隔高。

我们是否有其他选择来检查消息的期限并收到警报?

最佳答案

在回答这个问题之前,让我们先纠正一下这个前提下的一个小小的误解。队列服务间隔测量 PUT 到空队列或未清空队列的 GET 与下一个 GET 之间的时间 。因此,您没有收到任何事件消息的原因不是 PUT 事件,而是缺少会触发事件的 GET 事件。换句话说,一旦队列具有深度,您将不会获得任何 QSVCINTVL 事件,直到发生 GET 为止。此外,事件会在 OKHIGH 之间切换,因此一旦获得 HIGH,您将不会获得另一个 HIGH但最终应该会看到OK。一旦您收到 OK 事件,您将不会再收到另一个事件,直到由于 GET 延迟而出现 HIGH 条件。

想象一下,一个程序将 10 条消息放入队列,另一个程序读取第一条消息,然后死亡。 PUT 调用不会生成事件,但会启动计时器。由于现在非空队列默认为 OK 间隔状态,因此在我们规定立即发生的第一个 GET 上不会生成任何事件。由于没有后续 GET 调用,因此计时器继续运行,但不会生成任何事件。新消息可以继续到达,但该事件只会在一次成功的 GET 后 30 分钟或更长时间发生的 GET 调用上触发。

如果您希望获得 QSVCINTVL(HIGH) 事件基础,但没有 GET 事件超过 30 分钟,则不会以这种方式工作。

还在我身边吗?伟大的!现在来说说答案。

如果您显示队列状态(例如使用DIS QS(QUEUE.NAME)命令),它会提供最后的GET时间和日期。 DIS QL(QUEUE.NAME) CURDEPTH 命令提供队列的深度。这两个命令可以在脚本中发出到 runmqsc 或使用 PCF 命令直接发出到命令服务器,并且允许您直接查询自上次成功 GET 在队列上的时间,而不管任何GET 事件,例如驱动事件所需的事件。

使用此方法,您可以首先验证队列是否具有深度(因为大概我们不关心空队列上是否没有 GET 调用),然后如果是,则查看它有多长自上次 GET 以来一直存在即使使用程序已死亡并且没有进行 GET 调用

希望有帮助。

关于ibm-mq - 监控队列有旧消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6711609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com