Основные понятия переработки приложений COM+
Переработка приложений может значительно повысить общую стабильность приложений COM+, предлагая быстрое исправление известных проблем и помогая защитить от непредвиденных. Например, производительность приложения может снизиться со временем из-за проблем, таких как утечка памяти, немасштабируемое использование ресурсов и сбой процесса. COM+ предоставляет рециркуляции приложений в качестве решения этих проблем. Вы можете использовать перезапуск приложений для автоматического завершения процесса и его перезапуска, таким образом повторно инициализации процесса сбоя и перераспределения памяти, используемой им.
Повторное использование приложений выполняется путем создания дубликата процесса Dllhost, связанного с приложением. Этот повторяющийся процесс Dllhost обслуживает все будущие запросы объектов, что оставляет старый dllhost для завершения обслуживания оставшихся запросов объектов. Старый процесс Dllhost завершается при обнаружении выпуска всех внешних ссылок на объекты в процессе или при достижении значения времени истечения срока действия. Благодаря этому рециркуляция приложений гарантирует, что клиентское приложение не испытывает прерывания работы службы.
Примечание.
Невозможно переработать приложение COM+, которое было настроено для запуска в качестве службы Windows. Кроме того, приложения библиотеки имеют свойства переработки и объединения свойств их хост-процесса.
Вы можете настроить повторное использование приложений с помощью средства администрирования служб компонентов или программно с помощью пакета SDK com+ Администратор istrative. Вы можете перезаработать процессы на основе нескольких критериев, определенных следующими свойствами объекта COM Администратор CatalogObject в коллекции Application:
- RecycleLifetimeLimit. Максимальное количество минут, которые может выполняться перед перезапуском процесса. Допустимый диапазон составляет от 0 до 30 240 минут (21 дней). Значение по умолчанию — 0, указывающее, что процесс не будет перезапуска от достижения предельного времени существования.
- RecycleMemoryLimit. Максимальный объем использования памяти процесса (в килобайтах) перед перезапуском процесса. Если использование памяти процесса превышает указанное число дольше одной минуты, процесс перезапускается. Допустимый диапазон составляет от 0 до 1 048 576 КБ. Объем памяти по умолчанию равен 0 КБ, что указывает, что процесс не будет перезапуска от достижения предела памяти.
- RecycleCallLimit. Максимальное количество вызовов, которые объекты приложения могут принимать перед повторной обработкой процесса. Допустимый диапазон составляет от 0 до 1 048 576 вызовов. Число вызовов по умолчанию равно 0, указывающее, что процесс не будет перезапуска от достижения предела вызова.
- RecycleActivationLimit. Максимальное количество активаций объектов приложения, которые необходимо принять перед повторной обработкой процесса. Допустимый диапазон — от 0 до 1 048 576 активаций. Число активаций по умолчанию равно 0, указывающее, что процесс не будет перезапускаться от достижения ограничения активации.
Кроме того, свойство RecycleExpirationTimeout объекта COM Администратор CatalogObject используется для принудительного завершения перезапуска процесса. Оно указывает количество минут ожидания выхода всех внешних ссылок на объекты в переработанном процессе, прежде чем принудительно завершить процесс. Допустимый диапазон составляет 1–1440 минут (24 часа), а время истечения срока действия по умолчанию — 15 минут. Это значение используется только в том случае, если оно уже определено, что процесс будет переработаться на основе других критериев.
Вы можете выбрать несколько критериев для повторной переработки приложения. COM+ перезапускает приложение после выполнения первого набора критериев. Вы можете задать значение времени ожидания истечения срока действия, чтобы определить, сколько времени старый процесс Dllhost может тратить оставшиеся запросы на обслуживание, прежде чем принудительно завершить работу.
Коллекция ApplicationInstances предоставляет свойство HasRecycled, которое предоставляет способ определить, когда-либо перезапуска приложения.
См. также