Firebird ошибка 10054

Firebird log file (firebid.log) can contain a lot of various messages, here you can find the list of most frequent of them, with the explanation of the error.

INET/inet_error: read errno = 10054

Short: Software caused connection abort.

The disconnect of the client from the server. If error text contains with (Client), it means that the client application lost its connection to the server and wrote down this fact to the log.
If error text contains (Server), it means that server lost the connection to the client and reported it to the firebird.log.
The usual reason of 10054 error is an unstable connection, for example, weak Wi-Fi.
Also, it is possible to see this error if a client application doesn’t explicitly close the database connection, i.e., there is no explicit command like «MyDB.Active:=false» on closing the software.

INET/inet_error: read errno = 104

Short: Software caused connection abort.
The same as 10054, but on Linux.

WNET/wnet_error: ReadFile end-of-file errno = 109

In short: Software caused connection abort.

The same as 10054, but this error occurs when client application uses the WNET connection path to the Firebird server instance on Windows, something like this:
\\server\path\database.fdb
This is not recommended, better use TCP/IP connections for network connections (in the format server:path\database.fdb or, on Firebird 3, inet://servername:path\database.fdb), and XNET for local connections (local path on 2.5 and xnet://path\database.fdb).
Consider to disable WNET connections, look here how to disable connection protocols for Firebird on Windows.

INET/inet_error: send errno = 10053 (on Windows)
or INET/inet_error: send errno = 103 (on Linux)

Also means broken connection, but WinSock error is 10053. 

INET/inet_error: connect errno = 10060 (Windows)
or INET/inet_error: connect errno = 10061 (Windows)

In short: 10061 — Connection refused, 10060 — Connection timed out

In general, this error means that it is not possible to establish a connection between the server and client application.

In case of this error with (Client), It means that the client application tried to connect to Firebird through network connection string, but failed, either Firebird server is not running, or access closed by a firewall.

More details about common Winsock errors is here.

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

antoshkin

Сообщения: 19
Зарегистрирован: 07 июл 2005, 11:13

Помогите, падает firebird

Сервер 2*XEON P4 2600, 2*SCSI HDD Raid0, 2048 MB RAM.
Cтоит windows 2003 server sp1.
Стоит Фрегат-Склад, который пользует базу interbase. Сам interbase входит в комплект установки Фрегата. firebird, хотя называется interbase и находится в \Program files\interbase. Основная база весом около 600Мб.
Ну так вот. Спонтанно, периодически, без закономерностей ibserver падает. Падает служба. Но тут же запускается (я в настройках так поставил). Да и ладно бы. Но люди работать не могут. Фрегат сходит сразу с ума, а даже если интербэйс уже запустился, то какой-нибудь большой документ, который заносили час, уходит в небытие.
Пробовал ставить firebird последней версии — не помогает. Он так же падает.
Привожу кусок лога.

ITBASE2 (Server) Wed Jul 06 19:17:10 2005
INET/inet_error: read errno = 10054

ITBASE2 (Server) Wed Jul 06 19:17:50 2005
INET/inet_error: read errno = 10054

ITBASE2 (Server) Wed Jul 06 19:26:11 2005
INET/inet_error: read errno = 10054

ITBASE2 (Server) Wed Jul 06 19:26:11 2005
INET/inet_error: read errno = 10054

ITBASE2 (Server) Wed Jul 06 19:26:11 2005
INET/inet_error: send errno = 10054

ITBASE2 (Server) Thu Jul 07 00:16:22 2005
INET/inet_error: read errno = 10054

ITBASE2 (Server) Thu Jul 07 09:05:01 2005
Access violation.
The code attempted to access a virtual
address without privilege to do so.
This exception will cause the Firebird server
to terminate abnormally.

ITBASE2 (Server) Thu Jul 07 09:50:54 2005
INET/inet_error: read errno = 10054

ITBASE2 (Server) Thu Jul 07 10:05:23 2005
INET/inet_error: read errno = 10054

ITBASE2 (Server) Thu Jul 07 10:41:58 2005
INET/inet_error: read errno = 10054

ITBASE2 (Server) Thu Jul 07 10:42:05 2005
Access violation.
The code attempted to access a virtual
address without privilege to do so.
This exception will cause the Firebird server
to terminate abnormally.

ITBASE2 (Server) Thu Jul 07 10:52:43 2005
Access violation.
The code attempted to access a virtual
address without privilege to do so.
This exception will cause the Firebird server
to terminate abnormally.

ITBASE2 (Server) Thu Jul 07 10:54:12 2005
Access violation.
The code attempted to access a virtual
address without privilege to do so.
This exception will cause the Firebird server
to terminate abnormally.

ITBASE2 (Server) Thu Jul 07 10:59:08 2005
Access violation.
The code attempted to access a virtual
address without privilege to do so.
This exception will cause the Firebird server
to terminate abnormally.

ITBASE2 (Server) Thu Jul 07 11:01:34 2005
INET/inet_error: read errno = 10054

ITBASE2 (Server) Thu Jul 07 11:01:50 2005
INET/inet_error: send errno = 10054

ITBASE2 (Server) Thu Jul 07 11:03:28 2005
Access violation.
The code attempted to access a virtual
address without privilege to do so.
This exception will cause the Firebird server
to terminate abnormally.

Знатоки, может вы что посоветуете?
Чую, что в Фрегате самом баг, но обновить версию нельзя, закончилось обслуживание. Из-за тормозов и глюков отказались от него, но пока по старинке данные делают во фрегате.
Помогите, может какие-то настройки можно сделать или права где-нибудь урезать, чтоб этот интербэйс не падал, а? Так уже достал, сил нет. Вся ругань-то на меня летит…


antoshkin

Сообщения: 19
Зарегистрирован: 07 июл 2005, 11:13

Сообщение

antoshkin » 07 июл 2005, 11:41

Еще в логе приложений появляется такая запись:
Ошибка приложения ibserver.exe, версия 6.2.2.908, модуль ntdll.dll, версия 5.2.3790.1830, адрес 0x0002f583.



kdv

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

Сообщение

kdv » 07 июл 2005, 12:00

если это IB 6.2, то в морг.


eugeney

Сообщения: 79
Зарегистрирован: 29 окт 2004, 18:51

Re: Помогите, падает firebird

Сообщение

eugeney » 07 июл 2005, 12:12

antoshkin писал(а):Пробовал ставить firebird последней версии — не помогает. Он так же падает.

Какое количество пользователей?

Сделай так
1. Снеси IB6.
2. Поставь FB 1.5.2 classic.
3. Сделай backup/restore базы.
4. Поменяй строку соединения с NetBUI на TCP/IP если она не TCP/IP


antoshkin

Сообщения: 19
Зарегистрирован: 07 июл 2005, 11:13

Сообщение

antoshkin » 07 июл 2005, 12:21

Парни, пробовал я ставить FB 1.5.2, такая же фигня.
Только под этой версией у Фрегата не работают некоторые функции. А они нужны.
Скажите, как узнать версию, которая сейчас?
Очень хотелось бы этот интербэйс настроить, а не ставить другой. Этот, мать его, фрегат, не может работать с другим сервером.

Вот сегодня например он падает раз в полчаса. Меня тут уже убить готовы. Он и раньше падал, но не так часто. Раза три в день всего.

Еще вопрос, файл ibconfig, там все строки начинаются с # — это значит они закоменчены? или это спец. символ для обозначения параметра?

Коннекты все по TCP/IP. Где менять этот параметр?


hvlad

Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение

hvlad » 07 июл 2005, 13:52

kdv писал(а):если это IB 6.2, то в морг.

Дим, это FB 1.0.2 — пуст ьпока поживёт ещё немного 8)


hvlad

Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение

hvlad » 07 июл 2005, 13:53

antoshkin писал(а):Парни, пробовал я ставить FB 1.5.2, такая же фигня.

