Вчера столкнулся с очень серьёзной проблемой, решение которой заняло почти день. Причём решать её пришлось самостоятельно - техподдержка развела руками.
Используется ПК Смета.РУ. Текущая версия была 4, с последним апдейтом. Требовалось выполнить обновление до версии 6. Версия - клиент-серверная, но с применением локальных ключей. Однако необычна конфигурации сервера БД, потому о ней дополнительно.
Сервер работает под управлением Windows 2003 EE SP 2 со всеми апдейтами. На нём установлены 2 инстанса Firebird 1.5.0.4306, работающих на портах 3050 (classic mode) и 3051 (superserver mode), с именами сервисов gds_db и gds_db_3051 соответственно. Каждый инстанс обслуживает по 2 БД, в т.ч. инстанс 3050 - БД Смета.РУ. Остальные БД - из разряда 7*24, допустимое время простоя - не более 30 минут.
Первый звоночек прозвенел при первом же запуске инсталлятора. Он заявил, что не будет работать при загруженном BDE, без вариантов продолжения. Выяснилось, что ему необходима выгрузка обоих инстансов Firebird. Почему - непонятно.
После остановки обоих сервисов инсталлятор запустился и произвёл обновление базы данных. Однако в процессе инсталляции он самовольно, не задавая вопросов и не давая сообщений, произвёл установку ещё одного инстанса Firebird, причём в superserver mode на порт 3050, и установил Guardian.
Само собой появление ещё одного инстанса сервера, причём конфликтующего с существующим, привело к значительным проблемам. Даже остановка поставленных без спроса сервисов и восстановление запоротого файла конфигурации не смогло до конца решить проблему. Само собой использование штатного деинсталлятора для удаления этих сервисов было невозможно. В результате пришлось проводить достаточно долгий процесс ручной чистки реестра от установленных инсталлятором сервисов и виртуальных устройств, корректировки ссылок на общие модули и пр.
Ну и теперь собственно сам вопрос - где брать инсталлятор для продвинутых конфигураций? Который не будет проявлять самодеятельности, будет сообщать о каждом своём шаге, будет использовать те ресурсы, которые ему предоставлены, а не те, которые ему хочется доустановить. И без инсталлятора Firebird внутри (тем более запускаемого в silent-mode).