Corruption of queue files in MQ during circular logging

I am using circular registration. Due to human intervention, one of the queue files is corrupted.

Since circular log does not have the ability to recover corrupted queue files, what are the next steps?

Will the queue manager create an empty queue file for this queue and start posting messages to it? Also, it will just show pending messages in the queue, but not allow applications to process?

+3


source to share


2 answers


As you rightly pointed out, MQ cannot recover from a corrupted queue file when configured for circular logging.

Will the spooler create an empty queue file for this queue and start logging messages? Else, will it just show the pending messages in the queue but won't allow apps to process?

None of the above. The queue manager returns an error for any process trying to access this queue.



When a queue file is corrupted, it may or may not have messages. There is an automatic recovery that could properly reconcile the state of any messages that might have been queued, so no further processing is done on that queue and any access returns an error. In this case, human intervention is required, and the fix is ​​to remove and redefine the queue with runmqsc

.

If additional queue recovery is required to ensure that messages are not lost in such cases, linear logging is required.

+3


source


The queue manager is not going to automatically create a new queue file. If you do have a corrupted queue, you might have to delete and recreate it. It would be helpful if you could provide more information about the error you are seeing indicating that the queue is corrupted. Also, which version of MQ are you using?



+1


source







All Articles