我有一个队列,读者在sycpoint下消费消息,然后突然结束。这导致2条消息处于未提交状态。所以“msgage”属性对于消息不断增加,并且队列的“uncom”属性保持相同,即使我们重新启动了消费者应用程序并且没有长时间运行UOW。
无论如何,我们可以在不重新启动MQ的情况下重置这些属性吗?
答案 0 :(得分:2)
假设您的应用程序正在以客户端模式连接(通过TCP)我希望尽管您的应用程序已经消失,但从队列管理器的角度来看它仍处于活动状态。
当应用程序打开的网络套接字关闭时,MQ应该回滚2条消息,以便它们有资格被另一个应用程序使用。
当操作系统最终注意到TCP连接的远程端没有响应时,网络套接字将关闭 - 这会触发对等端的重置连接。类型插座闭合。它是运行队列管理器的操作系统,而不是远程操作系统。
某些操作系统可能需要数小时才能注意到默认配置中的duff套接字。查看TCP keepalive'操作系统上的设置可以调整这需要多长时间。