AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.04.2025, 13:17   #1  
Lankey is offline
Lankey
Участник
 
144 / 30 (2) +++
Регистрация: 19.05.2020
Есть ли настройка , ограничивающая объем возвращаемых данных через get- request
Есть кастомный REST API сервис , sync, создан кем-то несколько лет назад, возвращает stock levels из D365 .
Стал не возвращать данные, если большой объем данных (там критерий есть в запросе , если их подкрутить так, чтобы выборка была меньше, то все возвращает)
Я смотрю, когда он формирует данные на sql, то ничего, вроде. никаких запросов не висит. То есть, проблема ,как я понимаю, имено в сформированном объеме, что обратно отправляет get request, а не долгом офрмировании набора данных

Есть ли какие-то настройки, что отвечают за ограничение объема данных
Или , может, еще что-то , что может к такому поведению приводить?

Спасибо. Надо как всегда очень сильно срочно, поэтому любым идеям буду благодарна, куда посмотреть, пока меня не линчевали на месте.

Последний раз редактировалось Lankey; 17.04.2025 в 14:09.
Старый 17.04.2025, 15:25   #2  
axm2017 is offline
axm2017
Участник
 
2,054 / 295 (14) ++++++
Регистрация: 15.05.2017
Посмотрел бы для начала что получает аксапта на входе: возможно трабла к примеру в длине строки типа данных при приеме типа принимаю данные в 10 тысяч символов в переменную типа Description и тп
Старый 17.04.2025, 17:11   #3  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
317 / 878 (30) +++++++
Регистрация: 23.10.2012
Здравствуйте.
Деталей мало.
Есть rest api сервис, ходит в Аксапту.
К нему кто-то обращается? Он не отдаёт информацию? Такая проблематика?
Код ошибки HTTP какой отдаёт? С превышением времени ожидания отваливается или трафика допустимого? Это всё настраивается при установлении подключения как параметры.
Старый 17.04.2025, 18:11   #4  
Lankey is offline
Lankey
Участник
 
144 / 30 (2) +++
Регистрация: 19.05.2020
Спаибо.
Сторонний сервер отпраляет в D365 get запрос (На стороне d365 создан кастомныйй сервис)
Этот сторонний сервер не получает ответа. Они уже установили таймаут в 1 час, но ответа нет. Если выборка меньше(критерии подкручивают), то 200 возвращается и данные


Я тестирую в postman. Вижу такую же картину
Максимум , что я в ответе от Tier2 смогла получить - 1.75 MB json ответ(внутри 78 294 строк, но строки нерепрезентативно, тк это json) за 3.5 минуты . Если в параметры меняю так, чтобы ответ был чуть побольше(больше данных созвращалось), то часами "крутится" и ответа не возвращает

Последний раз редактировалось Lankey; 17.04.2025 в 18:16.
Старый 17.04.2025, 21:17   #5  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
317 / 878 (30) +++++++
Регистрация: 23.10.2012
Трафик сетевой проверьте в этот момент (пакеты если надо перехватите) - идёт между службами?
Если ошибку не получаете - трафик должен идти между ними.
Соответственно, исследуйте вопрос качества этого трафика.
Старый 18.04.2025, 00:53   #6  
Lankey is offline
Lankey
Участник
 
144 / 30 (2) +++
Регистрация: 19.05.2020
1) Немного не поняла Вашу идею. Там один ответ формируется (один json response на этот get request). Поэтому, думаю, что то пока json не сформируется, трафика не будет
И чем его лучше/удобнее перехватывать? Установила Postman Interceptor extension, подойдет?
UPD: Postman Interceptor extension стоит. В tab браузера открыт postman .Запускаю Interceptor, отсылаю через postman запрос, который возвращает 200 и малый объем данных. Не нахожу в Interceptor записей для URL запроса. Почему ((

2) Может быть так, что проблема в формировании Json ? То есть, данные с sql получает, а вот сериализация в json отнимает много времени или ресурсов?

3) Я пытаюсь отловить в Trace parser то, что происходит. То есть, запускаю в браузере Trace и из постмана отправляю сразу запрос. Но почему-то в Trace parser не вижу следов выполнения класса, ответственного за сервис, ни отправляемого им sql запроса. Это нормально?

