Скачиваний:
33
Добавлен:
11.04.2015
Размер:
132.2 Кб
Скачать

Вопрос 18

Результаты выполнения фрагментов будут зафиксированы только в том случае, когда успешно будут завершены оба фрагмента. Для обеспечения такого свойства применяется специальный механизм двухфазной фиксации транзакций.

Основными особенностями этого механизма являются следующие:

на каждом локальном сервере журнализируются операции, выполняемые в процессе реализации соответствующего фрагмента распределенной транзакции;

сервер-координатор осуществляет специальные функции, связанные с при-чятием решения о возможности фиксации распределенной транзакции;

рассылка сообщений между координатором и локальными серверами прото­колируется координатором с целью восстановления данных при возможном отказе системы.

Реализация этого механизма включает две фазы.

На подготовит ель ной фазе после выполнения собственного фрагмен­та распределенной транзакции сервер-координатор принимает решение о начале процесса фиксации транзакции. Локальный сервер после получения этой команды принимает решение о фиксации либо прерывании выполнения фрагмента распределенной транзакции. Сервер может задержать передачу ответного сообщения, если код фрагмента еще не выполнен полностью. В случае возможности фиксации локальный сервер передает сообщение УЕ8 серверу-координатору, в противном случае - сообщение N0 и размещает соот­ветствующее сообщение в журнале.

На фазе фиксации сервер-координатор производит прием сообщений от локальных серверов. Если все серверы подтвердили готовность зафиксировать транзакцию, то координатор принимает решение о глобальной фиксации транзак­ции. Для этого он включает в протокол запись <СОММ1Т К> и направляет всем локальным серверам сообщение СОММ1Т К. При получении локальным сервером указанного сообщения он осуществляет фиксацию результатов выполнения собст­венного фрагмента транзакции и размещает в протоколе запись <СОММ1Т В>. Если от одного или нескольких локальных серверов поступило сообщение N0 либо вообще не поступило никаких, сообщений в течение установленного интервала времени, то сервер-координатор принимает решение об отмене результатов выпол­нения распределенной транзакции. После этого он размещает в протоколе запись <ROLLBACK R> и передает сообщение об откате транзакции всем подчиненным серверам. Серверы после приема команды аннулируют полученные результаты и размещают запись <<ROLLBACK R > в журнале транзакций

Соседние файлы в папке ответы