Дата публикации: 10.12.2019

IBProvider v5.9 и LCPI OLE DB Services v1.12. Переезд на общий пул потоков

В текущем обновлении IBProvider v5.9 и LCPI OLE DB Services v1.12 начали использовать общий пул потоков. Эта перекомпоновка подсистем увеличивает эффективность управления ресурсами операционной системы и улучшает общую производительность высоконагруженных приложений.

Предыдущие выпуски провайдера и OLE DB сервисов использовали собственные пулы потоков.

Separated thread pools

Сейчас пул потоков выделен в отдельную DLL, которая статически прилинкована как к IBProvider, так и к LCPI OLE DB Services.

Common thread pool

В настоящее время потоки используются для следующих задач:

  • Пул подключений
  • Пул запросов
  • Асинхронная загрузка результирующих множеств
  • Асинхронные уведомления провайдера
  • Работа с файлами
  • Сборка мусора в обновляемых множествах

Общий пул потоков используется только в сборках 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++

Дата публикации: 10.12.2019. Права на материал принадлежат: IBProvider. При перепечатке ссылка на сайт https://www.ibprovider.com/rus обязательна.
Предыдущие новости
IBProvider v5.8. LCPI OLE DB Services v1.11
Следующие новости
IBProvider v5.10