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