Статьи Королевства Дельфи

       

Объединение ресурсов


Поскольку MTS освобождает неиспользуемые системные ресурсы в то время, когда компонент находится в состоянии ожидания (idle), эти ресурсы могут быть использованы другими объектами. Это значит, например, что соединение с базой данных (database connection), которое не используется объектом на сервере, может быть отдано другому объекту. Все это называется объединением ресурсов (resource pooling).

Поскольку открытие и закрытие соединения с базой данных процесс не быстрый, MTS использует диспетчер ресурсов (resource dispensers) для уменьшения количества используемых соединений, при этом по возможности вместо создания нового соединения, используется освободившееся. Диспетчер кэширует такие ресурсы, как соединения с базой данных, что позволяет компонентам, расположенным в одном пакете использовать их совместно. Например, если у вас есть компонент, который занимается просмотром базы данных и компонент, который ее модифицирует, то их можно поместить в один пакет для уменьшения количества соединений. Следует иметь в виду, что это возможно только при использовании Free потоковой модели.

Для работы под управлением СОМ+ рекомендуется использовать новую модель - Neutral. Особенностью ее является то, что COM объект не может использовать визуальные компоненты. При установке такого компонета в COM+ гарантируется отсутствие конфликтов при поступлении клиентских вызовов из различных потоков (thread). Данная модель предполагает, что компонент является stateless, и не возникает конфликтов при использовании глобальных переменных (объетов) при обращении из различных потоков.

Этот тип потоковой модели не создается с помощью Мастеров и вы должны руками поменять тип модели, например так:

initialization TComponentFactory.Create(ComServer, Ttest, Class_test, ciMultiInstance, {tmApartment} tmNeutral );



Содержание раздела