Более одного одновременного подключения

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Nikoole
Сообщения: 10
Зарегистрирован: 11 ноя 2011, 22:34

Более одного одновременного подключения

Сообщение Nikoole » 02 дек 2011, 12:59

После подключения к базе с помощью программы IBExpert, при попытке приконнектиться к базе с помощью ibase_connect вылазиет ошибка:

Код: Выделить всё

Warning: ibase_connect() [function.ibase-connect]: I/O error during "@1" operation for file "@2" Error while trying to open file Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.
Если в IBExpert разорвать соединение с базой - из php подключение удается.
Ребят, подскажите пожалуйста, как лечить?

Раньше я мог одновременно работать с базой и в IBExpert и из php... а теперь - нет :(

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: Более одного одновременного подключения

Сообщение dimitr » 02 дек 2011, 13:08

у тебя в IBExpert небось прописан fbembed.dll в качестве клиентской библиотеки для этой базы

Nikoole
Сообщения: 10
Зарегистрирован: 11 ноя 2011, 22:34

Re: Более одного одновременного подключения

Сообщение Nikoole » 02 дек 2011, 13:16

А как исправить? :(

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: Более одного одновременного подключения

Сообщение dimitr » 02 дек 2011, 13:35

прописать там fbclient.dll

Nikoole
Сообщения: 10
Зарегистрирован: 11 ноя 2011, 22:34

Re: Более одного одновременного подключения

Сообщение Nikoole » 02 дек 2011, 13:39

dimitr писал(а):прописать там fbclient.dll
Ребят, где прописать именно?
Если бы я разбирался - не полез бы на форуме помощи просить...

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: Более одного одновременного подключения

Сообщение dimitr » 02 дек 2011, 13:57

алиас / Database Registration Info / General / Client Library File

Nikoole
Сообщения: 10
Зарегистрирован: 11 ноя 2011, 22:34

Re: Более одного одновременного подключения

Сообщение Nikoole » 02 дек 2011, 14:12

Вот такие настройки в IBExpert:
http://images.devs-on.net/Image/z8hCJhM ... Region.png

Вот что по этому пути лежит:
http://images.devs-on.net/Image/7xf0bVC ... Region.png

И вот что получается при коннекте к базе:
http://images.devs-on.net/Image/Ge4gyaO ... Region.png

Что делать - не знаю.. На первом скрине виден еще один GDS32!!!.dll, так вот когда сюда: алиас / Database Registration Info / General / Client Library File прописываю его, то к базе через IBExpert подключиться могу, но при попытке обновить страничку, где происходит коннект к БД выводится это:
http://images.devs-on.net/Image/ETXNIIC ... Region.png (поправил ссылку, до этого какой-то чужой скрин выводился) А если диссконнектнуться в IBExpert - то страничка загрузится номрально.

Помогите разобраться, пожалуйста. :(
Последний раз редактировалось Nikoole 02 дек 2011, 14:41, всего редактировалось 1 раз.

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: Более одного одновременного подключения

Сообщение dimitr » 02 дек 2011, 14:27

ты бы хоть написал, что у тебя за сервер стоит. InterBase или Firebird и какой версии?

пока я вижу, что в %System% лежит gds32.dll от интербейза и в IBExpert прописан локальный путь коннекта. Если сервер на самом деле Firebird, то ошибка "unavailable database" вполне ожидаема. Для начала пропиши в IBExpert в св-вах алиаса Server = Remote, Server Name = localhost, Protocol = TCP/IP. И попробуй подключиться.

при этом, ibase_connect почему-то видит firebird.msg, возможно лезет к базе через файрбердовского клиента. У тебя случайно не запущены одновременно InterBase и Firebird на машине?

ЗЫ. такой зоопарк несовместимого наплодить ты сам разобрался, а исправлять последствия теперь других просишь?

Nikoole
Сообщения: 10
Зарегистрирован: 11 ноя 2011, 22:34

Re: Более одного одновременного подключения

Сообщение Nikoole » 02 дек 2011, 14:39

dimitr писал(а): ЗЫ. такой зоопарк несовместимого наплодить ты сам разобрался, а исправлять последствия теперь других просишь?
Эх, в этом я виновен, правда поустанавливал многого не думая, лишь бы поскорее заработало. Виноват... Теперь не знаю как лечить.

Вот такая штука у меня висит в трее: http://images.devs-on.net/Image/XEu5hUC ... Region.png - он запускается вместе с денвером.

По вашему совету установил вот такие настройки: http://images.devs-on.net/Image/iUskXa2 ... Region.png , при попытке коннекта вылазиет вот такое сообщение: http://images.devs-on.net/Image/cMbMv5m ... Region.png , т.е. из IBExpert подключиться не получается. Однако, если в качестве этой клиентской библиотеки указать второй GDS32!!!.dll - то подключиться получается, однако сайт тогда выпадает с ошибкой (вот с такой http://images.devs-on.net/Image/ETXNIIC ... Region.png )...

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: Более одного одновременного подключения

Сообщение dimitr » 02 дек 2011, 14:51

кликни в трее по иконке Firebird-а, посмотри путь где он установлен. Найди там в подкаталоге /bin файл fbclient.dll, пропиши его в IBExpert-е вместо gds32.dll. Попробуй подключиться. Возможно, GDS32!!! - это как раз переименованный FB-шный клиент, раз он не требует наличия gds_db/tcp.

в таком случае остается всего один вариант - PHP лезет в базу через embedded-библиотеку, причем явно не от Firebird 2.5. Копай его параметры, тут я не помощник. Заставить все это работать можно двумя способами:

1) заменить у PHP коннект через fbembed.dll (она может называться и gds32.dll, но будет иметь размер больше мегабайта) на коннект через fbclient.dll, не забыв добавить к строку подключения имя хоста
2) переустановить Firebird в версии Classic вместо SuperServer, убедившись что PHP подключается через fbembed.dll версии не ниже 2.5

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Более одного одновременного подключения

Сообщение kdv » 04 дек 2011, 03:07

кстати, почему у тебя галка always capitalaize object names на странице коннекта к БД в IBE выключена? Сильно хочется геморроя с двойными кавычками? см. faq на сайте.

И чарсет коннекта к базе NONE, что тоже может иметь веселые последствия (если стольбцы в базе не в none).

Nikoole
Сообщения: 10
Зарегистрирован: 11 ноя 2011, 22:34

Re: Более одного одновременного подключения

Сообщение Nikoole » 04 дек 2011, 12:50

Ребят, спасибо за советы.
Вчера и сегодня бился - не помогает пока ничего.

На сколько я понимаю, произошла путаница с этими dll. Все это возникло после того как я обновил firebird с 2.1 до 2.5... И не знаю что теперь блин делать... Все ваши советы попробовал...

Буду еще биться.

И уж совсем обнаглею: может у кого-нибудь найдется времечко по teamviewer глянуть? Уже руки опускаются... :-[

kdv, спасибо за советы.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Более одного одновременного подключения

Сообщение kdv » 05 дек 2011, 10:50

а чего биться-то? делаешь поиск всех gds32.dll или fbclient.dll на компе. Все лишние, и не соответствующие fbclient.dll в папке от 2.5, удаляешь. Потом пускаешь instclient i -f gds (мог напутать, запусти instclient из bin FB25 в командной строке). Все.

Nikoole
Сообщения: 10
Зарегистрирован: 11 ноя 2011, 22:34

Re: Более одного одновременного подключения

Сообщение Nikoole » 05 дек 2011, 11:37

Оххх...
В общем проблему решил так (методом тыка после ваших подсказок, естественно, за что огромное спасибо!):

Попробовал запустить две копии IBExpert, подключиться к одной и той же базе - и о, чудо! Оно заработало! Это натолкнуло на мысль какую-то, уже не помню ( :) ), и я полез в свой файл conf.php где заменил это:

$host = "localhost:".$_SERVER['DOCUMENT_ROOT']."\bases\BACKUP.FDB";

на это:
$host = "F:\WebSerwer\home\expertd.ru\www\bases\backup.fdb";

Хотябы так...

Ответить