Протоколы Internet


Открытый торговый протокол Интернет– IOTP версия 0 - часть 35


Рекомендуемым способом проверки идентичности сообщений является проверка равентства их [DOM-HASH].

Если получено сообщение, прежде чем его исследовать, нужно проверить, завершилась ли обработка предыдущего.

Если обработка не завершилась, генерируется компонент Error с атрибутом Severity = TransientError и кодом ошибки = MsgBeingProc, чтобы указать, что сообщение обрабатывается и послать его обратно отправителю, с предложением повторной присылки поздее.

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

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

o

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

o

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

o

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

 

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

 

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

 

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

o

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

o

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

o

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

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

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




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