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


Диспетчер диспенсеров COM+

Диспетчер диспенсеров предоставляет пул ресурсов для диспенсеров ресурсов и гарантирует, что ресурс, предоставленный диспенсером ресурсов, правильно включен в транзакцию объекта приложения. Диспетчер диспенсеров автоматически освобождает ресурсы, которые по-прежнему зарезервированы в конце времени существования объекта, устраняя возможность утечки ресурсов. Диспетчер диспенсеров может попросить диспенсера ресурсов создать новый ресурс или уничтожить неактивные ресурсы при необходимости, чтобы настроить уровни инвентаризации, а не использовать статические параметры.

Примечание.

Так как интерфейсы диспенсера ресурсов, предоставляемые приложению, не являются COM-интерфейсами, диспетчер диспенсеров можно использовать в процессе без инициализации COM, например для поддержки диспенсера ресурсов ODBC.

 

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

Диспетчер статистики инвентаризации

Диспетчер диспенсеров использует диспетчер статистики инвентаризации для управления уровнями инвентаризации ресурсов пула. Диспетчер статистики инвентаризации сохраняет запись о том, когда каждый ресурс использовался и удаляет ресурсы из инвентаризации, если они не использовались в течение x секунд, где значение x устанавливается для каждого ресурса при создании ресурса.

Компонент держателя

Диспетчер диспенсеров опрашивает каждого владельца, компонент, созданный диспетчером диспенсеров, который перечисляет инвентаризацию ресурсов для каждого диспенсера, каждые 10 секунд, чтобы позволить ему изменить его инвентаризацию ресурсов. Каждый владелец вызывает диспетчер статистики инвентаризации, чтобы предложить уровни инвентаризации для каждого типа ресурса. В результате владелец может попросить диспенсера ресурсов создать или уничтожить некоторые инвентаризации.

Владелец и диспенсер ресурсов взаимодействуют с запросом ресурсов определенного типа. Между владельцем и диспенсером ресурсов существуют следующие связи:

  • Владелец может запросить ресурс из диспенсера ресурсов. Диспенсер ресурсов возвращает доступный ресурс или создает новый.
  • Владелец может уведомить диспенсер ресурсов, что приложению больше не нужен ресурс, а затем вернуть его в пул ресурсов.
  • Владелец и диспенсер ресурсов работают вместе для поддержания размера пула ресурсов.

Основные понятия диспенсера ресурсов COM+