Создание пулов ресурсов и служб OLE DB
Чтобы хорошо работать с пулом OLE DB или с любой службой OLE DB, поставщик должен поддерживать агрегирование всех объектов. Это требование любого поставщика OLE DB 1.5 или более поздней версии. Это важно для использования служб. Поставщики, не поддерживающие агрегирование, не могут быть включены в пул, и дополнительные службы не предоставляются.
Для объединения поставщики должны поддерживать модель свободного потока. Пул ресурсов определяет модель потока поставщика в соответствии со свойством DBPROP_THREADMODEL.
Если поставщик имеет глобальное состояние подключения, которое может измениться, пока источник данных находится в инициализированном состоянии, он должен поддерживать новое свойство DBPROP_RESETDATASOURCE. Это свойство вызывается до повторного использования подключения и предоставляет поставщику возможность очистить состояние до следующего использования. Если поставщик не может очистить некоторое состояние, связанное с подключением, он может вернуть DBPROPSTATUS_NOTSETTABLE для свойства, и подключение не будет использоваться повторно.
Поставщики, которые подключаются к удаленной базе данных и могут определить, может ли это соединение быть потеряно, должно ли поддерживать свойство DBPROP_CONNECTIONSTATUS. Это свойство дает службам OLE DB возможность обнаруживать мертвые подключения и убедиться, что они не возвращаются в пул.
Наконец, автоматическая регистрация транзакций обычно не работает, если она не реализована на том же уровне, что и пул. Поставщики, поддерживающие автоматическое перечисление транзакций, должны поддерживать отключение этого перечисления путем предоставления свойства DBPROP_INIT_OLEDBSERVICES и отключения перечисления, если DBPROPVAL_OS_TXNENLISTMENT не выбран.