одновременный запуск двух fb15 на разных портах
Модераторы: kdv, Alexey Kovyazin
одновременный запуск двух fb15 на разных портах
Извините, если об этом говорилось кучу раз
Сами понимаете, что если я набрал столько текста, то эта проблема мне встала поперек горла.
Вопрос ко всем и к kdv в частости (поскольку его статья не помогла).
Пытаюсь запустить ДВЕ ОДИНАКОВЫХ ВЕРСИИ Firebird (1.5.3) на одном компьютере разработчика.
Я так понимаю, что эта проблема "иногда" актуальна не только для одинаковых версий.
Попытался расписать проблему настолько подробно, наколько возможно - возможно получилось более подробно, чем нужно.
В общем прошу не обижаться на тавтологию.
Итак имеется:
1) Firebird 1.5.3
2) Разрабатывается продукт, при инсталяции которого будут установлены клиентские программы и сервер по умолчанию(DefaultInstance:3050) - на любой NT платформе
3) имеем место разработчика - w2k sp4 (в принципе тоже любая NT платформа)
Хочется:
1) Иметь девелопмент Firebird Сервер, который не будет никуда исчезать при инсталляциях и деинсталяциях
Сразу оговорюсь, что разные сервера для разработки и отладки на разных компьютерах меня в принципе устраивают вполне.
Какими компьютерами при этом они являются, реальными и виртуальными(vmware) - мне все равно.
Но все таки хочется запустить ДВА Firebird-a ОДИНАКОВОЙ версии на одном компьютере.
Разрабатываю систему, "как обычно" - (DefaultInstance:3050) / IBExpert
Мешает то, что в процессе тестирования необходимо сравнительно часто проверять инсталяцию "полного продукта" (со "свежим" Firebird - свежие aliases.conf, firebird.conf)
- инсталяция идет по умолчанию в DefaultInstance:3050 - как обычно, как и будет(должно быть) в "окончательной" версии.
В моем случае это подразумевает "временную" остановку(удаления) основного "Development" сервера и соответствующей базы/(баз!!!!).
Это мешает мне разрабатывать новые версии данного продукта или других продуктов вообще, поскольку DEVELOPMENT сервер и его соответствующий .conf "на время" умирают при новой инсталяции.
тоесть я не могу одновременно работать с несколькими базами, поскольку установка продукта "убивает" мой девелопмент сервер и его конфигурацию (алиасы).
Тоесть мне желательно иметь сервер и базы на каком-то нестандартном порту, чтобы всякие другие инсталляции ( "стандартные" ) - мне не мешали.
Проверил обычную инсталяцию "install_super.bat" с измененными параметрами в "firebird.conf" и "aliases.conf".
Изменил порт на 3051 - IBExpert работает - мне в принципе больше ничего и не надо.
Все меня устраивает, за исключением того, что это - DefaultInstance, которая убивается моим инсталятором.
____________________________________
нижеприведенная статья
http://www.ibase.ru/devinfo/inst_manual.htm
по данной теме дала мне немного, а точнее ничего - не удалось запустить "такой" сервер, на который никак не будут влиять другие установки firebird-а по умолчанию.
_____________________________________
Экскремент был следующим:
Снес Delault Firebird
Разархивировал fb153 в D:\_dev\firebird153_\ - сервер для разработки (который никогда и никуда исчезать не должен)
Изменил
D:\_dev\firebird153_\firebird.conf
CreateInternalWindow = 0
RemoteServicePort = 3055
запускал и так
ibguardinst.exe INSTALL D:\_dev\firebird153_\bin\fbguard.exe
сервис гвардиана "InterBase Guardian":
1) установился
2) стартовал (по моей команде из Services.msc)
3) IBExpert : can't format message 13:98 - message file C:\Program Files\HK-Software\firebird.msg not found - Unable to complete network request to host "localhost". Failed to establish connection.
4) порт 3055 никто не слушает (netstat -a)
запустил так:
ibguardinst.exe INSTALL D:\_dev\firebird153_\bin\fbserver.exe
на случай, если kdv ошибся в статье при указании того, что (какой EXE) должно быть зарегистрировано.
опять netstat -a | grep 3055
выдает полный ноль
Куда копать?
ЗЫ: один раз случайно вродебы получилось установить, но я не понял закономерности и не проследил последовательности установки
Сами понимаете, что если я набрал столько текста, то эта проблема мне встала поперек горла.
Вопрос ко всем и к kdv в частости (поскольку его статья не помогла).
Пытаюсь запустить ДВЕ ОДИНАКОВЫХ ВЕРСИИ Firebird (1.5.3) на одном компьютере разработчика.
Я так понимаю, что эта проблема "иногда" актуальна не только для одинаковых версий.
Попытался расписать проблему настолько подробно, наколько возможно - возможно получилось более подробно, чем нужно.
В общем прошу не обижаться на тавтологию.
Итак имеется:
1) Firebird 1.5.3
2) Разрабатывается продукт, при инсталяции которого будут установлены клиентские программы и сервер по умолчанию(DefaultInstance:3050) - на любой NT платформе
3) имеем место разработчика - w2k sp4 (в принципе тоже любая NT платформа)
Хочется:
1) Иметь девелопмент Firebird Сервер, который не будет никуда исчезать при инсталляциях и деинсталяциях
Сразу оговорюсь, что разные сервера для разработки и отладки на разных компьютерах меня в принципе устраивают вполне.
Какими компьютерами при этом они являются, реальными и виртуальными(vmware) - мне все равно.
Но все таки хочется запустить ДВА Firebird-a ОДИНАКОВОЙ версии на одном компьютере.
Разрабатываю систему, "как обычно" - (DefaultInstance:3050) / IBExpert
Мешает то, что в процессе тестирования необходимо сравнительно часто проверять инсталяцию "полного продукта" (со "свежим" Firebird - свежие aliases.conf, firebird.conf)
- инсталяция идет по умолчанию в DefaultInstance:3050 - как обычно, как и будет(должно быть) в "окончательной" версии.
В моем случае это подразумевает "временную" остановку(удаления) основного "Development" сервера и соответствующей базы/(баз!!!!).
Это мешает мне разрабатывать новые версии данного продукта или других продуктов вообще, поскольку DEVELOPMENT сервер и его соответствующий .conf "на время" умирают при новой инсталяции.
тоесть я не могу одновременно работать с несколькими базами, поскольку установка продукта "убивает" мой девелопмент сервер и его конфигурацию (алиасы).
Тоесть мне желательно иметь сервер и базы на каком-то нестандартном порту, чтобы всякие другие инсталляции ( "стандартные" ) - мне не мешали.
Проверил обычную инсталяцию "install_super.bat" с измененными параметрами в "firebird.conf" и "aliases.conf".
Изменил порт на 3051 - IBExpert работает - мне в принципе больше ничего и не надо.
Все меня устраивает, за исключением того, что это - DefaultInstance, которая убивается моим инсталятором.
____________________________________
нижеприведенная статья
http://www.ibase.ru/devinfo/inst_manual.htm
по данной теме дала мне немного, а точнее ничего - не удалось запустить "такой" сервер, на который никак не будут влиять другие установки firebird-а по умолчанию.
_____________________________________
Экскремент был следующим:
Снес Delault Firebird
Разархивировал fb153 в D:\_dev\firebird153_\ - сервер для разработки (который никогда и никуда исчезать не должен)
Изменил
D:\_dev\firebird153_\firebird.conf
CreateInternalWindow = 0
RemoteServicePort = 3055
запускал и так
ibguardinst.exe INSTALL D:\_dev\firebird153_\bin\fbguard.exe
сервис гвардиана "InterBase Guardian":
1) установился
2) стартовал (по моей команде из Services.msc)
3) IBExpert : can't format message 13:98 - message file C:\Program Files\HK-Software\firebird.msg not found - Unable to complete network request to host "localhost". Failed to establish connection.
4) порт 3055 никто не слушает (netstat -a)
запустил так:
ibguardinst.exe INSTALL D:\_dev\firebird153_\bin\fbserver.exe
на случай, если kdv ошибся в статье при указании того, что (какой EXE) должно быть зарегистрировано.
опять netstat -a | grep 3055
выдает полный ноль
Куда копать?
ЗЫ: один раз случайно вродебы получилось установить, но я не понял закономерности и не проследил последовательности установки
для девелопмента - да. то есть. тестовые инсталляции-деинсталляции - стандартный порт. А твоя нестандартная инсталляция - просто запускаемый из абстрактного каталога FB с измененным номером порта в конфиге.Тоесть мне желательно иметь сервер и базы на каком-то нестандартном порту
типа, посмотреть внутрь bat нельзя?Проверил обычную инсталяцию "install_super.bat" с измененными параметрами в "firebird.conf" и "aliases.conf".
блин, ну зачем я все время пишу, что ДЕВЕЛОПЕРУ сервер КАК СЕРВИС нафиг не нужен??? fbserver -a, и все. Ты его заодно будешь видеть в таскбаре, и можешь останавливать и запускать когда вздумается.запускал и так
и для твоего девелоперского сервера на порту 3055 (а например на 3070 слабо? чего вы жметесь с номерами портов?) кроме изменения порта и createinternalwindow в firebird.conf больше ничего менять не надо.
нельзя пускать даже instreg/instsvc для девелоперского сервера. Да и не надо.ibguardinst.exe INSTALL
Делаешь так -
кидаешь архив с файлами FB в любую папку. Например
C:\DevSrv
потом, правишь firebird.conf - указываешь RemoteAuxPort = 3070
пускаешь
c:\DevSrv\bin\fbserver -a
ВСЕ. Сервак работает по порту 3070.
коннект к нему, разумеется, через localhost/3070, а не через localhost.
в принципе я не против запускать девелопмент сервер через -а,
но он как бы на то и девелопмент, чтобы работать постоянно
Добавлено:
и у меня инсталятор NSIS при установке делает то, что в install_super.bat
конечно я видел содержимое этого бат файла.
проблема втом, что у комманд
instreg
instsvc
нету имен сервисов в комбинации с путями к каталогу bin
Еще раз добавлено:
поэтому пытался использовать указанный Вами ibguardinst.exe
но он как бы на то и девелопмент, чтобы работать постоянно
Добавлено:
и у меня инсталятор NSIS при установке делает то, что в install_super.bat
конечно я видел содержимое этого бат файла.
проблема втом, что у комманд
instreg
instsvc
нету имен сервисов в комбинации с путями к каталогу bin
Еще раз добавлено:
поэтому пытался использовать указанный Вами ibguardinst.exe
тот мой ответ, в принципе, можно удалить.
Потому что, как только instreg прописывает ключ FB в реестр, все последующие копии FB начинают открывать конфиг оттуда.
Тут только если Еманов ответит, что это за фигня (почему FB не может брать конфиг просто из каталога выше bin, а если там его нет, то в defaultinstance), будет понятно.
Запустить два FB 1.5 можно только если НЕ стартовать instreg. То есть, если в реестре не будет записи про FB.
Соответственно, всякие "инсталляции-деинсталляции" FB идут лесом.
И. В этом случае не надо мудрить, надо просто использовать поочередный запуск серверов. Создал свой C:\FBDevel, ну и когда его надо запустить, делай instsvc stop, instsvc remove, instreg remove для "тестируемого" проинсталлированного сервера, а потом instreg install для C:\FBDevel. ну и fbserver -a.
то есть, все как описано в статье про поочередный запуск, как я и работаю с IB 7.x, FB 1.x, FB 2.
Если же девелоперский сервер должен работать постоянно, и не только для тебя, то выделяйте отдельный компютер для него.
Потому что, как только instreg прописывает ключ FB в реестр, все последующие копии FB начинают открывать конфиг оттуда.
Тут только если Еманов ответит, что это за фигня (почему FB не может брать конфиг просто из каталога выше bin, а если там его нет, то в defaultinstance), будет понятно.
Запустить два FB 1.5 можно только если НЕ стартовать instreg. То есть, если в реестре не будет записи про FB.
Соответственно, всякие "инсталляции-деинсталляции" FB идут лесом.
И. В этом случае не надо мудрить, надо просто использовать поочередный запуск серверов. Создал свой C:\FBDevel, ну и когда его надо запустить, делай instsvc stop, instsvc remove, instreg remove для "тестируемого" проинсталлированного сервера, а потом instreg install для C:\FBDevel. ну и fbserver -a.
то есть, все как описано в статье про поочередный запуск, как я и работаю с IB 7.x, FB 1.x, FB 2.
Если же девелоперский сервер должен работать постоянно, и не только для тебя, то выделяйте отдельный компютер для него.
перезапускать fb сервер при разработке мне обычно не нужно.
только редкие остановки , чтобы забрать последний fdb
у меня в проекте в комплекте к fb идут моих - 3 сервиса и 3 клиентских програм GUI
мне ОЧЕНЬ редко приходится останавливать firebird, поэтому я хочу, чтобы он работал сервисом, хотя можно сказать:
1) "ну хотишь - хоти"
2) и поскольку я не заказчик - могу стартовать и останавливать, как и когда хочу
только редкие остановки , чтобы забрать последний fdb
у меня в проекте в комплекте к fb идут моих - 3 сервиса и 3 клиентских програм GUI
мне ОЧЕНЬ редко приходится останавливать firebird, поэтому я хочу, чтобы он работал сервисом, хотя можно сказать:
1) "ну хотишь - хоти"
2) и поскольку я не заказчик - могу стартовать и останавливать, как и когда хочу
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
спасибо. НОdimitr писал(а):для multi-instance установки *не надо* делать две вещи:
- устанавливать второй сервер как сервис
- прописывать оба в реестре
при соблюдении этих двух правил все прекрасно работает.
запустил девелопмент сервер через -a и не увидел иконки на таскбаре, поэтому нормально потушить сервер похоже не могу.
w2k sp4
риторический вопрос: если я менял базу, а потом убью сервер через taskManager, что что я получу в базе???
я так понимаю, что если я укажу CreateInternalWindow = 0,
то при shutdown "fbserver -a" тоже нормально не завершится
потому что CreateInternalWindow = 0.запустил девелопмент сервер через -a и не увидел иконки на таскбаре
это не риторический вопрос, а ... Отсоединись от сервера, и прибей его в taskmanager. Если хочешь убедиться, что база НЕ открыта сервером - запусти ProcessExplorer с sysinternals.com, посмотри на файлы, открытые процессом fbserver.exe.риторический вопрос: если я менял базу, а потом убью сервер через taskManager, что что я получу в базе???
1, а не 0. По меню shutdown из таскбара серевер нормально завершится.я так понимаю, что если я укажу CreateInternalWindow = 0,
то при shutdown "fbserver -a" тоже нормально не завершится
hvlad писал(а):...при помощи instsvcdimitr писал(а):для multi-instance установки *не надо* делать две вещи:
- устанавливать второй сервер как сервис
Можно создать сервис любым другим способом и задать ему любое другое имя
я начал эту тему о fb153
О какой версии говрите Вы?
Код: Выделить всё
D:\_dev\firebird153_\bin>instsvc.exe
Usage:
instsvc i[nstall] [ -s[uperserver]* | -c[lassic] ]
[ -a[uto]* | -d[emand] ]
[ -g[uardian] ]
[ -l[ogin] username [password] ]
sta[rt] [ -b[oostpriority] ]
sto[p]
q[uery]
r[emove]
This utility should be located and run from the 'bin' directory
of your Firebird installation.
'*' denotes the default values
'-z' can be used with any other option, prints version
'username' refers by default to a local account on this machine.
Use the format 'domain\username' or 'server\username' if appropriate.