...

Превышение размера пакета GRPC

Тема в разделе "Вопросы по платформе", создана пользователем evgeneva, 7 окт 2021.

  1. evgeneva

    evgeneva Участник

    В скриптах TSSDK вы можете задать поиск элементов приложения командами Search и Fetch.

    При этом максимальное количество запрашиваемой информации составляет десять тысяч записей. Лимит установлен, чтобы не перегружать память сервиса и обеспечить его исправную работу.

    При поиске элементов обмен информацией между сервисами происходит по протоколу GRPC. Чтобы не затрачивать чрезмерные ресурсы сервера, в протоколе существует ограничение по размеру пакета данных. По умолчанию размер одного пакета составляет 8 мб.

    Если объем запрашиваемых данных превышает допустимые лимиты, сценарий не выполнится.

    Чтобы устранить ошибку в сценарии при поиске элементов, рекомендуется сделать следующее:

    • Перепишите сценарий. Если вам необходимо выбрать большой объем данных для обработки в сценарии, разделите его на несколько запросов.
    • Просмотрите содержимое запрашиваемых данных. Вы можете изменить тип хранения информации и перевести данные в файлы, а также разделить все данные на несколько элементов.
    • В ELMA365 on-premises вы можете изменить заданный размер пакета GRPC вручную. При этом рекомендуется увеличивать размер параметра постепенно.
    Для редактирования параметра GRPC вручную:

    1. Выполните команду:
    Код:
    
    sudo microk8s kubectl edit cm elma365-env-config
    
    
    2. В открывшемся редакторе задайте необходимое максимальное значение параметра в байтах:
    Код:
    
    MAX_GRPC_MESSAGE_SIZE"10485760"
    
    
    3. Для работы сценариев с новым значением перезапустите сервисы worker, worker/gateway, collector и main.
  2. kurbatov-la

    kurbatov-la Активный участник

    Какая ошибка возникает при превышении размера пакета grpc 8 мб либо превышении лимита 10 000 записей?
    Как в сценарии бизнес-процесса её поймать?
  3. sobolev

    sobolev Техническая поддержка

    Добрый день!

    При превышении размера пакета. Пакет формируется исходя из сложности экземпляров - в одном случае простого объекта может спокойно возвращать 10000 записей, в другом случае более сложного объекта ошибка может возникать и на 1000 записей.

    На устаревших версиях системы ошибка отображалась в консоли примерно как "обращение к свойству undefined". В последних версиях ошибка отображается информативно с текстом в консоли "При получении данных произошло превышение максимального размера результата". Текст примерного содержания отображается и в отладочном окне процесса. Пример вида ошибки в отладке бизнес-процесса приложил.

    upload_2021-11-15_13-43-40.png