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

IBProvider v3.27.1. Сервисное обновление

Мы рады представить первое обновление нашего OLE DB провайдера в 2016 году. После предыдущего релиза сложно сделать что-то похожее по масштабу. Но, тем не менее, мы все таки попытались сделать провайдер еще лучше.

О нашем собственном клиенте для Firebird (fb.direct)

В предыдущем релизе мы полностью опустили описание новой подсистемы IBProvider v3.27 для подключения к Firebird без использования серверного клиента (fbclient.dll). Ограничились только указанием способа её активации.

И это породило вопросы у наших пользователей. В частности — «зачем мы его написали?».

Чтобы ответить на этот вопрос нужно перечислить список проблем fbclient.dll (до v2.5 включительно):

  • Утечки памяти
  • Утечки активных многопоточных блокировок
  • Рассинхронизация на уровне приема/отправки пакетов
  • Ошибки в реализации отмены выполнения операций
  • Ошибки в алгоритмах
  • Архитектурные проблемы ISC API
  • И так далее и тому подобное

Все эти проблемы присутствуют в любом приложении, которое использует fbclient.dll. И они не зависят от качества и возможностей компонент доступа (FIBPlus, IBObjects, FireDAC, ODBC, IBProvider и так далее).

Сначала мы попробовали решить эти проблемы непосредственно в самой fbclient.dll и создали собственный клон Firebird 2.5. Но это помогло решить только небольшую часть проблем.

Поэтому пришлось решать проблему самым радикальным способом – написать собственный клиент с нуля.

Архитектурная возможность для такого клиента была изначально заложена в проект IBProvider v3 в 2003 году. Поэтому нам не пришлось переписывать весь код провайдера.

Чтобы контролировать и гарантировать качество реализации, для неё было написано 24K новых unit-тестов. Это дополнительно к 7 миллионам существующим тестам основной тестовой системы IBProvider. На протяжении всего периода разработки шло круглосуточное тестирование.

После релиза 17 декабря 2015, было проведено дополнительное расширенное нагрузочное и стрессовое тестирование прямого подключения к Firebird 2.5 (SuperClassic, x64, Win) через TCP/IP. Это более 1500 часов процессорного времени тестовой системы. Все работает очень хорошо.

Надеемся, что предоставленная информация дает ответ на вопрос о преимуществах нового способа подключения к выделенному серверу Firebird 2.5 через IBProvider.

Мы рекомендуем указать в строке подключения «dbclient_type=fb.direct» и подключаться через INET-протокол. Особенно, если вы используете IBProvider в качестве связанного сервера MSSQL.

Но выбор, конечно, остается за вами.

Новая подсистема доступна только в составе «IBProvider Professional Edition». «IBProvider Free Edition» может работать с Firebird только через fbclient.dll.

Улучшена поддержка массивов

Для работы описания размерностей массивов провайдер теперь использует 32-битные числа. Это позволяет работать с размерностями, содержащими до 2GB элементов. Например: [-1000000:1000000].

Уборка мусора

Удалено несуразное свойство «IB Remote Connection».

Сборки vc14xp

Сборки «vc14xp» теперь компилируются с использованием Visual Studio 2015 Update 1.

Версия CRT: 14.0.23506.0

В личных кабинетах доступны сборки, созданные с помощью VS2010, VS2012, VS2013, VS2015. Если вам нужны сборки, созданные в VS2008 – напишите нам. У нас они есть.

Внутренние изменения

Мы постоянно работаем над улучшением качества C++ кода IBProvider. Часть изменений можно наблюдать в каталоге «Lib» с установкой IBProvider.

Текущее направление работ

Мы хотим исправить серверную ошибку с VARCHAR-массивами (CORE-1588) на уровне провайдера.

Это будет хорошей проверкой технологических возможностей IBProvider.


Дата публикации: 20.01.2016. Права на материал принадлежат: IBProvider. При перепечатке ссылка на сайт https://www.ibprovider.com/rus обязательна.