Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
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
|