![]() |
#1 |
Участник
|
![]()
При перемещении по строкам одной из форм (самописная) - через некоторое время аксапта выдает ошибку про "Суммарный, внутренний размер записей в вашем операторе SELECT" и просит увеличить Размер буфера. Ни AOS ни клиент при этом не падают, но форма не работает.
Воспроизводится на 2-х и 3-х уровневой. Увеличение буфера увеличивает апетит аксапты - просит еще увеличить. Ошибка возникает не сразу, а если побегать туда-сюда по строкам - т.е. как будто где-то что-то накапливается или наоборот - утекает. Всякие бубны пробовали.. Кто-нибудь сталкивался, как лечится? |
|
![]() |
#2 |
Moderator
|
Под каждый запрос Axapta выделяет некую область памяти. Размер это области задается в конфигурационной утилите на AOS - "Buffer size" или что-то вроде этого.
Простой способ - увеличить значение в этом поле. Но на мой взгляд это не есть хорошо. Память данного размера будет выделяться на AOS для каждого открытого соединения с СУБД и при достаточно большом кол-ве открытых соединений и большом размере буфера можно легко нарваться на ошибку "AOS исчерпал свои ресурсы" (или что-то вроде этого). Кстати это легко проверить - достаточно установить размер буфера мегов под 100 и в цикле начать открывать UserConnection, наблюдая за расходом памяти на AOS. Способ второй - переписать запрос (он, кстати, скорее всего отображается в журнале базы данных, если установлена опция сохранения всех предупреждений) так, чтобы он умещался в стандартный буфер. |
|
![]() |
#3 |
Участник
|
Я к чему и написал - "Ошибка возникает не сразу, а если побегать туда-сюда по строкам" - т.е. размер запроса не больше буфера изначально - он таковым становится - вруг(!) - если побегать по строкам и вернуться к изначальной - она уже становится большой
Про увеличить буфер - я тоже специально акцентировал - увеличение буфера ник чему не приводит - аксапта требует еще больше. |
|
![]() |
#4 |
Программатор
|
Оптимизация формы, запросов.... Больше ничегов голову не приходит. Может там 500 датасорсов или оч много дисплей методов....
|
|
![]() |
#5 |
----------------
|
скорее всего, на active зачем-то меняется запрос, причем, каждый раз добавляется новый DS.
найдите все места в коде формы, где вызывается addDatasource. |
|
|
За это сообщение автора поблагодарили: MironovI (4). |
![]() |
#6 |
Участник
|
|
|