我正在使用循环日志记录。由于人为干预,其中之一 队列文件已损坏。
由于循环日志记录没有恢复能力 损坏的队列文件,它将采取的后续步骤是什么?
队列管理器是否会为该队列创建一个空队列文件并启动 将消息注册到它?否则,它只会显示待定 队列中的消息但不允许应用程序处理?
答案 0 :(得分:3)
正如您所记得的那样,当MQ配置为循环日志记录时,MQ无法从损坏的队列文件中恢复。
队列管理器是否会为该队列创建一个空队列文件并开始向其注册消息?否则,它只会显示队列中的待处理消息,但不允许应用程序处理?
以上都不是。队列管理器将向尝试访问该队列的任何进程返回错误。
当队列文件损坏时,它可能有也可能没有消息。没有可能的自动恢复可以正确地协调可能已入队的任何消息的状态,因此不对该队列进行进一步处理,并且任何访问都返回错误。在这种情况下需要人工干预,修复方法是使用runmqsc
删除和重新定义队列。
如果需要额外的队列恢复以确保在这种情况下不会丢失消息,则必须进行线性记录。
答案 1 :(得分:1)
队列管理器不会自动创建新的队列文件。如果您确实有一个损坏的队列,那么您可能必须删除并重新创建它。如果您可以提供有关您看到的错误的更多信息,表明队列已损坏,将会很有帮助。另外,您使用的是什么版本的MQ?