Если это кривые УДФ (очень похоже), то ищи их имена в firebird.log
Если нет — активируй ватсона и давай креш-дамп


Ivan_Pisarevsky

Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение

Ivan_Pisarevsky » 07 июл 2005, 14:10

2*SCSI HDD Raid0

Уберите это добро с сервера, пока не поздно…

Железяка живая? мемтест пяток проходов делает без ошибок?

Имхо битая УДФ, пинайте поставщиков Вашего софта.

INET/inet_error: read errno = 10054

Сеть точно нормально работает? Сотня 64 килобайтных пингов без ошибок?


kdv

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

Сообщение

kdv » 07 июл 2005, 16:57

кстати, да, raid0 — это действительно смешно. сервак с raid 0 — это песня! :twisted:


antoshkin

Сообщения: 19
Зарегистрирован: 07 июл 2005, 11:13

Сообщение

antoshkin » 07 июл 2005, 17:34

Ivan_Pisarevsky писал(а):
Уберите это добро с сервера, пока не поздно…

Железяка живая? мемтест пяток проходов делает без ошибок?

Имхо битая УДФ, пинайте поставщиков Вашего софта.

Сеть точно нормально работает? Сотня 64 килобайтных пингов без ошибок?

Это добро преотличнейше работает, зря вы так на рэйд, тот же самый диск, только быстрее в два раза.
Железяка ессно живая, всё остальное-то при этом работает стабильно.
Пинать поставщика софта никак — обслуживание наше уже давно закончилось.
Сеть работает я бы не сказал, что прям уж супер, но нормально.
64К пинги в «слабый» сегмент сети ходят стабильно 12мс.
Слабый сегмент — это тот, в который идет один 100 мб/с провод.


Ivan_Pisarevsky

Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение

Ivan_Pisarevsky » 08 июл 2005, 09:13

Это добро преотличнейше работает, зря вы так на рэйд, тот же самый диск, только быстрее в два раза.

Вы знаете коллега, я работаю не только программистом но и админом и за последние 5 лет дохлые винты видел не только на картинке. Последний раз пришлось разгребать сдохший софтовый чудо рэйд буквально пару недель назад. Местный пионэр,типа админ, бедняжка, даже не знал с какой стороны к серваку подойти… экономия, блин…

Слабый сегмент — это тот, в который идет один 100 мб/с провод.

интересное трактование термина «слабый» :)

Пинать поставщика софта никак — обслуживание наше уже давно закончилось.

А чего все началось? вдруг раз и глюки???


antoshkin

Сообщения: 19
Зарегистрирован: 07 июл 2005, 11:13

Сообщение

antoshkin » 08 июл 2005, 17:21

Ivan_Pisarevsky писал(а):Вы знаете коллега, я работаю не только программистом но и админом и за последние 5 лет дохлые винты видел не только на картинке. Последний раз пришлось разгребать сдохший софтовый чудо рэйд буквально пару недель назад. Местный пионэр,типа админ, бедняжка, даже не знал с какой стороны к серваку подойти… экономия, блин…

Ну во-первых у меня рэйд аппаратный, во-вторых критически важная инфа бэкапится с него на другой носитель.
А где здесь экономия? То, что купили вместо одно винта два??
Что-то не вижу здесь экономии. А рэйд-то не так просто. Нужно чтоб файловые операции были наиболее быстрыми. Что тут придумать кроме этого? Заметьте, у меня два SCSI винта в рэйде стоят.

интересное трактование термина «слабый» :)

Есть офис, FB-сервер стоит в нем, сеть. И есть второй офис, у которого тоже своя сеть. И вот между этими офисами провод 100 мбит, довольно длинный. И данных по этому проводу шло ох как много, пока я не пересадил 1Сников на терминал. Ну дело не в этом.

А чего все началось? вдруг раз и глюки???

Так всегда и было. FB падает периодически примерно раза три-четыре в день. Но в тот день он падал каждые пять минут, и я решил всё-таки что-нибудь с ним сделать. Вчера поставил connection_timeout — 340, работал сутки, не падал. Сегодня уже раз упал. Увеличил таймаут до 680, посмотрим что будет.
Да и вообще странная какая-то фигня. Вот бы юникс падал из-за таймаутов TCP…


antoshkin

Сообщения: 19
Зарегистрирован: 07 июл 2005, 11:13

Сообщение

antoshkin » 08 июл 2005, 17:29

Коллега, скажите, а бэкап/ресторе базы — это тоже самое, что оптимизация? Если нет, то скажите, как оптимизировать/дефрагментировать базу из командной строки?
Подозреваю, что с помощью gfix.exe, но не могу нигде найти синтаксиса этих команд (gbak и gfix).


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 08 июл 2005, 17:33

antoshkin писал(а):Коллега, скажите, а бэкап/ресторе базы — это тоже самое, что оптимизация?

Смотря что понимать под волшебным словом «оптимизация». Если дефрагментацию, как сказано ниже, то да.

antoshkin писал(а):
Подозреваю, что с помощью gfix.exe, но не могу нигде найти синтаксиса этих команд (gbak и gfix).

А ищешь в Playboy или в Vogue? Попробуй в Operations Guide, чем чёрт не шутит…


hvlad

Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение

hvlad » 08 июл 2005, 17:57

Я вижу — автор не заинтересован в решении проблемы…


antoshkin

Сообщения: 19
Зарегистрирован: 07 июл 2005, 11:13

Сообщение

antoshkin » 08 июл 2005, 17:59

Не, ну можно еще поерничать про угловный розыск или еще чего. Не смешно.
Реально перерыл все доки. Ну не могу найти и всё тут. Может вижу фигу, когда смотрю в книгу?


antoshkin

Сообщения: 19
Зарегистрирован: 07 июл 2005, 11:13

Сообщение

antoshkin » 08 июл 2005, 18:02

hvlad писал(а):Я вижу — автор не заинтересован в решении проблемы…

Плохо вы видите. Именно заинтересован. Просто знатоки почему-то уходят от проблемы в сторону. Что вам показать? Логи показал, систему описал. Понятно, что баги в софте, но это же сервер баз данных (я имею в виду FB), должен же работать независимо от клиентов.


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 08 июл 2005, 18:05

antoshkin писал(а):Не, ну можно еще поерничать про угловный розыск или еще чего. Не смешно.
Реально перерыл все доки. Ну не могу найти и всё тут. Может вижу фигу, когда смотрю в книгу?

На самом деле мне уже тоже давно не смешно. Смешно когда один такой, а когда нормальный человек появляется как луч света в тёмном царстве… Как можно не найти описания утилит в Operations Guide, когда их названиями всё утыкано начиная с оглавления — мой галава этого не понимайт…


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 08 июл 2005, 18:12

antoshkin писал(а): Вчера поставил connection_timeout — 340, работал сутки, не падал. Сегодня уже раз упал. Увеличил таймаут до 680, посмотрим что будет.
Да и вообще странная какая-то фигня. Вот бы юникс падал из-за таймаутов TCP…

Ну-ну. Чукча не теоретик, чукча экспериментатор.

ITBASE2 (Server) Thu Jul 07 00:16:22 2005
INET/inet_error: read errno = 10054

Вот это значит, что отвалился _клиент_, и серверу это по барабану, он всего лишь констатировал факт его гибели и работает дальше. Кстати, про это тожк на каждом углу написано, но мы, видать любим общение в форумах, а не изучение прэдмета.

ITBASE2 (Server) Thu Jul 07 09:05:01 2005
Access violation.
The code attempted to access a virtual
address without privilege to do so.
This exception will cause the Firebird server
to terminate abnormally.

А вот это значит, что завалился сервер. И поставь ты таймаут хоть 340 часов, на этом это никак не отразится. И тебе уже все хором сказали, что на 99% причина — кривая УДФ от разработчика.


Logo
MurCode

  • Форумы
  • Поиск
  • О проекте

Basil A. Sidorov

Дата: 27.11.2016 01:35:34

