powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / рантаймы, коллизии
10 сообщений из 10, страница 1 из 1
рантаймы, коллизии
    #38739442
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Рантаймы(msvc*80.dll) у снапшотов и релиза разных версий.
Причём в релизе лежит рантайм от 2005 года.
Релиз:
8.0.50727.42, 22.09.2005
Снапшоты:
8.0.50727.6196, 14.05.2011
И манифесты разные, естественно.
И в бинарниках FB прописана разная версия в релизе и снапшотах.
Получается что тестируется и отлаживается всё с одним рантаймом, а пользователям релизится с другим.

2. Как юзеру задеплоить несколько UDR с разными рантаймами?
Например кто-нибудь напишет UDR, использующую 10-й рантайм. Другой напишет UDR с рантаймом 8.0.50727.6196, третий с 8.0.50727.42. Пользователь в одну папку всё это физически не положит, нужно будет по разным раскладывать.
Где можно указать, что udr с именем udr1.dll нужно искать в папке "$(dir_plugins)\udr\udr1\", а udr2.dll нужно искать в папке "$(dir_plugins)\udr\udr2\"?

3. Как уживаются несколько рантаймов в одном процессе?
Если например из UDR или плагина подгрузить fbembed.dll от 2.5. или от 1.5, или от firebird.dll от другой тройки (т.е. из другого пути, возможно с другими версиями icu*.dll, с другими плагинами (которые тоже неизвестно чего грузят)), то там никому не поплохеет, чисто теоретически? Этот вопрос относится и к рантаймам и вообще к возможности работы нескольких FB разных версий в одном процессе.

3.1. Например прога с fbembed.dll у меня создаёт файлики:
C:\Users\All Users\firebird\fb_trace
C:\Users\All Users\firebird\fb_trace_mqpkf1
C:\Users\All Users\firebird\fb_lock_fcb7693a00000400a2640400
Первый файлик архистранный. После остановки проги я почистил C:\Users\All Users\firebird\ и запустил заново, там появились файлики:
fb_trace.1
fb_trace_h2abg1
fb_lock_fcb7693a00000400a2640400
Не останавливая прогу я запустил ещё одну, из другой папки, добавился только файл:
fb_lock_fcb7693a000002000aa60900
Два других остались такими же (т.е. не перезаписались).
Т.е. один exe-шник создаёт себе fb_trace.1, а другой уже нет.

3.1.1. Дальше с файликами fb_lock_*. Что там за инфа? И как её будут делить разные fbembed.dll от разных серверов в рамках одного процесса?
Я бы предпочёл чтобы разные dll-инстансы разных версий FB (и вообще FB из разных папок), работающие в одном процессе, использовали разные временные файлы. Например можно добавлять к имени лок-файла или fb_trace-файла вот это: "hash(upper(full_dll_path))", ну и PID конечно к fb_trace нужен. Тогда коллизий на файлах не будет.
...
Рейтинг: 0 / 0
рантаймы, коллизии
    #38739481
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee1. Рантаймы(msvc*80.dll) у снапшотов и релиза разных версий.
1. поздравляю с открытием америки!
2. в тройке это не так

Получается что тестируется и отлаживается всё с одним рантаймом, а пользователям релизится с другим.
ты не в состоянии решить эту высосанную из пальца проблему?

2. Как юзеру задеплоить несколько UDR с разными рантаймами?
нормально ставить рантаймы (redist-ом)

3. Как уживаются несколько рантаймов в одном процессе?
замечательно

Дальше с файликами fb_lock_*. Что там за инфа? И как её будут делить разные fbembed.dll от разных серверов в рамках одного процесса?
нормально будут делить. Если, конечно, ты не собираешься работать с одной базой разными версиями fbembed одновременно.

Я бы предпочёл чтобы разные dll-инстансы разных версий FB (и вообще FB из разных папок), работающие в одном процессе, использовали разные временные файлы. Например можно добавлять к имени лок-файла или fb_trace-файла вот это: "hash(upper(full_dll_path))", ну и PID конечно к fb_trace нужен. Тогда коллизий на файлах не будет.
ты вообще не понимаешь, что это за файлы и почему это сделано именно так
...
Рейтинг: 0 / 0
рантаймы, коллизии
    #38739489
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrнормально ставить рантаймы (redist-ом)Есть ньюанс - эти рантаймы обновляются с каждым фиксом. А иногда и ещё и исправлениями по безопасности.
Можно, конечно, и доставлять новые билды по мере надобности, но "как-то это неаккуратненько".
У меня складывается впечатление, что в пределах версии старший билд рантайма может замещать младшие. Это всегда так?
...
Рейтинг: 0 / 0
рантаймы, коллизии
    #38739519
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. В чём проблема ?

2.
а) устанавливать рантаймы их родными инсталляторами в SxS и винда сама разберётся кто кого хочет
б) устанавливать udr\udf с нестандартным рантаймом в отдельный каталог, регистрировать в БД соотв. образом и\или настраивать firebird.conf

3. Нормально уживаются.
3.1 После штатной остановки embedded\полного сервера никаких файлов там не остаётся.
После нештатной остановки что-то может и остаться, удалять это при запущенном сервере\embedded крайне не рекомендую.
fbtrace.1 в твоём случае говорит о том, что ты сломал себе трейс. Он починится после завершения сервера и всех embedded.
3.1.1 Там лок-таблица. Её абсолютно нормально делят все заинтересованные процессы.

Предпочти не делать глупых предложений, не основанных на знании.
...
Рейтинг: 0 / 0
рантаймы, коллизии
    #38739520
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЕсть ньюанс - эти рантаймы обновляются с каждым фиксом. А иногда и ещё и исправлениями по безопасности.Они не замещают предыдущие версии рантаймов.
...
Рейтинг: 0 / 0
рантаймы, коллизии
    #38753148
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeЕсли например из UDR или плагина подгрузить fbembed.dll от 2.5. или от 1.5, или от firebird.dll от другой тройки (т.е. из другого пути, возможно с другими версиями icu*.dll, с другими плагинами (которые тоже неизвестно чего грузят)), то там никому не поплохеет, чисто теоретически?
Если главный процесс установит переменную FIREIBIRD, потом загрузит embedded, который в udr будет грузить embedded других версий, то конечно получится фигня. Глобальные переменные - зло :)
...
Рейтинг: 0 / 0
рантаймы, коллизии
    #38753151
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

Зло - это впадение в маразм такого рода: "embedded, который в udr будет грузить embedded других версий"

Тебе заняться ночером нечем, кроме махания ерундой на форуме ?
...
Рейтинг: 0 / 0
рантаймы, коллизии
    #38753152
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeпотом загрузит embedded, который в udr будет грузить embedded других версий
который в udr будет грузить embedded других версий, и в конце-концов сойдет с ума.
Похоже, опыт других людей с коннектом в UDF ничему не учит.
...
Рейтинг: 0 / 0
рантаймы, коллизии
    #38753182
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЗло - это впадение в маразм такого рода: "embedded, который в udr будет грузить embedded других версий"
Правильным было бы, в качестве альтернативы глобальным переменным, сделать процедурку в клиентской либе, которая бы устанавливала всё что приходится устанавливать глобальными переменными.
...
Рейтинг: 0 / 0
рантаймы, коллизии
    #38753252
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeПравильным было быне придумывать хрень всякую на ночь глядя :)

PS есть планы сделать вызов АПИ, позволяющий передать конфиг (вместо чтения его с диска).
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / рантаймы, коллизии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]