Протокол IGRP

Обработка ошибок IOTP - часть 8


4.5.2.3. Обработка недублированных сообщений

Если установлено, что сообщение не является дубликатом ранее полученного, тогда оно обрабатывается. Процедура обработки включает в себя:

o

проверку того, что сервер готов для обработки, если это не так, генерируется переходная ошибка;

o

проверку, не находится ли транзакция в режиме ошибки или неаннулирована;

o

контроль корректности входного сообщения, который предусматривает:

 

- проверку глубины ошибки сообщения;

 

- проверку ошибок блочного уровня;

 

- проверку любых инкапсулированных данных

o

проверку ошибок в последовательности полученных блоков;

o

генерацию компонентов ошибки для любых обнаруженных ошибок;

o

если никаких серьезных или переходных ошибок не выявлено, производится обработка сообщения и, если требуется, генерация отклика отправителю входного сообщения.

Этот подход к обработке дублированных входных сообщений означает, что если получены два совершенно идентичных сообщения, будут посланы два идентичнх отклика. Это применимо также к информационным запросам и транзакциям Ping, когда в действительности состояние транзакции или возможность обработки сервером может измениться. Если требуется текущее состояние транзакции или сервера, тогда используется транзакция с новым значением ID-атрибута компонента MsgId.

Процесс обработки входного сообщения должен проверить, свободна ли остальная система. Если сервер слишком занят, он должен выдать компонент Error с атрибутом Severity равным Transient Error и кодом ошибки равным SystemBusy, после чего вернуть отправителю входное сообщение, запрашивая тем самым повторную присылку этого сообщения спустя некоторое время.

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

Проверка того, что транзакция не зафиксировала ошибку и не оказалась аннулированной.


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