Dimitry Sibiryakov
Да. 10061 сталбыть

Это connection refused
В принципе, 10054 и 10061 похожи, но возникают в разное время — первое на уже установленном соединении, второе — на этапе подключения.

Постоянно их путаю

Мне, когда «было существенно, но лень запоминать» помогла закладка на MSDN.

Serg Kh

Дата: 27.11.2016 16:58:54

Так как подобное поведение наблюдается на 2-х серверах, которые работают 24/7, то возможно происходит накопление какой-то ошибки, после чего и блокируется подключение именно с этих машин.
Вот только непонятно куда копать. На сервере антивирусника и файервола нет.

hvlad

Дата: 27.11.2016 17:05:34

YuRock
hvlad
Владимир2012
Так что выяснилось для программы нужен GDS32.DLL 2008 года, но ни как ни тот, который имеем при инсталляции Firebird.

Ещё нужно, чтобы луна была в первой четверти, и ни как иначе

На версии Firebird 2.4 вполне может быть. Все что угодно.

Ну хоть ты мой сарказм понимаешь :)

Владимир2012, я пытался мягко намекнуть, что ваше «решение» — не совсем решение, точнее — совсем не решение.

kdv

Дата: 27.11.2016 17:09:57

Владимир2012
— произвести деинсталляцию;
— почистить реестр;
— …

эээ… Firebird пишет в реестр только 1 запись (см. instreg install/instreg remove), которая нужна разве что fbclient.dll для поиска конфига и msg. В 3.0 уже и этого нет.
А сервер прописывается в службы через instsvc.

Так что
— деинсталлировать практически нечего
— чистить реестр тоже не от чего

kdv

Дата: 27.11.2016 17:15:24

Serg Kh
На сервере антивирусника и файервола нет.

в любом случае нужно проверить на софт, который может перехватывать tcp. Системы управления удаленным рабочим столом, прокси (включая клиентов), и т.д.
Или, кривые драйверы сетевой карты, или сама сетевая карта дефективная.
Тут нужно смотреть в firebird.log, и по времени ошибок 10053 (не 10054) и 10038 смотреть, какие есть в это же время ошибки в системном логе операционной системы (Просмотр событий, Журналы Windows, Система и Приложения).

До кучи — можно использовать IBSurgeon Log Viewer, это покажет количество ошибок по конкретным дням, и вообще удобнее просматривать лог. Вероятно, могут быть какие-то внешние воздействия, типа помех по сети, опять же из-за кривого роутера или свитчера, и т.д.

Владимир2012

Дата: 27.11.2016 18:07:19

Модератор: Может, тебе писательством заняться? Такая куча текста и 0 информации по теме.
RO пока не поставил, добрый с утра.

kdv

Дата: 27.11.2016 18:19:39

Владимир2012,

я отвечал не вам, а Serg Kh. Что касается вашего «решения» 19937291, то методом тыка вы что-то исправили, сами не понимая что.

Serg Kh

Дата: 27.11.2016 23:54:37

kdv

В логах firebird только ошибка 10054, в системных чисто. Обновил до 2.5.6, все тоже. Но интересный нюанс, диагностика в IBExpert по IP:3050 соединению дает passed, но к базе коннекта нет. Монитор показывает, что нет ни одного активного соединения (кроме монитора).

kdv

Дата: 28.11.2016 02:58:09

Serg Kh
но к базе коннекта нет.

с каким сообщением? коннекта к базе нет даже на самом сервере? или там есть, а с клиентов нет?
кстати, я бы еще посмотрел на сервере утилитой tcpview (sysinternals) кто слушает порт 3050. А то может там вовсе не ФБ :-)

Serg Kh
Монитор показывает

какой монитор???

p.s. поймите, то что для вас очевидно, издалека вообще не понятно. Постарайтесь описывать проблему максимально полно и точно.

Serg Kh

Дата: 28.11.2016 11:54:14

Монитор — database monitoring
Порт слушает именно firebird, т.к. я могу со своей машины подключится к базе и работать с ней. А соединения с сервера именной с базой нет, но тест по tcp/ip проходит.

Firebird log file (firebid.log) can contain a lot of various messages, here you can find the list of most frequent of them, with the explanation of the error.

INET/inet_error: read errno = 10054

Short: Software caused connection abort.

The disconnect of the client from the server. If error text contains with (Client), it means that the client application lost its connection to the server and wrote down this fact to the log.
If error text contains (Server), it means that server lost the connection to the client and reported it to the firebird.log.
The usual reason of 10054 error is an unstable connection, for example, weak Wi-Fi.
Also, it is possible to see this error if a client application doesn’t explicitly close the database connection, i.e., there is no explicit command like «MyDB.Active:=false» on closing the software.

INET/inet_error: read errno = 104

Short: Software caused connection abort.
The same as 10054, but on Linux.

WNET/wnet_error: ReadFile end-of-file errno = 109

In short: Software caused connection abort.

The same as 10054, but this error occurs when client application uses the WNET connection path to the Firebird server instance on Windows, something like this:
\serverpathdatabase.fdb
This is not recommended, better use TCP/IP connections for network connections (in the format server:pathdatabase.fdb or, on Firebird 3, inet://servername:pathdatabase.fdb), and XNET for local connections (local path on 2.5 and xnet://pathdatabase.fdb).
Consider to disable WNET connections, look here how to disable connection protocols for Firebird on Windows.

INET/inet_error: send errno = 10053 (on Windows)
or INET/inet_error: send errno = 103 (on Linux)

Also means broken connection, but WinSock error is 10053. 

INET/inet_error: connect errno = 10060 (Windows)
or INET/inet_error: connect errno = 10061 (Windows)

In short: 10061 — Connection refused, 10060 — Connection timed out

In general, this error means that it is not possible to establish a connection between the server and client application.

In case of this error with (Client), It means that the client application tried to connect to Firebird through network connection string, but failed, either Firebird server is not running, or access closed by a firewall.

More details about common Winsock errors is here.

/en/articles/how-to-check-ram-and-avoid-database-corruptions/Alexey Kovyazin, 31-03-2014
Below is the description of common errors and problems in InterBase/Firebird databases and their recovery chances.

To get exact recovery price and time please contact us via email.

For approximate pricing please see «Firebird and InterBase Recovery» service description. There is no 100% warranty that described errors exactly correspond to the described reasons.

Internal gds software consistency check (cannot find tip page (165))

Database cannot be opened using Firebird or InterBase engine, and the following message appears: Internal gds software consistency check (cannot find tip page (165))

Abnormal shutdown or physical database file corruption. Transaction inventory page has been lost (TIP). Corruption area can vary from several pages to the whole database, so additional investigation needed.

The most probable reasons are abnormal server shutdown (using Reset button), wrong backup approach or backup tools. On Windows XP such corruption can be caused by «System Restore» feature for «gdb» files.

First, the database should be scanned with FirstAID Diagnostician. If FirstAID does not warn about serious corruption, corruption can be fixed with the full version of FirstAID.
In the case of serious corruption, the custom recovery needed.

99%

Database file appears corrupt. Wrong page type. Page NNN is of wrong type (expected X, found Y)

Error message appeared in standard output or in firebird.log or interbase.log:
Database file appears corrupt. Wrong page type. Page NNN is of wrong type (expected X, found Y)

Due to the physical corruption or another reason, the sequence of database file pages has been changed, or wrong values appeared on pointer pages or index root pages, etc.

The most probable reasons are abnormal server shutdown (using Reset button), wrong backup procedure or wrong backup tools/approach.

First, the database should be scanned with FirstAID Diagnostician. If FirstAID does not warn about serious corruption, corruption can be fixed with the full version of FirstAID.
Otherwise, custom recovery process needed.

95%.

Unknown database I/O error for file «*.gdb». Error while trying to read from file

The database cannot be open, and the following error message appears: Unknown database I/O error for file «*.gdb». Error while trying to read from the file.

Due to the abnormal server shutdown, the most recent database pages were not written to the disk.

Custom recovery process. Database is checked by gfix and backup/restore.

95%

Decompression overran buffer

Error message appears: Internal gds software consistency check (decompression overran buffer (179))

It is a serious database corruption: system tables could be damaged. Sometimes this error occurs after database transfer to the new server/computer. Investigation needed.

Database structure analysis, generation of new pages, several iterations needed.

95%

Wrong record length

An error message appears: Internal gds software consistency check. Wrong record length

Most often «Wrong record length» error are caused by bad RAM. We strongly recommend checking memory (RAM) at the server.

Locate and delete wrong records using IBSurgeon’s low-level tools. Several iterations needed.

97%

Database file appears corrupt. Bad checksum

Database file appears corrupt. Bad checksum. Checksum error on database page XX.

Bad RAM. We strongly recommend checking memory (RAM) at the server.

Custom recovery process. Several iterations needed.

99%

Cannot find record back version

The database seems to be working, but gbak cannot complete backup.
Error text:
Internal gds software consistency check (cannot find record back version (291))
gds_$receive failed. Exiting before completion due to errors. internal gds software consistency check (can’t continue after bug check).

Most probable reason is wrong transaction management. Transactions’ performance investigation.

The database requires detailed analysis, and usually the solution is to find and delete problem database objects and then recreate them. Sometimes it is necessary to transfer data to the new database.

99%

Next transaction older than oldest active transaction

Internal gds software consistency check (next transaction older than oldest active transaction (266))

This seldom error occurs in InterBase 4.x-5.x, it’s a bug.

Custom recovery process

99%

Corrupted header

The database cannot be opened and Firebird/InterBase does not consider it as a valid database.

Physical corruption, HDD crash.

Custom recovery process

80%

Database file size exceeds implementation limit

It happens on InterBase 4.x-5.x servers and early Firebird (0.9.x) betas. The database cannot be opened, database file size is 4Gb.

Implementation limit of InterBase 4.x-5.x-6.0.x, and early Firebird 0.9.x.

Custom recovery process.

Usually, we can save all data (i.e., 100%), but sometimes it can be less than 70%.

Conversion error from string

Error text: Conversion error from string «XXX».

Preliminary diagnosis is impossible, on-site investigation needed.

Custom recovery process.

99%

INET/inet_error: read errno = 10054 or 10038 or 10093

Multiple entries in firebird.log or interbase.log with errors 10054, 10038, 10093, etc.

These errors are caused by network problems — check your hubs, network adapters, etc. It is not a Firebird/InterBase error itself, but it may impact Firebird/InterBase.

We offer FBScanner tool to solve «10054 errors» problem (among other issues). See details here.

Not applicable.

Partner index description not found (175))

