Перейти к содержанию

Диагностика

Где смотреть

Журнал регистрации — основной источник. Все события обмена пишутся с именем Обмен данными.Кафка.<наименование шины>, поэтому отбор по началу строки Обмен данными.Кафка показывает сразу все обмены.

Уровень Что означает
Примечание ход отправки: начало и завершение отправки данных по объекту метаданных
Информация начало и завершение чтения раздела с указанием позиции
Предупреждение коррекция позиции, отмена потока вручную, запрет обмена в копии базы
Ошибка прерывание сеанса

Список фоновых заданий показывает потоки обмена: имена содержат наименование шины и номер потока. Здесь видно, идёт ли обмен прямо сейчас и на каком потоке он завершился аварийно.

Форма шины даёт прикладную картину: размер очереди отправки и отставание по разделам.

Первые проверки

  1. Открыть рабочее место администратора: отображается ли версия шлюза. Нет — проблема не в обмене, а в доступности шлюза или в адресе, указанном в кластере.
  2. Читается ли состав кластера и список тем. Нет — шлюз не может соединиться с брокерами или у учётной записи Kafka нет прав.
  3. Существует ли тема шины и есть ли в ней сообщения — закладка «Данные».
  4. Есть ли что отправлять — размер очереди на форме шины.

Ошибки шлюза

Сообщения вида <код> <описание> — это ответ шлюза: числовой код состояния HTTP и текст, который вернул сам шлюз. Причину искать по тексту: он приходит от шлюза или от клиента Kafka и обычно называет проблему прямо — нет доступа к теме, неизвестный параметр конфигурации, недоступны брокеры.

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

Типичные сообщения

Сообщение Причина Что делать
Не заполнен узел шины. Выгрузка невозможна. у шины направления «Выгрузка» не указан узел плана обмена заполнить реквизит «Узел»
Некорректный кластер. кластер не заполнен или помечен на удаление проверить реквизит «Кластер» шины
Не найдены темы Кафка, соответствующие предоставленному отбору. тема отсутствует, либо шаблон не совпал ни с одной темой проверить имя темы, создать её в рабочем месте администратора
Не удалось инициализировать обработку обмена для шины «…». обработка с указанным именем не найдена проверить реквизит «Обработка» и наличие обработки в конфигурации или расширении
Не удалось установить реквизит «Шина» / «Узел» при инициализации обработки… в обработке объявлен реквизит с таким именем, но неподходящего типа привести тип реквизита к нужному либо убрать реквизит
Не определен ключ сообщения. / Не определено значение сообщения. обработчик не сформировал ключ или значение доработать обработчик обмена
Не заполнен суффикс темы. тема шины задана префиксом, а обработчик вернул пустой суффикс дополнить обработчик обмена
Некорректный тип исходных данных для сериализации ключа / значения. тип возвращённого значения не соответствует сердесу шины см. Сериализация ключей и значений
Обнаружена активная транзакция между получением сообщений. процедура загрузки не завершила начатую транзакцию завершать транзакции внутри процедуры приёма
Во время фиксации позиции чтения транзакция не должна быть активна. фиксация позиции вызвана внутри транзакции не оборачивать приём сообщений во внешнюю транзакцию
Один из потоков завершился ошибкой. авария в фоновом задании обмена найти задание в списке фоновых заданий и разобрать его ошибку
Один из потоков был вручную отменен. фоновое задание отменено администратором или при остановке рабочего процесса повторить обмен
Обмен бэкапов запрещен. Выгрузка не будет запущена. база определена как копия, обмен для копий запрещён так и задумано; см. контур бэкапа
Неожиданный конец потока. ответ шлюза оборвался на середине — как при получении сообщений, так и при отправке проверить связь со шлюзом, его журналы и таймауты
Количество фактически полученных сообщений не соответствует заявленному. пакет сообщений пришёл неполным то же: связь и журналы шлюза
Неизвестная версия бинарной сериализации: … версии подсистемы и шлюза несовместимы обновить шлюз или подсистему до совместимых версий

Обмен идёт, но данные не доходят

Очередь не пустеет. Изменения регистрируются планом обмена, но отправляются только те объекты метаданных, которые перечисляет обработчик обмена. Он же может отменить отправку отдельной таблицы или отдельного объекта — это второе, что стоит проверить вместе с разработчиком обмена.

Очередь пустеет, но в теме ничего нет. Возможно, база определена как копия и сообщения уходят в тему с префиксом test- — посмотрите тестовую тему, см. контур бэкапа.

Сообщения в теме есть, приём молчит. Сверьте позиции: если позиция уже равна конечному смещению, обмен считает раздел прочитанным. Проверьте также, не исключает ли обработчик обмена этот раздел из сеанса.

Обмен не успевает

Симптом Что помогает
растёт отставание по разделам увеличить число разделов темы, затем число потоков шины
приём запускается редко сократить период расписания или включить приём в реальном времени
отправка идёт долго увеличить число потоков, а с разработчиком — размер пакета в обработчике обмена
обмены стартуют пиками задать разброс расписания на шинах

При приёме в реальном времени длительность сеанса имеет смысл согласовывать с расписанием: сеанс должен завершаться примерно тогда, когда регламентное задание готово запустить следующий.