Страница 1 из 1

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

Добавлено: 02 дек 2011, 12:59
Nikoole
После подключения к базе с помощью программы 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... а теперь - нет :(

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

Добавлено: 02 дек 2011, 13:08
dimitr
у тебя в IBExpert небось прописан fbembed.dll в качестве клиентской библиотеки для этой базы

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

Добавлено: 02 дек 2011, 13:16
Nikoole
А как исправить? :(

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

Добавлено: 02 дек 2011, 13:35
dimitr
прописать там fbclient.dll

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

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

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

Добавлено: 02 дек 2011, 13:57
dimitr
алиас / Database Registration Info / General / Client Library File

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

Добавлено: 02 дек 2011, 14:12
Nikoole
Вот такие настройки в 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 - то страничка загрузится номрально.

Помогите разобраться, пожалуйста. :(

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

Добавлено: 02 дек 2011, 14:27
dimitr
ты бы хоть написал, что у тебя за сервер стоит. InterBase или Firebird и какой версии?

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

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

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

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

Добавлено: 02 дек 2011, 14:39
Nikoole
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 )...

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

Добавлено: 02 дек 2011, 14:51
dimitr
кликни в трее по иконке 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

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

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

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

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

Добавлено: 04 дек 2011, 12:50
Nikoole
Ребят, спасибо за советы.
Вчера и сегодня бился - не помогает пока ничего.

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

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

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

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

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

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

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

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

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

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

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

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