Системыуправлениятранзакциямивz/OS 333
обеспечивает фиксацию и откат. Он контролирует внесение всех изменений или
невнесение каких-либо изменений даже при отказе одного из элементов (например,
приложения, системы или менеджера ресурсов). Протокол позволяет выполнять пе-
резапуск или восстановление после отказа системы или подсистемы.
Протокол двухфазовой фиксации инициируется, когда приложение готово вы-
полнить фиксацию или откат вносимых им изменений. В этот момент координирую-
щий менеджер восстановления, также называемый менеджер точки синхронизации
(syncpoint manager), дает каждому менеджеру ресурсов, задействованному в единице
восстановления, возможность сообщить, находится ли его часть единицы восстанов-
ления в согласованном состоянии, и можно ли ее зафиксировать. Если все участники
сообщат «да», менеджер восстановления даст указание всем менеджерам ресурсов за-
фиксировать изменения. Если какой-то из участников сообщит «нет», менеджер вос-
становления даст указание выполнить откат изменений. Этот процесс обычно пред-
ставляется в виде двух фаз.
На фазе 1 приложение передает запрос на создание точки синхронизации или
откат координатору точки синхронизации. Координатор передает команду PREPARE
для отправки первоначального потока создания точки синхронизации всем UR аген-
там менеджеров ресурсов. В ответ на команду PREPARE, каждый менеджер ресурсов,
участвующий в транзакции, отвечает координатору точки синхронизации, готов ли
он к фиксации или нет.
Когда координатор точки синхронизации получает все ответы от всех своих
агентов, инициируется фаза 2. На этой фазе координатор точки синхронизации вы-
дает команду фиксации или отката в зависимости от предыдущих ответов. Если ка-
кой-либо из агентов дал отрицательный ответ, инициатор точки синхронизации со-
общает всем агентам точки синхронизации, что нужно выполнить откат изменений.
Момент, в который координатор регистрирует факт своего намерения сообщить
всем менеджерам ресурсов о необходимости фиксации или отката называется атомар-
ным моментом (atomic instant). Независимо от того, произойдет ли какой-либо отказ
после этого момента, координатор предполагает, что произошла фиксация либо откат
всех изменений. Координатор точки синхронизации обычно регистрирует решение на
этом этапе. В случае аварийного завершения какого-либо участника после атомарного
момента менеджер ресурсов, выполнивший аварийное завершение, после перезапуска
должен, взаимодействуя с координатором точки синхронизации, завершить все опера-
ции фиксации или отката, выполнявшиеся на момент аварийного завершения.
В z/OS главный координатор точки синхронизации имеет название Resource Re-
covery Services (RRS). Кроме того, менеджер транзакций CICS производства компании
IBM содержит собственный встроенный координатор точки синхронизации.
Во время первой фазы протокола агенты не знают, будет ли координатор точки
синхронизации выполнять фиксацию или откат изменений. Этот промежуток време-
ни называется периодом неоднозначного состояния (in-doubt). Единица восстановле-
ния (UR) имеет определенное состояние, зависящее от того, на каком этапе двухфа-
зового процесса она находится.
• До того как UR внесет какие-либо изменения в ресурс, она называется отклю-
ченной (In-reset).