Error messages text: internal gds software consistency check (partner index description not found (175))
Missed index for a primary or foreign key.

It may be caused by physical corruption or internal server bugs.

Custom recovery process.

100%

Other errors

Below there is a list of seldom Firebird/InterBase errors, which can be caused by different reasons. Do not hesitate to send us the description of your problem — we can help you.

Wrong UDF may cause the following errors in interbase.log:
SCH_validate — not entered
SCH_validate — wrong thread

Index corruption may cause the following message in interbase.log:
Page 34672 is an orphan

And this error can occur during intensive inserts/update/delete during the single transaction:
internal gds software consistency check (Too many savepoints (287))

It is hard to recognize the reason without investigation of database in case of the following errors:
internal gds software consistency check (error during savepoint backout (290))
internal gds Software consistency check (size of opt block exceeded (286))
internal gds software consistency check (invalid SEND request (167))

Different reasons. We need to investigate corrupted database.

Custom recovery process.

Various

Commented by: @mrotteveel

The problem can only be fixed by the client application closing the connection correctly (assuming the problem is not in a connection library not closing the connection properly).

In any case, error 10054 (connection reset by peer) is generally not a severe error, so if the only problem you have is that this error is logged, you could just ignore it, although it would be better of course if the client correctly closes the connection.

Using KEEPALIVE-sockets to avoid 10054 errors

by Vasiliy Ovchinnikov

Introduction

In the systems within InterBase or Firebird databases, which are intended for working in either real-time or near-real-time modes, there is a problem of client connection status tracking on the server side, and of forced disconnection in case the client becomes inaccessible due to connection release.

It is important to promptly release the resources busy with such phantom connections, especially when using servers with Classic architecture. If some users connect to the server through an unstable modem connection, then the risk of disconnection becomes rather high.

For instance, a client saves a modified record set, and after UPDATE is executed (while COMMIT is not) the connection is released.

As a rule, client applications in such situations reconnect to the server, but the client (as he/she continues working with the data, after saving which one received error message due to connection fail) will be unable to save changes, since he/she will receive a message about lockout conflict (”lock conflict on update”). The previous connection, which opened the transaction (in the context of which UPDATE was executed, while COMMIT wasn’t), still holds these records.

Connection failures may occur in a local network too, if the hardware (netcards, hubs, commutators) is out of order or not adapted well, and/or due to clutter in the network. In Interbase and Firebird logs, failures of tcp connections are displayed as error 10054 in Windows and 104 in Unix; netbeui failures are displayed as 108/109 errors.

Hung connections control methods

In InterBase and Firebird, the mechanisms of DUMMY-packets or KEEPALIVE-sockets are used for tracking and disabling of such “dead” connections.

In InterBase 5.0 and higher, the mechanism of DUMMY-packets is implemented at the application layer between an InterBase/ Firebird server and a gds32/fbclient client library. It is included in ibconfig/ firebird. conf and is not examined in the present article.

Note

As we know from previous experience, stability of the dummy-packet mechanism (the one implemented in InterBase 5.0 and repeatedly corrected in Firebird 1.5.x) strongly depends on server’s and client’s operating systems, tcp stack versions, and many other conditions. That is to say, effectiveness of such system in a real network tends to zero.

KEEPALIVE-sockets are a more interesting mechanism. Implemented in InterBase 6.0 and higher, it is intended for connection failure tracking. KEEPALIVE is enabled by setting the SO_KEEPALIVE socket option at the opening. There’s no need to manually set it if you use Firebird 1.5 or higher, since it is implemented in the program code of the Firebird server, both for Classic, and for Superserver.

For Interbase and Firebird versions lower than 1.5, in the variant with Classic architecture, an additional setting is necessary. This setting is described below.

In this case, the operating system TCP stack (instead of the Firebird server) becomes responsible for connection status. However, to enable this mechanism, one must adjust KEEPALIVE parameters.

KEEPALIVE description

KEEPALIVE-sockets behavior is controlled by the parameter presented in the following table.

Parameter Description
KEEPALIVE_TIME Time interval, on expiry of which KEEPALIVE-probes start
KEEPALIVE_INTERVAL Time interval between KEEPALIVE-probes
KEEPALIVE_PROBES Number of KEEPALIVE-probes

The TCP stack tracks the moment when packets stop transmit between the client and the server, by launching the KEEPALIVE timer. As soon as the timer reaches the KEEPALIVE_TIME point, the server TCP stack would execute the first KEEPALIVE probe. Probe is an empty packet with ACK flag sent to a user. If everything is alright on the client side, then the TCP stack on client side sends a response packet with ACK flag, and the server TCP stack resets the KEEPALIVE timer as soon as it receives a response.

If the client does not response to the probe, the probes from the server continue to be sent. Their quantity equals to the KEEPALIVE_PROBES value; they are executed at the KEEPALIVE_INTERVAL time interval. If the client does not respond to the last probe, then after another KEEPALIVE_INTERVAL time expires, the operating system TCP stack closes the connection, and the server (in this case, instance of InterBase or Firebird server) releases all resources busy with provision of this connection.

Thus, a failed client connection will be closed after the following time interval:

KEEPALIVE_TIME+ ( KEEPALIVE_PROBES+1)* KEEPALIVE_INTERVAL.