Последний раз редактировалось Lankey; 18.04.2025 в 01:49.
Старый 18.04.2025, 11:14   #7  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
317 / 878 (30) +++++++
Регистрация: 23.10.2012
Цитата:
Сообщение от Lankey Посмотреть сообщение
думаю, что то пока json не сформируется, трафика не будет
Да, коммуникация с БД (если сервис это подразумевает) должна завершиться перед формированием ответа на запрос. Если до этапа коммуникации дело не доходит - подключение у сервиса должно отваливаться по time out. Так понимаю, сервис-слушатель этим и страдает, отсюда и повышение времени таймаута имело место?
Postman - другая история. Он, согласно настройкам по умолчанию, ждёт до скончания времён.

На каких этапах может возникать проблема с позиции сервиса Аксапты?
  • Получение запроса
    Обычно парадом руководит ядро и внешней стороне должен прийти какой-нибудь код 500.
    Исходя из описания проблематики - маловероятно что проблема здесь*.
  • Обработка запроса / подготовка ответа
    Это чёрный ящик - обычно он сломан.
  • Отправка ответа
    Перехват трафика относится к данному пункту. Однако, если имеет место "отвал" по таймауту этот пункт можно исключить.

Цитата:
Сообщение от Lankey Посмотреть сообщение
Может быть так, что проблема в формировании Json ? То есть, данные с sql получает, а вот сериализация в json отнимает много времени или ресурсов?
На фоне работы с БД - это всё капли в море. Здесь нет сетевого трафика. Это работа с оперативной памятью. Сложите в БД или файл сформированный JSON. Не должно быть с ним проблем.

Цитата:
Сообщение от Lankey Посмотреть сообщение
Но почему-то в Trace parser не вижу следов выполнения класса, ответственного за сервис, ни отправляемого им sql запроса. Это нормально?
Не нормально, в штатных условиях оно имеет место только при использовании уровня прослойки между источником запроса и Аксаптой в виде компонета(ов) по управлению трафиком (API Gateway, Load balancer и КО). *В первую очередь необходимо удостовериться, что:
А) Аксапта получает запрос;
Б) Пытается его обработать.



PS Если текущее состояние системы не позволяет пользователям выполнять должностные обязанности и является критичным - можете разбить работы по решению проблемы на 2 задачи:
- Выявление и устранение первопричины;
- Разбивка 1-го большого запроса на N маленьких (постраничная загрузка / порционирование).

PS2
Цитата:
Сообщение от Lankey Посмотреть сообщение
1.75 MB json ответ(внутри 78 294 строк, но строки нерепрезентативно, тк это json) за 3.5 минуты
Признаком хорошего тона является не заставлять сторону-потребителя ждать. Если такое необходимо по причине сложности логики работы функции сервиса - используется асинхронное взаимодействие.

Последний раз редактировалось Товарищ ♂uatr; 18.04.2025 в 12:36.
Старый 23.04.2025, 10:32   #8  
Lankey is offline
Lankey
Участник
 
144 / 30 (2) +++
Регистрация: 19.05.2020
Upd: не знаю пока, чем история закончится, но я закомментила весь код обработки записей и поставила sleep.
Если sleep превышает 5 минут, но ответ не возвращается в postman
Если меньше (4 мин 30 сек), то возвращается. Соответственно, видимо, есть какое-то ограничение. На T2 пока не проверяла, только на VM DEV
Предложила то же самое попробовать в T2 или сразу в микрософт отдать вопрос , тк в документации не нахожу настроек или ограничений на 5 минут.

Последний раз редактировалось Lankey; 23.04.2025 в 10:42.
Старый 24.04.2025, 09:57   #9  
michel1971 is offline
michel1971
Участник
 
79 / 80 (3) ++++
Регистрация: 14.01.2011
Цитата:
Сообщение от Lankey Посмотреть сообщение
Upd:
Если sleep превышает 5 минут, но ответ не возвращается в postman
Если меньше (4 мин 30 сек), то возвращается. Соответственно, видимо, есть какое-то ограничение. На T2 пока не проверяла, только на VM DEV
Предложила то же самое попробовать в T2 или сразу в микрософт отдать вопрос , тк в документации не нахожу настроек или ограничений на 5 минут.
в настройках порта есть параметрНажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 18
Размер:	68.9 Кб
ID:	13668
За это сообщение автора поблагодарили: S.Kuskov (2).
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:56.