AnilReddy
AnilReddy

Reputation: 222

queue files corruption in MQ in circular logging

I am using circular logging. Because of human intervention, one of the queue files is corrupted.

Since the circular logging is not having the ability of recovering the corrupted queue files, what will be the next steps it will take?

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

Upvotes: 3

Views: 1842

Answers (2)

T.Rob
T.Rob

Reputation: 31832

As you correctly note, MQ cannot recover from a damaged queue file when it is configured for circular logging.

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

None of the above. The queue manager will return an error to any process attempting to access that queue.

When a queue file is damaged, it may or may not have had messages in it. There is no automatic recovery possible that would correctly reconcile the state of any messages that may have been enqueued, therefore no further processing is done on that queue and any access returns an error. Human intervention is required in that case and the fix is to delete and redefine the queue using runmqsc.

If additional queue recovery is required to make sure messages are not lost in such cases, linear logging is mandatory.

Upvotes: 3

ValerieLampkin
ValerieLampkin

Reputation: 2626

The queue manager is not going to create an new queue file automatically. If you truly have a corrupted queue then you may have to delete and recreate it. It would be helpful if you can provide more info about the error you see indicating the queue is corrupt. Also, what version of MQ are you using?

Upvotes: 1

Related Questions