Интеграция приложений на основе WebSphere MQ


Очередь недоставленных сообщений и восстановление данных - часть 2


GenericObjName – имя объекта.

Встречаются ситуации, когда необходимо удалить файл очереди, содержащий сообщения. Это необходимо, например, при заполнении свободного пространства дисковой системы (тома), выделенной под WebSphere MQ на UNIX платформах. В этом случае WebSphere MQ сообщит, что объект данной очереди поврежден. Восстановить поврежденные как сознательно, так и в результате сбоя дисковой системы, объекты при условии линейного логирования, можно с помощью команды rcrmqobj. Синтаксис команды имеет вид:

rcrmqobj -m QmgrName -t ObjectType GenericObjName

где:

QmgrName – имя менеджера;

ObjectType – тип объекта;

GenericObjName – имя объекта.

В результате выполнения этой команды восстанавливаются не только очереди, но и persistent сообщения в очередях. Это возможно благодаря тому, что для каждого объекта менеджера ведется запись изменений его состояния, и так называемые точки checkpoint. Команда rcrmqobj повторяет все события, которые были с поврежденным объектом от последнего checkpoint до конца лог файла. Поскольку not persistent сообщения в файл не записываются, то они и не восстанавливаются.

При использовании кругового логирования поврежденные объекты следует удалить, а затем создать заново.

Кроме технических ошибок бывают еще и логические ошибки, связанные с неправильными настройками объектов. Если в локальной удаленной очереди указано неверное имя удаленного менеджера или очереди назначения, то сообщения все равно будут доставлены на менеджер, расположенный по адресу, указанному в канале отправителе, который использует соответствующую трансмиссионную очередь. Для обработки ошибочных или недоставленных сообщений существует специальная очередь недоставленных сообщений, которая указывается в атрибуте менеджера Dead-letter Queue в закладке Extended. Изменим пример из лекции 5, в котором при создании на менеджере QM_Win2000 локальной удаленной очереди Win2000_HPUX.RQ будет неправильно указана очередь, в которую нужно доставить сообщения:

ALTER QREMOTE ('Win2000_HPUX.RQ') + XMITQ('Win2000_HPUX.TQ') + RNAME('Win2000_AIX.Q') + RQMNAME('QM_HPUX')




Начало  Назад  Вперед



Книжный магазин