Поделиться через


Основные понятия шлюзов активации COM+ Low-Memory

Как правило, синхронизация не требуется, если у вас есть однопоточная квартира (STA), так как квартира обеспечивает синхронизацию. Синхронизация становится важной, когда у вас есть многопоточная среда (MTA) и свободнопоточный объект. В прошлом свободно потоковые объекты должны были управлять блокировкой. Вы можете исключить необходимость использования блокировки, задав атрибут синхронизации для компонента.

Проблемы надежности часто возникают, когда ресурсы сервера не могут эффективно реагировать на пиковые нагрузки. Если у сервера недостаточно физических ресурсов для удовлетворения пикового спроса, он может исчерпать виртуальную память. Это становится проблемой, если код пользователя или системный код неправильно обрабатывает сбои выделения памяти. Сервер начинает замедляться, и по мере исчерпания памяти выделение памяти не удается. Сервер выполняет пути ошибок для обработки сбоев выделения. Если в пути ошибки содержится сбой в системе или пользовательском коде, работающем на сервере, это крайне трудно уловить и безопасно обработать.

COM+ пытается предотвратить ситуации, в которых эти пути ошибок должны выполняться на сервере. Благодаря функции шлюза активации с низкой памятью COM+ заранее отслеживает нагрузку памяти в системе и гарантирует, что перед выполнением пользовательского кода доступно разумное количество памяти. Если процент виртуальной памяти, доступной приложению, ниже фиксированного порогового значения, активация завершается сбоем до создания приложения или объекта сервера COM+ (как показано на рисунке ниже). Функция шлюзов активации с низким потреблением памяти минимизирует проблемы, связанные с выделением памяти в пользовательском коде, за счет предотвращения активаций, которые обычно должны выполняться, что значительно повышает надежность системы.

схема, показывающая связь между приложением COM+ и шлюзом активации с низкой памятью.

Функция шлюзов активации с низкой памятью применяется только к настроенным COM-компонентам, установленным в приложении COM+.

Как работает функция активационных шлюзов Low-Memory

Функция шлюзов активации с низкой памятью использует другой фиксированный пороговый уровень в зависимости от типа активации. При создании серверного приложения COM+ активация возможна, если доступно более 10 процентов виртуальной памяти. Если доступно менее 10 процентов, COM+ производит тестовое выделение, чтобы узнать, может ли файл подкачки расшириться, чтобы справиться с новой нагрузкой памяти. Если разверните файл разбиения на страницы, создается серверное приложение. Если разбиение файла на страницы невозможно, активация завершается ошибкой и память не выделяется.

Процесс аналогичен при создании объекта. В этом случае COM+ разрешает активацию, если доступно более 5 процентов виртуальной памяти. Если доступно менее 5 процентов, COM+ переходит к проверочному выделению. Опять же, если выделение теста расширяет файл разбиения на страницы, создается объект. В противном случае активация завершается ошибкой.

Фиксированные пороговые уровни для шлюзов активации с низкой памятью в настоящее время не настраиваются. По этой причине нет задач, связанных с этой функцией.