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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.10.2007, 01:03   #19  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Странно это все... Сейчас посмотрел на примере KR2, как вообще это ограничение работает, и получается примерно вот что.
  • AOS читает строковый параметр MaxMemPercentage из реестра, переводит в число, проверяет, чтоб оно не было больше 100, и прописывает себе в переменную, где по умолчанию значится 50.
  • При попытке нового клиента подключиться к AOS последний сначала выполняет проверку на то, не достигнут ли максимальный уровень использования ресурсов, т.е. количество одновременных подключений и размер используемой памяти.
    • Максимальное число подключений проверяется очень просто: у AOS'а есть счетчик, который он увеличивает/уменьшает на 1 с помощью функций InterlockedIncrement/InterlockedDecrement при каждом открытии и, соотв., закрытии нового соединения. Это значение сравнивается с переменной, которая по умолчанию равна 100 и может меняться через настройки в реестре. При превышении ее значения выводится соотв. сообщение в EventLog.
    • Максимальный объем используемой памяти проверяется следующим образом. По собственному дескриптору процесса AOS с помощью фунции GetProcessMemoryInfo() получает данные в виде структуры PROCESS_MEMORY_COUNTERS. В этой структуре он сравнивает поле QuotaPagedPoolUsage со значением своей переменной - максимального процента используемой памяти, - умноженной на 21474836 (т.е. в теории AOS расчитывает "потребить" до 2Gb из нерезидентного пула памяти). Если значение QuotaPagedPoolUsage больше, то выводится сообщение в EventLog, где для информации почему-то указывается QuotaNonPagedPoolUsage, т.е. текущий объем использованного резидентного пула памяти.
  • Eсли один из пределов достигнут, то новое подключение закрывается, и в EventLog опять же выводится сообщение о том, что по этой причине попытка подключения была отклонена.
Так вот, что у вас AOS пишет в EventLog? И, главное, вы уверены, что параметр MaxMemPercentage у вас для AOS'а прописан в реестре в нужной конфигурации и именно как строка - REG_SZ (об этом говорится в документации)?

Возможно, конечно, что воду мутит SmartHeap - надо будет отдельно проверить, как она по умолчанию настраивается AOS'ом.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Рассылка писем в CRM: bug или я чего не понимаю? Alex2003 DAX: Программирование 2 18.06.2008 10:18
Ошибка в методе или я что-то не понимаю ? egorych DAX: Программирование 7 05.06.2008 15:02
Глюк orig() в 3-tier или я чего-то не понимаю? olesh DAX: Программирование 2 26.07.2007 13:09
не понимаю View Oleksandr DAX: Программирование 2 04.04.2007 11:32
Пробежался отладчиком по СВОДНОМУ планированию и ......... НЕ ПОНИМАЮ :( director DAX: Функционал 5 01.02.2006 14:05

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

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

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