By default, the parameters values are rather big, and this makes use of them ineffective. For example, the default value of KEEPALIVE_TIME parameter is “2 hours,” both in Linux and in Windows. Actually, 1-2 minutes would be enough to make a decision about forced disconnection of an inaccessible client. On the other hand, KEEPALIVE default settings sometimes cause forced disconnections in Windows networks, which are stay inactive during these 2 hours (of course, one may cast doubt on necessity of such connections in the applications, but this is a different matter).

Below adjustment of these parameters for Windows and Linux operating systems is described.

Setting KEEPALIVE in Linux

KEEPALIVE parameters in Linux can be changed either by file system direct editing / proc, or by calling sysctl.

For the first case, the following lines should be edited:

/proc/sys/net/ipv4/tcp_keepalive_time
/proc/sys/net/ipv4/tcp_keepalive_intvl
/proc/sys/net/ipv4/tcp_keepalive_probes

For the second case, the following commands should be executed:

sysctl -w net.ipv4.tcp_keepalive_time=value
sysctl -w net.ipv4.tcp_keepalive_intvl=value
sysctl -w net.ipv4.tcp_keepalive_probes=value

Time value is expressed in seconds.

For automatic setting of these parameters in case of server restarting, add the following should be added:

net.ipv4.tcp_keepalive_intvl = value
net.ipv4.tcp_keepalive_time = value
net.ipv4.tcp_keepalive_probes = value

Substitute the <value> word with necessary values.

If you use version of Firebird Classic lower than 1.5, then in /etc/xinet.d/firebird the following should be added:

FLAGS=REUSE KEEPALIVE

Adjusting KEEPALIVE in Windows 95/98/ME

Register branch:

HKEY_ LOCAL_ MACHINE System CurrentControlSet Services VxD MSTCP

Everything about adjustment of TCP can be found here:

http://support.microsoft.com/default.aspx?scid=kb;en-us;158474

Parameters:

  • KeepAliveTime = milliseconds

    Type: DWORD

    For Windows 98, type STRING.

    Defines connection inactivity time in milliseconds.

    When it expires, KEEPALIVE-probes start executing.

    Default value is 2 hours (7200000).

  • KeepAliveInterval = 32-digit value

    Type: DWORD

    For Windows 98, STRING type.

    Defines time between KEEPALIVE-probes (in milliseconds).

    As soon as the specified KeepAliveTime interval expires,

    after each KeepAliveInterval time (in milliseconds)

    KEEPALIVE-probes are sent with maximum number

    of MaxDataRetries. If no response comes, the connection

    closes. Default value is 1 second (1000).

  • MaxDataRetries = 32-digit value

    Type: STRING

    Defines maximum number of KEEPALIVE-probes.

    Default value is 5.

Setting KEEPALIVE in Windows 2000/NT/XP

Register branch:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters.

Everything about TCP adjustment:

2000/ NT: http://support.microsoft.com/kb/120642

XP: http://support.microsoft.com/kb/314053

The MaxDataRetries parameter is substituted by TCPMaxDataRetransmissions.

All other parameters have the same names as in Windows 9x

Setting KEEPALIVE in Windows (for clients)

This setting is optional, but it possibly will reduce number of messages about connection failure if one uses unreliable communications channels. Insert to the register branch:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters

parameter DisableDHCPMediaSense=1. See a description of this parameter here:

http://support.microsoft.com/?scid =kb%3Bru%3B239924&x=13&y=14

Example

Let’s consider adjustment of Firebird SQL Server 1.5.2 CS under Linux OS.

  • Make sure that the DUMMY-packets mechanism is disabled in firebird.conf

    (the parameter is commented-out)

    ……………..

    #DummyPacketsInterval=0

    …………….

  • Make sure there is the /etc/xinet.d/firebird configuration file

    We kept everything unchanged, as it was registered during installation. Nothing needs to be added.

  • Change the TCP stack parameters:

    sysctl -w net.ipv4.tcp_keepalive_time = 15
    sysctl -w net.ipv4.tcp_keepalive_intvl = 10
    sysctl -w net.ipv4.tcp_keepalive_probes = 5
    
  • Connect to any database on the server from any network client

  • Check traffic on the server using any packet filter.

    If parameters specified as /proc/sys/net/tcp_ keepalive_*, within 15 seconds after everything stops in the channel, the server creates a probe. If the client is “alive,” the server receives a response packet. 15 seconds after that, checking repeats, and so on.

  • If a client is physically turned off (either the multiplexer or the modem unexpectedly turns off — anything is possible), then the server does not receive a response, and the server begins to send probes with 10 seconds interval. If the client does not respond to the fifth probe, then 10 seconds after that, the server process discharges, and releases resources and blockings lockouts. If the client gives any signals and responses at least to the fifth probe (if worst comes to worst), then, after another 15 seconds time-out, the server will begin send probes. And so on.

Guidelines

In conclusion, we would like to give you some advice about how KEEPALIVE values should be selected.

Firstly, determine necessary value of KEEPALIVE_TIME. The more the value is, the later KEEPALIVE-probes would start. If you constantly see 10054/104 errors in the log of the server, and you have to delete them manually, it is recommended to increase the KEEPALIVE_TIME value.

Secondly, the values of the KEEPALIVE_INTERVAL and KEEPALIVE_PROBES should meet your needs concerning before-the-fact release of already hung connections. If your users connect to the server through unreliable channels, then you probably would want to increase number of probes and the interval between them, in order to give the user a chance to detect the failure and reconnect to the server. In case clients use a DSL connection to the Internet, or access a SQL-server through a local network, it is possible to decrease the interval between KEEPALIVE-probes.

General recommendations: if you for no particular reason receive from the clients many error messages, concerning results saving, due to lockout conflict (i.e. there are no concurrent connections working with the same data), then you need to increase system’s reaction to the hung connections release. Practically, the KEEPALIVE_TIME value may be above or equal 1 min. You should yourself estimate the time the longest transaction executes, so that traffic would not be overloaded by KEEPALIVE-checks of normally working connections, which launched long transactions. The KEEPALIVE_INTERVAL value is above or equal 10 seconds, and the KEEPALIVE_PROBES value is above or equal 5 checks. When many users work simultaneously, remember that if you perform checking too frequently, it may considerably increase network traffic.

Also remember that in case your users actively change common data, lockout errors will occur as a result of opti- mum situation. In this case, you would need a correct lockout error handling in the client applications. At the same time, the application should be able to minimize occurrence of such errors.

Examples of default configuration

Finally, here are some more examples of default configurations. Downtime is the time, within which users will be unable to update data, (which by that moment were updated by the transaction opened by the hung connection). Total time is the time, on the expiry of which the hung connection will be closed.

  • Clients use modem connections; most of transactions in the system are short; downtime is limited by 3 minutes:

    KEEPALIVE_TIME 1 minutes
    KEEPALIVE_PROBES 3
    KEEPALIVE_INTERVAL 30 seconds
    TOTAL 3 minutes
    
  • Clients use LAN connection; most of transactions in the system are short; downtime is limited by 2 minutes:

    KEEPALIVE_TIME 30 sec
    KEEPALIVE_PROBES 5
    KEEPALIVE_INTERVAL 10 sec
    TOTAL 90 seconds
    
  • Clients use any connections; downtime is not regulated:

    KEEPALIVE_TIME12 minutes
    KEEPALIVE_PROBES 7
    KEEPALIVE_INTERVAL 15 sec
    TOTAL 14 minutes
    

We hope that the examples we have shown would be enough for correct adjustment of TCP stack KEEPALIVE mechanism.

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

DSKalugin

Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

INET/inet_error: send errno = 10054

P4 Mon Feb 14 17:35:07 2005
SERVER/process_packet: broken port, server exiting

P4 Mon Feb 14 17:35:07 2005
INET/inet_error: send errno = 10054

