Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
ВнизДоступ по к базе IB c использованием NamedPipe Найти похожие ветки
← →
Карелин Артем © (2004-08-19 13:02) [0]Как указать что база лежит на том же компе, что и программа?
Что должно стоять на компе для поддержки такого доступа к базе. //Должно работать на любых виндах после 95.
← →
Соловьев © (2004-08-19 13:05) [1]
> Как указать что база лежит на том же компе, что и программа?
> Что должно стоять на компе для поддержки такого доступа
> к базе.
в настройках проги.
клиент. Как минимум fbclient.dll
← →
Digitman © (2004-08-19 13:06) [2]
> что и программа
какая программа ?!
← →
Карелин Артем © (2004-08-19 13:10) [3]Будем считать что FB установлен и локальный коннект есть.
Как будет выглядеть строка подключения в случае, если база лежит на "c:\1.fdb" и мы к ней ломимся через NamedPipe.
Что должно стоять/быть разрешено в винде в таком случае? К примеру чтобы ломиться к базе по TCP/IP в Win"9x надо иметь поддержку этого самого, потому как если нет модема или сетевухи его нету.
← →
Карелин Артем © (2004-08-19 13:11) [4]Digitman © (19.08.04 13:06) [2]
Которая обращается к базе.
← →
Digitman © (2004-08-19 13:19) [5]
> Карелин Артем © (19.08.04 13:11) [4]
"\\LanManagerServerName\c:\1.fdb"
← →
Карелин Артем © (2004-08-19 13:21) [6]Остался второй вопрос:
Что должно стоять/быть разрешено в винде в таком случае?
← →
Карелин Артем © (2004-08-19 13:23) [7]И как назвается аналог localhost в NamedPipe?
← →
}{ander © (2004-08-19 13:26) [8]
> Что должно стоять/быть разрешено в винде в таком случае?
>
WinSock2 (естественно, нужно установить и клиента IB?FB)
← →
}{ander © (2004-08-19 13:28) [9]
> Карелин Артем © (19.08.04 13:10) [3]
> Как будет выглядеть строка подключения в случае, если база
> лежит на "c:\1.fdb" и мы к ней ломимся через NamedPipe.
На счет NamedPipe не совсем уверен, но что мешает попробовать в строке коннектаlocalhost:c:\1.fdb
← →
-SeM- (2004-08-19 13:28) [10]Поддержка NetBEUI протокола. Сетевухи нет, модема нет. Начнем с начала?
Зачем для локального подключения к базе использовать сетевые протоколы?
← →
Карелин Артем © (2004-08-19 13:31) [11]-SeM- (19.08.04 13:28) [10]
Многопоточный доступ к базе надо. А через localhost:c:\1.fdb почему-то рвется часто соединение и сервер перезагружается. В логах FB идет ошибка 10054.
← →
-SeM- (2004-08-19 13:41) [12]Открываю firebird.msg
Ошибка № 10054 - conversion error :)
← →
Карелин Артем © (2004-08-19 13:44) [13]-SeM- (19.08.04 13:41) [12]
Есть точно такая же ошибка, но WSAECONNRESET - Error 10054A connection was forcibly closed by a peer. This normally results from a loss of the connection on the remote socket due to a timeout or a reboot.
← →
-SeM- (2004-08-19 13:59) [14]Карелин Артем © (19.08.04 13:44) [13]
Это чья ошибка (WSAECONNRESET - Error 10054) WinSock2? Он разве пишет в firebird.log?
У firebirdа есть свой код: 421 - connection lost to database
← →
Карелин Артем © (2004-08-19 14:02) [15]Полд рукой нет лога, но точно помню что именно сетевая виндовая ошибка.
← →
Digitman © (2004-08-19 14:24) [16]
> Карелин Артем © (19.08.04 13:23) [7]
> И как назвается аналог localhost в NamedPipe?
никак
NamedPipe-механика использует имена компов в соответствии с LanManager-механикой идентификации узлов, которая пересекается с DNS-механикой лишь на уровне WINS
← →
Карелин Артем © (2004-08-19 14:34) [17]Digitman © (19.08.04 14:24) [16]
Трудно с тобой...
Что подставить в строку коннекта на место LanManagerServerName если имя компа заранее неизвестно, но база с программой лежат на одном компе.
← →
Digitman © (2004-08-19 14:41) [18]
> Карелин Артем © (19.08.04 14:34) [17]
> Трудно с тобой
сожалею
> Что подставить в строку коннекта на место LanManagerServerName
> если имя компа заранее неизвестно, но база с программой
> лежат на одном компе
имя данного компа
← →
Карелин Артем © (2004-08-19 14:42) [19]Digitman © (19.08.04 14:41) [18]
Точку надо ставить...
Всем отвечавшим без исключения спасибо, вопрос закрыт.
← →
}{ander © (2004-08-19 17:29) [20]Несмотря на то, что вопрос закрыт, хотелось бы высказать еще одну маленькую реплика по поводу
This normally results from a loss of the connection on the remote socket due to a timeout or a reboot.
Только что проверил:
1. Создаем приложение с транзакцией Read Commited (read_committed|rec_version|nowait). В нем открываем датасет, меняем одно поле, делаем пост, на не делаем каммит транзакции оставляем приложение работать.
2. Создаем второе приложение – точно такое же, но в нем для транзакции устанавливаем режим Read-Only Table Stability (read|consistency). Делать оно должно то же самое, что и первое. Но!
3. При попытке второго приложения соединиться с сервером ничего не получается. Соединение происходит только тогда, когда первое приложение сделает каммит или роллбэк.
К чему я это все: возможно, у тебя происходит то же самое: из-за неправильно установленного уровня изоляции транзакций один из потоков просто не может законнектиться к базе. Он какое-то время ждет, а потом выдает эту самую ошибку о том, что превышено время ожидания.
← →
Карелин Артем © (2004-08-20 13:20) [21]В таком случае должен быть deadlock. А вот логи того, что было в реальности:
A (Client) Fri Jul 30 06:38:46 2004
Guardian starting: L:\Program Files\Firebird\bin\fbserver.exe
A (Client) Fri Jul 30 12:31:30 2004
INET/inet_error: read errno = 10054
A (Client) Fri Jul 30 12:31:30 2004
INET/inet_error: send errno = 10054
A (Client) Fri Jul 30 12:31:30 2004
INET/inet_error: send errno = 10054
A (Client) Fri Jul 30 12:31:30 2004
INET/inet_error: send errno = 10054
A (Client) Fri Jul 30 12:31:30 2004
L:\Program Files\Firebird\bin\fbserver.exe: terminated abnormally (3221225477)
A (Client) Fri Jul 30 12:31:31 2004
Guardian starting: L:\Program Files\Firebird\bin\fbserver.exe
← →
Digitman © (2004-08-20 14:00) [22]
> Карелин Артем
UDF используется в базе ?
← →
Карелин Артем © (2004-08-20 14:07) [23]Digitman © (20.08.04 14:00) [22]
Только стандартные.
← →
Карелин Артем © (2004-08-20 14:13) [24]т.е. которые в ib_udf.sql и fbudf.sql прописаны.
← →
Digitman © (2004-08-20 14:50) [25]
> Карелин Артем © (20.08.04 14:07) [23]
все равно - под подозрением ..
нельзя ли как-то гарантированно исключить вызов ЛЮБЫХ UDF на время эксперимента по поиску источника проблемы ?
← →
Карелин Артем © (2004-08-20 14:55) [26]Digitman © (20.08.04 14:50) [25]
Т.е. подозрение на UDF...
Вообще исключить вызовы проблематично по причине их необходимости во время работы с базой и того факта, что эксперимент должен быть долгим. FB рушится то 3 раза в день, то раз в 3 недели. Определить конкретный источник не удается. Рушился даже во время бэкапа.
А можно поинтересоваться хотя бы беспочвенными подозрениями или случаями из личной практики?
← →
Digitman © (2004-08-20 15:49) [27]
> Карелин Артем © (20.08.04 14:55) [26]
> Т.е. подозрение на UDF
нет, необязательно ... но и в том числе ..
AV, возникшие (при определенных условиях) в телах "кривых" UDF, приводят как правило к аварийному завершению процесса сервера , при котором, естественно, сервер закроет по своей инициативе все существующие активные коннекты к нему
гвардеец, отследив эту ситуацию, стартует процесс сервера вновь, что и наблюдается согласно логу ...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.04 c