Вчера закончился прогон всех тестов, применимых к IBProvider v5 и Firebird v3. 27 дней, Карл.
Тестировался FB 3.0.4 (Win, x64, SuperServer). Официальная сборка с firebirdsql.org. С FB v3.0.5 почему-то не сложилось — файл базы данных выжирал все доступное место на рам-диске (80GB) и кино заканчивалось. Я три недели «помучался» и откатился на 3.0.4. Возможно я где-то что-то не то сделал…
В предыдущий раз тоже «мучался» FB3.0.4. Но сейчас тесты гонялись на IBProvider v5, Win10 (1809+) и у процессора включен HT (я его включил после обновления биоса). (далее…)
Некоторые виды проверок IBProvider осуществляются на виртуальной машине с древней Windows XP SP2.
Ставлю я туда сборки vc12xp (VS2013, XP Mode).
А сегодня что-то в голове щелкнуло и решил попробовать туда поставить сборки vc16 (VS2019).
Работают!
Я так удивился, что тут же попробовал туда поставить сборки vc15 (VS2017) — не работают. Вылазит ошибка, связанная с MSVCP140.dll.
—
Я прямо загорелся идеей изничтожить весь этот зоопарк студий (VS2008-VS2017) на компьютере и оставить только 2019-ю 🙂
—
UPD1. Если поставить на XPSP2 рантайм от VS2019 (14.20.27508.00001), то сборки провайдера vc15 (VS2017) тоже будут работать. Не знаю кому как, а мне прямо захорошело 🙂
Захотел прикрутить к источнику данных IBProvider нестандартный интерфейс с методом GetPropertyInfo — идентичный IDBProperties::GetPropertyInfo, но возвращающий в DBPROPINFO::pwszDescription мультистроку с основным именем свойства и его псевдонимами.
Ну чтобы клиент мог работать с псевдонимами наравне с основным именем.
И получил облом.
Если у источника данных запрашивать нестандартный интерфейс, то стандартный пул подключений OLE DB умывает руки и этот источник данных не кэшируется.
В Entity Framework Core опять перепахали весь ландшафт. Состыковать провайдер с изменениями, в смысле восстановить компилируемость, было относительно не сложно. А вот более 3 тысяч сбойных тестов (~90%) конкретно удручают.
Хотя надо во всем искать положительные стороны.
Например, благодаря этому «небольшому» исследовательскому проекту появился IBProvider v5 и устранены мелкие проблемы в .Net Provider.
Даже как-то забавно рассматривать возню с EFCore как плату за улучшения в основных проектах.
Где-то на краю сознания мне давно хотелось попробовать подключиться к базе данных Firebird через MSSQL Linked Server и встроенный Firebird.
Ну хотелось и хотелось (мало чего в голову лезет).
А сегодня это хотение озвучил один наш клиент. Пришлось пробовать. С Firebird 2.5.8.
Не получилось.
В логе Firebird вылезли такие ошибки:
HOME4 Thu May 09 20:23:52 2019
OpenProcessToken failed. Error code: 5
HOME4 Thu May 09 20:23:52 2019
Operating system call OpenProcess failed. Error code 5
Такие дела.
UPD [2019-05-16]. Кстати, клиент написал, что осилил. Одним из затыков была необходимость копирования модулей ICU в system32. Сам я так и не добил этот вопрос 🙂