P4 Mon Feb 14 17:35:07 2005
SERVER/process_packet: broken port, server exiting

клиентское приложение виснет, на сервере горит индикатор жосткого диска сплошным красным. Приходится через некоторое время срывать программу и подключаться по новой.

Недавно сменил архитектуру с СС на классик версия 1,52
вин2003. В программе изменений никаких не делал.
Может ли это быть из-за того что создал новый индекс во время работы клиентов?


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 14 фев 2005, 19:54

Events используются?
Других ошибок в логе нет?
Есть привязка к какому-то конкретному действию в приложении?

10054 — это сервер заметил, что издох клиент, не более того. Шнурок оборвал, ресет нажал и т.п. В сочетании с events возникал всякий разный гемор, но вроде ЦПУ жрал, а не диск. Несколько раз провозглашалось, что наконец обнаружено и уборото, но проверка в поле всегда права. Ужор диска при слабом потреблении процессора может говорить о сборке горы мусора. Само создание индекса при клиентах безвредно, но появление нового индекса может вести к изменению планов выполнения каких-либо запросов, у которых раньше возможности его использовать не было, иной раз к фатально неудачному. Это в плане привязки к действиям. Ну и ещё — если он жутко неселективный, это может способствовать образованию горы мусора при массированных удалениях и апдейтах.


DSKalugin

Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение

DSKalugin » 14 фев 2005, 20:18

Эвентов не использую, приложения как уже говорил действительно срываю «снять задачу» из за беспробудного висяка

насчет мусора точно подметил
я поставил свипинтервал в 0 и вызываю
gfix -sweep каждую ночь по расписанию
попытка установить обратно автосборку

«C:Program FilesFirebird152bingfix.exe» -housekeeping 30000 -user «SYSDBA» -password «masterkey» C:ShopDBU96.GDB
говорит unavailable database

как это понимать?


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 14 фев 2005, 20:39

DSKalugin писал(а):Эвентов не использую, приложения как уже говорил действительно срываю «снять задачу» из за беспробудного висяка

Вот тут сервак и пишет 10054. На классике можно бить «зависшие» процессы, если можешь из определить, но риск повредить базу есть, особенно если этот процесс как раз сборкой и занят.

DSKalugin писал(а):
я поставил свипинтервал в 0 и вызываю
gfix -sweep каждую ночь по расписанию
попытка установить обратно автосборку

Не надо. Если мои подозрения верны, то будет только хуже. Индекс, который создал, и его статистику в студию.

DSKalugin писал(а):
«C:Program FilesFirebird152bingfix.exe» -housekeeping 30000 -user «SYSDBA» -password «masterkey» C:ShopDBU96.GDB
говорит unavailable database

как это понимать?

да не знаю я ваших виндовых заморочек :)


kdv

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

Сообщение

kdv » 14 фев 2005, 20:55

насчет unavailable database — это мистическое сообщение лично меня уже достало. ибо у меня на W2000 не воспроизводится, а у людей случается как на FB так и на IB 7.x.

насчет 10054 и т.п. — есть один четкий случай умирания IB 7.1 SP2 на Win2003 Server, с похожими симптомами. Сначала все ОК, потом начинаются 10054, и кончается все это 10093 и неработой IB. На Win2000 все замечательно с тем же IB и тем же приложением. Интересно было бы услышать, не имеет ли кто аналогичных проблем на W2003 + FB 1.5.2, ибо подозрения на какую-то очередную несовместимость с tcp.


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 14 фев 2005, 22:01

kdv писал(а):
насчет 10054 и т.п. — есть один четкий случай умирания IB 7.1 SP2 на Win2003 Server, с похожими симптомами.

Дим, 10054 он похоже устраивает сам, когда «зависшее» клиентское приложение снимает. А насчёт зависания — помнишь, я рассказывал, как один орёл у меня с похмела на таблице с 10 миллионами записей организовал индекс по полю «дебет/кредит»? Удалить из такой таблицы при наличии такого индекса тысяч 200 — и свип на сутки :) Причём, если сделать его уникальным, привесив какой-нибудь ID сзаду, то так в глаза бросаться не будет, но запросы с условиями на первый индекс начнут его хватать и перестраивать привычные планы, включая порядок следования таблиц в inner-ах, со всеми вытекающими последствиями. То есть вместо привычных сотых долей секунды можно получить минут 10. А потом начать валить приложения и усугублять происходящее :)


Дмитрий

Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

Сообщение

Дмитрий » 15 фев 2005, 09:23

У меня на NT 4.0 c IB 7.5 ошибка 10054 лезет постоянно, причем пишет, что с разных компов. Приложение не виснет, коннекты никто не рвет. То же самое, если законекчен один только IBExpert. Такая же фигня была и с IB 6.5, и с IB 5.6.


dimitr

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

Сообщение

dimitr » 15 фев 2005, 11:53

Unavailable database в данном случае вполне понятно — надо указывать хост в gfix, ибо win32-классик поддерживает локальный протокол только начиная с 2.0.


DSKalugin

Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение

DSKalugin » 15 фев 2005, 12:14

По порядку теперь:
1-в прошлый четверг сменил сервер с Fb SS 1.5.2 на Fb CS 1.5.2
Причину перехода я тут обосновал (из-за глюка в УДФ на одной базе перегрузился ФБ и отключились аварийно другие БД) Хотел сделать независимые процессы. Но в результате эти отдельные стали работать медленней чем на СС, иногда притормаживать.

2-свипинтервал поставил в 0. Сборку мусора делал ежедневно по расписанию gfix -sweep

3-вчера вечером для ускорения выполнения разовой процедуры создал 5 индексов на работающей БД. Процедура занималась массовым обновлением в пределах 3 тыс записей и удалением «лишних».
Сразу после этого начались длительные висяки. Работать не возможно.
Сегодня сутра тоже висяки были железные. Работать не возможно. Загадки да и только. ИБЭксперт подключаться не захотел. Говорит

Unsuccessful execution caused by an unavailable resource.
unavailable database.

-ИБАналист тоже подобным образом ругнулся
-локальный gfix тоже не хочет выполнять ни одно действие (unavailable database).
-Зато удаленно получилось положить базу в даун и подключиться ибэкспертом.
-FirstAID протестировал и сказал все ок, единственное 5 удаленных индексов показал.

Вобщем решил задачу так. Вернул все на место
перегрузил ВинСерв2003 — не помогло.

-Удаленно ибэкспертом удалил эти злополучные индексы.
-сделал бэкап
-деинсталлировал Fb CS
-установил по новой но уже SS
-провелил БД gfix.exe -v -full
на экране ничего в логе нашол потом
P4 (Client) Tue Feb 15 10:27:22 2005
Control services error 1061
-вернул свипинтервал в 30000 (перед нулем было 20000)
-всех включил, жалоб нет на тормоза.

что это было, так и не понял. Но тяга к экспериментам пропала.


DSKalugin

Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

и еще вопрос

Сообщение

DSKalugin » 15 фев 2005, 12:31

dimitr писал(а):Unavailable database в данном случае вполне понятно — надо указывать хост в gfix, ибо win32-классик поддерживает локальный протокол только начиная с 2.0.

Опа, а я напрямую писал типа C:… без локалхост. В Супере работало наура. Не знал. Спасибо.

Напрашивается еще один вопрос. Не знаю в тему ЛИ? но задам.
Читал

Не надо логиниться к одной базе с разными путями
В этом случае очень вероятно повреждение базы вплоть до ее полного уничтожения. Т.е. не надо использовать link-и на файлы и каталоги БД в unix, и не надо ошибаться и под win писать путь коннекта как c:dirdata.gdb вместо правильного c:dirdata.gdb.
этот совет не относится к разным именам одного и того же сервера в строке коннекта.
http://www.ibase.ru/devinfo/dontdoit.htm

