Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Initial. состояние сайта := “инициализация”



состояние сайта:= “инициализация”

Endi

Event

if message.code = “включить данные в БД” then

Begin

start; write(“начало транзакции”);

L:= Æ;

out “приготовиться к изменениям”;

состояние сайта:= “ожидание”;

schedule (TimeOut, T)

End

else if message.code = “готов” then

Begin

Include(L, message.id);

if L = S then

Begin

L:= Æ; out “общее обновление”;

состояние сайта:= “обновление”

End

End

else if message.code = “выполнено” then

Begin

Include(L, message.id);

if L = S then

Begin

write(“транзакция завершена”);

состояние сайта:= “завершено”

End

End

else if message.code = “не готов” then

Begin

write(“не готов менеджер копии”);

out “общий возврат”;

End

else if message.code = “не выполнено” then

Begin

write(“не выполнил менеджер копии”);

out “общий возврат”;

End

else if message.code = “отказ принят” then

Begin

Include(L, message.id);

if L = S then

Begin

write(“отказы подтверждены”);

состояние сайта:= “завершено”

End

End

Endc

ende;

event TimeOut;

write(“время истекло”);

состояние сайта:= “завершено”;

out “общий возврат”;

ende.

Менеджер сайта – владельца исходной базы данных получает сообщение “включить данные в БД” при необходимости корректировки копий. Менеджер заносит соответствующую запись “начало транзакции” в свой журнал, готовит структуру данных (L:= Æ) для занесения в нее в будущем информации о готовности периферийных сайтов и рассылает всем сообщение “приготовиться к изменениям”. Кроме этого, менеджер устанавливает предельное время (T) для проведения всего процесса.

Менеджеры mj сайтов начинают присылать сообщения о своей готовности. Идентификаторы этих сайтов заносятся в множество L. Если все сайты готовы, то при приходе последнего сообщения выполнится условие L = S, т.е. множество сайтов, сообщивших о своей готовности, совпадает с множеством всех сайтов.

После этого менеджер M отправляет всем mj сообщение “общее обновление”. Далее идет процесс, похожий на предыдущий. Только теперь менеджеры mj проводят обновления и сообщают об этом словом “выполнено”. Если все выполнят обновления, то транзакция завершается.

Если какой-либо из сайтов не готов или не выполнил обновление, то менеджер M дает команду “общий возврат”, отменяющую транзакцию. После отмены он ожидает подтверждений о принятии отмены от менеджеров копий базы данных.

Рутины менеджеров копий:

routine m





Дата публикования: 2014-11-18; Прочитано: 250 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...