25.06.2008, 14:57 | #1 |
Участник
|
Параметр Maximum buffer size в настройках AOS
Всем доброго времени суток!
При работе с "четверкой" и не только, многие наверно сталкивались с ошибкой при синхронизации: "Суммарный внутренний размер записей в вашем объединенном операторе SELECT равен 24590 байтам, но система Microsoft Dynamics по умолчанию настроена так, что он не должен превосходить 24576 байтов.", "Следует указать значение размера буфера равным 25 КБ или более на вкладке "SQL" служебной программы Microsoft Dynamics Configuration. Значение по умолчанию равно 24 КБ.". После этого, мы изменяем параметр в настройках AOSа "Maximum buffer size" (для 3.0 - аналог "Buffer size"). Лично я после этого сообщения выставил параметр в 60000, после чего синхронизация проходила без ошибок и все (с виду) работало супер... Плохо стало только когда кол-во работающих пользователей начало составлять 20-25 человек, и AOS стал падать из-за нехватки виртуальной памяти (как только VM Size процесса превышал 1,5-1,6 Гб), причем падал, ругаясь на курсоры, некорректных пользователей, невозможность соединения с БД и т.д., но не на прямую причину - нехватку памяти, являющуюся следствием некорректого значения этого параметра. Так вот, хочу предостеречь (либо напомнить), что параметр этот задается в КИЛОБАЙТАХ (в 3.0 можно посмотреть подсказку в поле, а для четверки это неочевидно). Почему я все это рассказываю? Потому что уже не раз видел в настройках других AOSов в этом параметре значения 25000, 32000, 40000, 50000 и т.д., хотя должно быть 25, 32, 40, 50... Надеюсь, будет полезно. И сразу вопрос по теме: кто-нибудь проводил исследования по настройке данного параметра? Каким его следует устанавливать и по каким критериям? |
|
|
За это сообщение автора поблагодарили: Logger (1), npokypatop (1). |
04.08.2008, 18:15 | #2 |
Участник
|
критерии - максимальная размерность полей выборки Ваших selectов (причем не имеет значения что вы выбираете 1 поле - при проверке будет считаться что Вы выбираете все поля)
|
|
04.08.2008, 21:30 | #3 |
MCTS
|
|
|
15.03.2016, 16:21 | #4 |
Участник
|
А как же мемо поля и контейнеры ? Там всегда может попасться большое значение. Они не учитываются в подсчете ?
|
|
15.03.2016, 16:49 | #5 |
Участник
|
Думаю там все относительно просто - используется метод аналогичный SysDictTable\recordSize, а там при подсчете размеры для таких полей заданы как константа
case Types::BLOB: case Types::Container: case Types::VarString: size = 2048; // 8192 div 4 (assumption: One out of 4 has data) break;
__________________
Sergey Nefedov |
|
|
За это сообщение автора поблагодарили: Logger (2). |
Теги |
ax3.0, buffer size, maximum buffer size |
|
|