Вопрос : Является ли разными путями подключение
— напрямую через IBObject с указанием P4:C:ShopDBU96.gdb
— через FIBPlus но с использованием алиаса P4:ShopsDB
где в alias.conf четко прописано
ShopsDB = C:ShopDBU96.gdb
А?


kdv

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

Сообщение

kdv » 15 фев 2005, 13:38

DSKalugin писал(а):По порядку теперь:
независимые процессы. Но в результате эти отдельные стали работать медленней чем на СС, иногда притормаживать.

а может, надо было сначала выяснить, почему притормаживает? Может ты задал такой кэш в БД, который для классика смерти подобен.

2-свипинтервал поставил в 0. Сборку мусора делал ежедневно по расписанию gfix -sweep

накопление мусора можно увидеть просмотром статистики. Просто так конечно можно свип в 0 установить, но …

Сразу после этого начались длительные висяки. Работать не возможно.

ну вот. сборка мусора в индексах.

-ИБАналист тоже подобным образом ругнулся

забей ты на локальный протокол. что, нельзя указать соединение как localhost:c:dirdata.gdb???

-вернул свипинтервал в 30000 (перед нулем было 20000)

шаманим…

что это было, так и не понял. Но тяга к экспериментам пропала.

желания почитать хелп к IBAnalyst и www.ibase.ru/devinfo/delmany.htm, а также firebird.conf не появилось?[/quote]


dimitr

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

Сообщение

dimitr » 15 фев 2005, 14:05

Тормоза наверняка из-за кооперативной сборки мусора вместо привычной на супере фоновой… Ну и кеш наверняка влияет.


DSKalugin

Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение

DSKalugin » 15 фев 2005, 14:11

читал и хелп и конфиг. Желание учиться, разбираться всегда было и есть. Но вот со временем — попа :-(. Быстрее было вернуть все к исходному стабильному состоянию.
С хелпом проще, там для людей писано, а доку по конфигу под силу осмыслить только профФфессуре, глубоко ежедневно копающейся в недрах кода Firebird. Общем для людей писать надо, а не для киборгов. ;-)
Конфиг у меня по умолчанию как стал так я и не трогал его.
Про Локалхост, согласен. Не придавал значения. буду теперь знать.
Спасибо за поддержку


DSKalugin

Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение

DSKalugin » 15 фев 2005, 14:17

dimitr писал(а):Тормоза наверняка из-за кооперативной сборки мусора вместо привычной на супере фоновой… Ну и кеш наверняка влияет.

Кстати, тезка, растолкуй… Возможно ли попадание классика в ситуацию, когда 2 и более процесса начинают собирать мусор в одной и тойже базе? Они меж собой не будут конфлктовать или такое не возможно? А как насчет работы в период сбора ?


DSKalugin

Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение

DSKalugin » 15 фев 2005, 14:20

а по поводу
Не надо логиниться к одной базе с разными путями см выше
может ктонить прояснить?


kdv

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

Сообщение

kdv » 15 фев 2005, 14:46

если не умеешь указать для одного файла БД разный путь, то лучше не надо :-) не знаешь — спишь спокойно :-)


dimitr

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

Сообщение

dimitr » 15 фев 2005, 15:02

1) Дока по конфигу написано вполне понятно
2) Собирать мусор могут и два процесса классика, никакого конфликта тут нет
3) Алиас — не есть другой пусть к базе


DSKalugin

Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

А вот и развязка!!!

Сообщение

DSKalugin » 15 фев 2005, 19:07

Ура! Причина тормозов разгадана!

Когда я переустанавливал Firebird, я поставил его в другой каталог.
А скрипты подправить забыл, сволачь я :-)) И себе и вам и юзерам неудобства создал…
Поэтому запланированная сборка мусора из скрипта не происходила!
А Автоматическую я отключил. Ну плюс добавление индексов, массовые insert/update/delete — полный висяк.

Неучел особенность локального подключения с localhost впереди пути
Поэтому не мог достучаться к базе утилитами

Спасибо за внимание. Вопрос объявляю закрытым


kdv

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

Сообщение

kdv » 15 фев 2005, 22:13

ну так ёклмн. ты тут не первый день. взял бы IBAnalyst, почитал как правильно собирать статистику, зарядил бы, посмотрел, ужаснулся… :-)


andycat

Сообщения: 65
Зарегистрирован: 22 фев 2005, 12:06

Сообщение

andycat » 03 мар 2005, 15:04

В продолжение этой темы и «IB 6.5 Server + W2KSP2 Помогите, плиз, чайнику»:
Вопрос: обязательно/желательно ли ставить IB сервер на отдельную машину.
Проблема продолжается та-же, но реже — ошибки 10053 и 10054 частенько и 2-5 раз в сутки требуется перезапуск IB сервера.
Решал по форуму и докам: обновил все клиентские машины до последних патчей, отключил 2 старые машины на Вынь98 от сервера, поставил ibconsvc на сервер, убрал все не нужное. По логу не получается отследить ошибку — какая-то плавающая: может произойти когда кто-то лезет в 1С или интернет и т.д., от конкретного клиента не зависит, исправил ibconfig:connection_timeout и dummy_packet_intervel — ничего не помогает. Причем если выключить совсем все компьютеры в сети и оставить 3 (основных рабочих включая сервер) и работать только в Interbase программе — все отлично.
Поэтому и вопрос: насколько остальные сетевые программы (The Bat, 1C, EServ/аналог WinGate/ + некоторые MS офисные документы) на сервере сбивают IB сервер?


  • Summary

  • Files

  • Reviews

  • Support

  • Wiki

  • Mailing Lists

  • News

  • Code

  • Cvs

Menu

From: Rick R. — 2008-12-27 19:39:28

Firebird server v 2.1.17910

FirebirdClient.dll v 2.1.0.0

Vista Pro

 

My firebird.log file is filled with hundreds entries like:

RICK2008 (Server)            Sat Dec 27 13:21:07 2008

                                INET/inet_error: read errno = 10054

 

My connection string is:

initial catalog=???;user id=Sysdba;password=masterkey;role
name=Full_Access;data source=localhost;pooling=True;max pool size=100;min
pool size=10;packet size=8192;dialect=3

 

I see that this error is from a dropped connection, however since I am using
my local Firebird server in a test environment (data source=localhost), I
don't know how this can be.

 

I looked at a clients firebird log that has thousands of the same entries.

 

This appears to have started when I upgraded to  Firebird server v 2.1.17910

 

When I clear the log and run a simple quick program that logs into the
database, there are maybe 7 new entries like above.  If I do selects, etc,
more entries are added, although all selects/updates/inserts run with no
problem. There are no other entries in the log.

 

When I execute selects/updates/inserts from DBWorkbench, a utility program,
there are no entries into the log.

 

Any idea why this is happening?

 

Regards,

 

Rick

From: Pham H. Le Q. P. <phu…@so…> — 2009-01-02 01:52:24

I get lastest source code FB.net 2.5 and build, it can't create database in
Embedded Server.

 

  _____  

From: Rick Roen [mailto:Rick@LakeValleySeed.com] 
Sent: Sunday, December 28, 2008 02:39
To: fir...@li...
Subject: [Firebird-net-provider] log filled with INET error 10054

 

Firebird server v 2.1.17910

FirebirdClient.dll v 2.1.0.0

Vista Pro

 

My firebird.log file is filled with hundreds entries like:

RICK2008 (Server)            Sat Dec 27 13:21:07 2008

                                INET/inet_error: read errno = 10054

 

My connection string is:

initial catalog=???;user id=Sysdba;password=masterkey;role
name=Full_Access;data source=localhost;pooling=True;max pool size=100;min
pool size=10;packet size=8192;dialect=3

 

I see that this error is from a dropped connection, however since I am using
my local Firebird server in a test environment (data source=localhost), I
don't know how this can be.

 

I looked at a clients firebird log that has thousands of the same entries.

 

This appears to have started when I upgraded to  Firebird server v 2.1.17910

 

