6.1. Отработка ошибок в заголовках сообщений
Все ошибки, обнаруживаемые при обработке заголовка сообщения, должны указываться путем передачи сообщений NOTIFICATION с кодом ошибки Message Header Error (ошибка в заголовке сообщения). Поле Error Subcode указывает природу ошибки более точно.
Ожидаемое в заголовке сообщения значение поля Marker состоит только из единиц. Если поле Marker в заголовке сообщения содержит неожиданное значение, возникает ошибка синхронизации и в поле Error Subcode должно указываться значение Connection Not Synchronized (соединение не синхронизировано).
Если выполняется хотя бы одно из перечисленных здесь условий:
- поле Length в заголовке сообщения содержит значение меньше 19 или больше 4096;
- значение поля Length в заголовке сообщения OPEN меньше минимального размера сообщения OPEN;
- значение поля Length в заголовке сообщения UPDATE меньше минимального размера сообщения UPDATE;
- значение поля Length в заголовке сообщения KEEPALIVE не равно 19;
- значение поля Length в заголовке сообщения NOTIFICATION меньше минимального размера сообщения NOTIFICATION,
для поля Error Subcode должно устанавливаться значение Bad Message Length (некорректный размер сообщения). Поле Data в таких случаях должно содержать ошибочное значение поля Length.
Если не распознано поле Type в заголовке сообщения, в поле Error Subcode должно помещаться значение Bad Message Type (некорректный тип сообщения). Поле Data в таких случаях должно содержать ошибочное значение поля Type.