IBProvider v5.9 и LCPI OLE DB Services v1.12. Переезд на общий пул потоков
В текущем обновлении IBProvider v5.9 и LCPI OLE DB Services v1.12 начали использовать общий пул потоков. Эта перекомпоновка подсистем увеличивает эффективность управления ресурсами операционной системы и улучшает общую производительность высоконагруженных приложений.
Предыдущие выпуски провайдера и OLE DB сервисов использовали собственные пулы потоков.
Сейчас пул потоков выделен в отдельную DLL, которая статически прилинкована как к IBProvider, так и к LCPI OLE DB Services.
В настоящее время потоки используются для следующих задач:
- Пул подключений
- Пул запросов
- Асинхронная загрузка результирующих множеств
- Асинхронные уведомления провайдера
- Работа с файлами
- Сборка мусора в обновляемых множествах
Общий пул потоков используется только в сборках vc16 (VS2019). Сборки vc12xp-vc15 продолжают использовать собственные менеджеры потоков.
Зависимость провайдера и сервисов OLE DB от внешних DLL несколько усложняет распространение их бинарных файлов. Для контроля версий дочерних модулей, вы можете воспользоваться ресурсом «LCPI.BINARY_INFO», добавленным во все бинарные файлы.
Содержимое «LCPI.BINARY_INFO» для 64-битного провайдера (vc16):
<?xml version="1.0" encoding="UTF-8"?> <BinaryInfo Version="1.0"> <References> <Reference Name="lcpi.infrastructure.core-v01_vc16_w64_i.dll" Version="1.0.0.46" /> <Reference Name="lcpi.infrastructure.multitasking.ibp-v02_vc16_w64_i.dll" Version="2.0.0.280" /> </References> </BinaryInfo>
Содержимое «LCPI.BINARY_INFO» для 32-битного провайдера (vc16):
<?xml version="1.0" encoding="UTF-8"?> <BinaryInfo Version="1.0"> <References> <Reference Name="lcpi.infrastructure.core-v01_vc16_w32_i.dll" Version="1.0.0.46" /> <Reference Name="lcpi.infrastructure.multitasking.ibp-v02_vc16_w32_i.dll" Version="2.0.0.280" /> </References> </BinaryInfo>
Таким образом, при распространении провайдера и сервисов OLE DB (vc16) нужно упаковывать в дистрибутив две дополнительные DLL:
- lcpi.infrastructure.core-xxxxxx.dll
- lcpi.infrastructure.multitasking.ibp-xxxxxx.dll
Другие изменения
- Изменилась структура названий бинарных файлов
- Внимание! Переименование типов ресурсов:
- “PROG_REG” -> “LCPI.PROG_REG”
- “PROG_REG_PARAMS” -> “LCPI.PROG_REG_PARAMS”
- Исправлена ошибка в отладочных сборках провайдера
- В дистрибутивы включены PDB-файлы
- “IBProvider Developer Pack” более не доступен для скачивания
- Реорганизация каталогов с заголовочными файлами SDK и библиотеки C++