When I clear the log and run a simple quick program that logs into the
database, there are maybe 7 new entries like above.  If I do selects, etc,
more entries are added, although all selects/updates/inserts run with no
problem. There are no other entries in the log.

 

When I execute selects/updates/inserts from DBWorkbench, a utility program,
there are no entries into the log.

 

Any idea why this is happening?

 

Regards,

 

Rick

From: Dean H. <dea…@dl…> — 2009-01-05 08:32:11

> I get lastest Fb.Net 2.5 and build it. I try to use FbBatchScript to
create
> database in Embbedded mode. But it can't. Please help me.

You haven't described the problem. HOW do you try to create a database using
the FbBatchScript (please provide the code you're using). HOW does it fail?
Does it produce an error message (if so, what does the error say)? Does it
simply do nothing and no database is created? Something else?

Lastly, with the embedded server, you need to use
FbConnection.CreateDatabase to actually create the database file, and then
you can use FbBatchScript to populate it with tables/sproc/etc.

Dean.




From: Pham H. Le Q. P. <phu…@so…> — 2009-01-05 08:45:31

I think, FbBatchScript not support CREATE DATABASE in Embedded Server?

-----Original Message-----
From: Dean Harding [mailto:dea...@dl...] 
Sent: Monday, January 05, 2009 13:33
To: 'For users and developers of the Firebird .NET providers'
Subject: Re: [Firebird-net-provider] FbBatchScript can't CREATE DATABASEin
Embedded server

> I get lastest Fb.Net 2.5 and build it. I try to use FbBatchScript to
create
> database in Embbedded mode. But it can't. Please help me.

You haven't described the problem. HOW do you try to create a database using
the FbBatchScript (please provide the code you're using). HOW does it fail?
Does it produce an error message (if so, what does the error say)? Does it
simply do nothing and no database is created? Something else?

Lastly, with the embedded server, you need to use
FbConnection.CreateDatabase to actually create the database file, and then
you can use FbBatchScript to populate it with tables/sproc/etc.

Dean.



----------------------------------------------------------------------------
--
_______________________________________________
Firebird-net-provider mailing list
Fir...@li...
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider



From: Dean H. <dea…@dl…> — 2009-01-05 21:52:38

> I think, FbBatchScript not support CREATE DATABASE in Embedded Server?

Right. As I said, the embedded server works on database files directly, so
you need to create the database with FbConnection.CreateDatabase. You can
still use FbBatchScript to populate the database with tables and so on.

Dean.




From: Jiri C. <di…@ci…> — 2009-01-14 14:50:56

On Fri, Jan 9, 2009 at 15:15, Rick Roen <Ri...@la...> wrote:
> Did you have a chance to look at this yet?

Hi I looked into this with my latest build, and the problem is gone. I
don't know what changed (I had these errors in log too, but I thought
that's because of killing apps during debug), but it's not there
anymore. :) Maybe I've fixed by accident (LOL "fixed by accident")
something together with work on FB2.1 protocol. :)

Anyway, to be sure, can you grab latest weekly build and try?

-- 
Jiri {x2} Cincura (CTO x2develop.com)
http://blog.vyvojar.cz/jirka/ | http://www.ID3renamer.com


From: Jiri C. <di…@ci…> — 2009-01-05 22:10:24

On Mon, Jan 5, 2009 at 22:52, Dean Harding <dea...@dl...> wrote:
>> I think, FbBatchScript not support CREATE DATABASE in Embedded Server?
>
> Right. As I said, the embedded server works on database files directly, so
> you need to create the database with FbConnection.CreateDatabase. You can
> still use FbBatchScript to populate the database with tables and so on.

FbBatchExecution is in fact internally calling
FbConnection.CreateDatabase, but there's no way to tell thru standard
command:
// CREATE {DATABASE | SCHEMA} 'filespec'
// [USER 'username' [PASSWORD 'password']]
// [PAGE_SIZE [=] int]
// [LENGTH [=] int [PAGE[S]]]
// [DEFAULT CHARACTER SET charset]
// [<secondary_file>];
that it should use embedded server, so it will use isc_create_database
from fbembed.dll.

What comes to my mind - but not tested, just guess that it may work -
is to provide dummy connection string with ServerType=1. Then maybe
the create database isql command will not rewrite the ServerType so it
will be done using embedded server.

-- 
Jiri {x2} Cincura (CTO x2develop.com)
http://blog.vyvojar.cz/jirka/ | http://www.ID3renamer.com


From: nieurig <ni…@ya…> — 2009-01-14 19:22:54

>
>
>OK I'm not so lucky. :) The problem is in connection pooling that was
>turned off on my connection string. I'll look at the problem.
>
Well,
I got this error too, only when pooling is set to true.
Depends on the firebird server-type I get

INET/inet_error: read errno = 10054
or
XNET error (xnet:2044) connection lost: another side is dead

Searching on web I found this
    http://tracker.firebirdsql.org/browse/CORE-1196

I thought it is a firebird problem ?
Best wishes.
Niels


From: Pham H. Le Q. P. <phu…@so…> — 2009-05-19 07:51:35

I use FB 2.1.2 Embedded server, FB.Net Provider 2.5 Beta 2, our program
thown following bug:

 

Csla.DataPortalException: DataPortal.Update failed (System.FormatException:
Input string was not in a correct format.

   at System.Number.StringToNumber(String str, NumberStyles options,
NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)

   at System.Number.ParseInt32(String s, NumberStyles style,
NumberFormatInfo info)

   at System.String.System.IConvertible.ToInt32(IFormatProvider provider)

   at System.Convert.ChangeType(Object value, Type conversionType,
IFormatProvider provider)

   at System.Data.XSDSchema.HandleElementColumn(XmlSchemaElement elem,
DataTable table, Boolean isBase)

   at System.Data.XSDSchema.HandleParticle(XmlSchemaParticle pt, DataTable
table, ArrayList tableChildren, Boolean isBase)

   at System.Data.XSDSchema.HandleComplexType(XmlSchemaComplexType ct,
DataTable table, ArrayList tableChildren, Boolean isNillable)

   at System.Data.XSDSchema.InstantiateTable(XmlSchemaElement node,
XmlSchemaComplexType typeNode, Boolean isRef)

   at System.Data.XSDSchema.HandleTable(XmlSchemaElement node)

   at System.Data.XSDSchema.HandleDataSet(XmlSchemaElement node, Boolean
isNewDataSet)

   at System.Data.XSDSchema.LoadSchema(XmlSchemaSet schemaSet, DataSet ds)

   at System.Data.DataSet.ReadXSDSchema(XmlReader reader, Boolean
denyResolving)

   at System.Data.DataSet.ReadXml(XmlReader reader, Boolean denyResolving)

   at System.Data.DataSet.ReadXml(Stream stream)

   at FirebirdSql.Data.Schema.FbSchemaFactory.GetSchema(FbConnection
connection, String collectionName, String[] restrictions)

   at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.GetSchema(String
collectionName, String[] restrictions)

   at FirebirdSql.Data.FirebirdClient.FbConnection.GetSchema(String
collectionName, String[] restrictions)

   at FirebirdSql.Data.FirebirdClient.FbConnection.GetSchema(String
collectionName)

   at
FirebirdSql.Data.FirebirdClient.FbCommandBuilder.DeriveParameters(FbCommand
command)

   at Tony.Data.Database.Database.DeriveParameters(DbCommand DbCommand)

   at Tony.Core.Business.Report.CMDReport.AddParameters(DbCommand DbCommand)

   at Tony.Core.Business.Report.CMDReport.LoadData()

   at Tony.Core.Business.Report.CMDReport.DataPortal_Execute())

 

Please help me, thanks.

Понравилась статья? Поделить с друзьями:
  • Fintender произошла ошибка при попытке подписи
  • Finland sawo ошибки
  • Finereader ошибка 0xc1
  • Finereader код ошибки 1284 finereader
  • Fly ошибка батареи