>
путь к базе данных указан неверно.Дополнительная информация об ошибке:GDSCODE = 335544721.Исключительная ситуация EIBInterBaseError в модуле SmetaRu.exe.Unable to complete network request to host «1-РџРљ».Failed to locate host machine.Ошибка произошла при переустановке версии 7 на 8
Уберите в пути к БД в файле GDBPath имя компьютера — оно у вас русскими буквами, interbase не дружит с ними)
Х:StroySoftSmeta.ruClientData — путь до файла GDBPath.net (открывается блокнотом)
СПАСИБО, все работает!
А можно поподробнее описать, то я не понимаю как это сделать Уберите в пути к БД в файле GDBPath имя компьютера — оно у вас русскими буквами, interbase не дружит с ними)
Заходите на диск с предустановленной Smeta.ru.Далее StroySoftSmeta.ruClientData, там лежит файл GDBPath.net, открываете его блокнотом или другим текстовым редактором.В нем указан путь к БД. (C:StroySoftServerBaseDataSD.ssd) Если перед меткой тома есть еще что-нибудь(HPredirect:C:StroySoftServerBaseDataSD.ssd), удалите.
Спасибо, всё получилось))))
Этой
инструкцией предусмотрено решение проблемы запуска программы с ошибкой:
Unable to complete network request to host
«localhost». Failed to establish a connection. -902 335544721
1. Зайдите
в [Панель управления] —
[Администрирование] — [Службы] и проверьте состояние
службы Firebird
Server. Служба должна находиться в
состоянии «Выполняется»:
(Служба Firebird Guardian в версиях начиная с 2016.8 по умолчанию может отсутствовать, это не является проблемой)
Если
служба остановлена, запустите ее:
Если служба выполняется, переходите к выполнению п. 2
2. Зайдите
в [Панель управления] —
[Брандмауэр windows] — [Включение и отключение брандмауэра Windows] и отключите брандмауэр:
Затем
попробуйте запустить программу. Если ошибка не
повторяется и программа запустилась, значит нужно
прописать порты в брандмауэр. Если не запустилась — переходите к п. 3
Для
добавления портов в брандмауэр:
а) Зайдите в [Панель управления] — [Брандмауэр windows]
— [Дополнительные параметры]
б) Выберите [Правила для входящих подключений] и нажмите [Создать
правило]:
в) Выберите тип правила «Для порта» и нажмите Далее:
г) Выберите «Протокол TCP» и укажите диапазон локальных портов с 3050 по 3051 и нажмите Далее:
e) Выберите «Разрешить подключение» и нажмите Далее:
ж) Установите галочки для всех
профилей и нажмите Далее:
з) Введите произвольное имя для
создаваемого правила и нажмите Готово:
и) Выберите [Правила для исходящих подключений] и и нажмите
[Создать правило]:
к) Повторите действия по аналогии с пункта «в)» по пункт «з)» для исходящего подключения
л) Зайдите в [Панель управления] — [Брандмауэр
windows] — [Включение и отключение брандмауэра Windows] и включите брандмауэр
3. Отключите
антивирусную программу. Как правило это можно сделать нажатием правой кнопки
мыши на ярлыке программы в системном трее в нижнем правом углу экрана.
Затем
попробуйте запустить программу Автодилер. Если программа запустится нормально,
значит антивирусная программа блокирует порты 3050-3051.
Ввиду
большого количества разнообразных антивирусных программ, их модификаций и
версий — универсальной инструкции
по настройке антивируса нет. Вам следует обратиться к
вашему системному администратору.
Наши клиенты недавно сообщали об этой ошибке, и мы не знаем, как ее исправить. Мы используем Delphi XE6 для разработки нашего приложения, и оно подключается к базе данных Firebird (v2.5) в качестве серверной части. Также мы использовали IBObjects для работы с базой данных Firebird в Delphi. Нам удалось воспроизвести ошибку на машине разработчика, остановив службу Windows Firebird перед выполнением запроса, но мы не нашли способ обнаружить потерянное соединение в коде (например, из-за события), так как мы не знаем когда это происходит, мы также не можем повторно подключиться к базе данных в коде.
Кстати, это полное сообщение об ошибке, если это помогает:
КОД ОШИБКИ ISC: 335544721 СООБЩЕНИЕ ОБ ОШИБКЕ ISC: Невозможно выполнить сетевой запрос к хосту «BON-VFS-01». Ошибка записи данных в соединение.
Любая помощь очень ценится.
3 ответа
Лучший ответ
Из FAQ IBOBjects
Есть ли способ обнаружить потерянное соединение и попытаться восстановить соединение автоматически без действий пользователя?
Подключитесь к событию OnError и найдите ERRCODE, который обозначает потерянное соединение. Затем вы можете предпринять любые действия, которые сочтете необходимыми для решения проблемы. Если соединение потеряно, вам необходимо отключить, а затем подключиться снова.
И от одного из базовых членов IBObjects:
Однако, возможно, вам не хватает чего-то, что если соединение разрывается по внешней причине, клиентское приложение не имеет возможности узнать, что оно еще не подключено. Он впервые узнает об этом факте при следующей попытке доступа к серверу. API сообщит «Соединение с базой данных потеряно» и вернет GDSCODE 335544741, который определяется константой isc_lost_db_connection.
В момент возникновения этого исключения TIB_Connection по-прежнему считает, что он подключен — свойство Connected будет истинным. Если вы попытаетесь повторно подключиться, позвонив в Connect, вы получите исключение IBO. Придется вызвать Disconnect. Это не просто сбрасывает свойство. Метод Disconnect выполняет всю необходимую очистку, чтобы сделать недействительными сломанные транзакции и отменить любые теперь недействительные публикации, наборы данных и кеши. Как только Disconnect завершит свою работу, вы можете поместить вызов Connect в цикл повтора и попытаться возобновить работу.
Я не знаю рабочего примера, но самый простой способ справиться с этим — написать процедуру обработчика RestoreConnection, которую можно вызывать из обработчика IB_Session.OnError всякий раз, когда аргумент ERRCODE возвращает isc_lost_db_connection.
Попросите вашу процедуру RestoreConnection сделать все, что вам нужно, попытаться вызвать Connect и обработать исключение, которое возникает в случае сбоя запроса, пока исключение не произойдет. Проверяйте свойство Connected после каждой итерации. Когда Connected наконец-то стал True, вы в деле. Вы можете выйти из кода повтора и сообщить пользователю, что соединение было восстановлено — возможно, с помощью звука и / или сообщения в строке состояния, чтобы избежать необходимости показывать диалоговое окно, на которое он должен ответить. (если вам нравится идея звуковых сигналов и сигналов в строке состояния, вы можете придумать звуковой сигнал предупреждения о потере соединения и код сообщения строки состояния, которые также будут запускаться в начале процедуры обработчика …)
Если эти разорванные соединения — частое явление, вы можете подумать о создании отличительного настраиваемого курсора, который вы можете отображать во время выполнения процедуры, и заключить код повтора в блок BeginBusy … EndBusy, который не дает результатов, с включенным UseCursor и BusyCursor установить для использования этого специального изображения курсора.
И если восстановление соединения, вероятно, займет много времени или будет временно невозможным, вам нужно будет предоставить пользователю возможность вмешаться и не продолжать попытки. Для этого вы можете использовать таймер сеанса, заключив свой «занятый» блок в другой итеративный блок, предлагающий пользователю «Отменить» или «Продолжить попытку» с разумными интервалами.
Источник
1
RBA
14 Мар 2016 в 08:35
Проверьте, находится ли их файл базы данных на подключенном сетевом диске. Даже если путь к файлу базы данных оказывается локальным для файловой системы, при использовании встроенного сервера Firebird функция isc_attach_database вернет код ошибки 335544721 при попытке установить соединение. Именно это и происходило на моей гостевой Windows XP VirtualBox, когда я сначала делюсь всем диском D хоста, а затем снова отображаю его как диск D в виртуальной гостевой ОС.
Обходной путь — переместить файл базы данных на диск локального раздела.
0
Goran
12 Авг 2017 в 01:04
Подключите свой компьютер к Интернету, и проблема будет решена, но я не знаю, как это работает
0
Cris william
20 Авг 2019 в 07:57
From IBOBjects FAQ
Is there a way to detect a lost connection and try to reconnect
automatically, without user action?Hook into the OnError event and look for the ERRCODE that denotes a
lost connection. Then, you can take whatever action you deem necessary
to deal with the problem. If the connection is lost you need to do a
disconnect and then connect again.
And from one of the base members of the IBObjects:
However, perhaps the «something» you are missing is that, if the
connection is broken by an external cause, the client application has
no way to know that it is not still connected. Its first knowledge of
that fact will come the next time it tries to access the server. The
API will report «Connection lost to database» and return GDSCODE
335544741, which is identified by the constant
isc_lost_db_connection.At the point where this exception occurs, the TIB_Connection still
thinks it is connected — the Connected property will be true. If you
try to reconnect by calling Connect, you will get an IBO exception.
It is necessary to call Disconnect. This does not simply reset a
property. The Disconnect method performs all of the necessary cleanup
to invalidate the broken transactions and cancel any now invalid
postings, datasets and caches. Once Disconnect has completed its
work, you can then place a Connect call inside a retry loop and
attempt to get going again.I do not know of a working example, but the simplest way to deal with
this is to write a RestoreConnection handler procedure that you can
call from your IB_Session.OnError handler whenever argument ERRCODE
returns isc_lost_db_connection.Have your RestoreConnection procedure do whatever you need to do,
trying to call Connect and handling the exception that occurs if the
request fails, until no exception occurs. Test the Connected property
after each iteration. When Connected is finally True, you are in
business. You can drop out of the retry code and inform the user that
the connection has been restored — perhaps with a sound and/or a
message in the status bar, to avoid having to show a dialog box that
she has to respond to. (if you like the idea of sound and status bar
cues, you could devise «connection lost» warning sound and status bar
message code to run at the beginning of your handler procedure as
well…)If these broken connections are a frequent occurrence, you might like
to consider making a distinctive custom cursor that you can display
while your procedure is running, and enclose the retry code in a
non-yielding BeginBusy…EndBusy block with UseCursor enabled and
BusyCursor set to use this special cursor image.And if re-establishing a connection is likely to take a long time, or
to be temporarily impossible, you would need to provide the ability
for the user to intervene and choose not to keep trying. You can use
the session timer for this, enclosing your «busy» block inside
another iterative block the prompts the user to «Cancel» or «Keep
Trying», at reasonable intervals.
Source
Здравствуйте. Пытаюсь освоить работу с СУБД firebird из под java. Написал такой вот код, который должен по-идее подключиться к БД:
| Java | ||
|
При попытке его выполнить вываливаются следующие ошибки:
Код
java.sql.SQLNonTransientConnectionException: Unable to complete network request to host "localhost". [SQLState:08006, ISC error code:335544721] at org.firebirdsql.gds.ng.FbExceptionBuilder$Type$5.createSQLException(FbExceptionBuilder.java:598) at org.firebirdsql.gds.ng.FbExceptionBuilder$ExceptionInformation.toSQLException(FbExceptionBuilder.java:492) at org.firebirdsql.gds.ng.FbExceptionBuilder.toSQLException(FbExceptionBuilder.java:223) at org.firebirdsql.gds.ng.wire.WireConnection.socketConnect(WireConnection.java:236) at org.firebirdsql.gds.ng.wire.FbWireDatabaseFactory.performConnect(FbWireDatabaseFactory.java:50) at org.firebirdsql.gds.ng.wire.FbWireDatabaseFactory.connect(FbWireDatabaseFactory.java:39) at org.firebirdsql.gds.ng.wire.FbWireDatabaseFactory.connect(FbWireDatabaseFactory.java:32) at org.firebirdsql.jca.FBManagedConnection.<init>(FBManagedConnection.java:145) at org.firebirdsql.jca.FBManagedConnectionFactory.createManagedConnection(FBManagedConnectionFactory.java:599) at org.firebirdsql.jca.FBStandAloneConnectionManager.allocateConnection(FBStandAloneConnectionManager.java:65) at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:109) at org.firebirdsql.jdbc.FBDriver.connect(FBDriver.java:114) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:189) at Main.main(Main.java:26) Caused by: java.net.ConnectException: В соединении отказано (Connection refused) at java.base/java.net.PlainSocketImpl.socketConnect(Native Method) at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403) at java.base/java.net.Socket.connect(Socket.java:609) at org.firebirdsql.gds.ng.wire.WireConnection.socketConnect(WireConnection.java:226) ... 11 more
При этом: База данных 1.fdb существует по пути: /home/bond12/1/
Для SYSDBA задан пароль 1234, с помощью isql-fb всё нормально работает.
В чём проблема, я не понимаю. Предполагаю, что проблема в написании адреса для подключения. Подскажите, пожалуйста, в чём проблема.
Добавлено через 3 часа 30 минут
Прошлый пример был опробован в линуксе. Попробовал потыкать в Windows, код
| Java | ||
|
выполняется без ошибок. Отсюда следует, что проблема с подключением к СУБД в линуксе. Завставить работать её под линуксом необходимо, поэтому вопрос всё ещё в силе. На одном форуме нашёл следующие сообщения:
Код
Сталкнулся впервые с такой проблемой в SQuirreL SQL Client при попытки приконектиться к Firebird получал ошибку "Unable to complete network request to host "localhost"." тогда у меня стояла ОС Gentoo затем на Fedora 11. Выход из ситуации оказался то идиотизма прост. В файле /etc/hosts у меня было следующее: 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 добавив имя хоста и все заработало: 127.0.0.1 localhost.localdomain localhost <you_host_name>.<you_domain> <you_host_name> ::1 localhost6.localdomain6 localhost6
И у одного человека даже заработало, после того, как он изменил hosts:
<цитата>
Код
Ура заработала!!! В файле /etc/hosts была строка: 127.0.0.1 localhost После изменения заработало. Сделал так: 127.0.0.1 localhost adminu.dindust adminu
Может быть у меня проблема решится похожим образом, но я не понимаю, что они сделали в файле hosts. Можете объяснить кто-нибудь?
Не работает, получается, только через java. flamerobin и isql с бд работают нормально. Как я понял, это именно проблема с подключением к СУБД, т.к. поэкспериментировав в windows при вводе неправильного пароля или неправильного файлового пути возникают совсем другие ошибки.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Я пытаюсь подключить менеджер баз данных DBeaver к файлу Firebird * .FDB. Это локальная файловая база данных, и я хочу проверить таблицы и т. Д. И выполнить некоторые запросы для отчетов о данных.
Однако, когда я пытаюсь открыть базу данных в DBeaver, я получаю это сообщение об ошибке:
Невозможно выполнить сетевой запрос к хосту «localhost». [SQLState: 08006, код ошибки ISC 335544721]
Соединение отклонено: соединение

Я попытался обновить драйвер, который обновляет org.firebirdsql.jdbc:jaybird-jdk18:RELEASE [3.0.5]без каких-либо ошибок, а также включить / отключить встроенный флажок.
Насколько я знаю, что Firebird поддерживается DBeaver, что я тут не так делаю?
1 ответ на вопрос
BdR
2018-11-11 в 21:33
После некоторых проб и ошибок я разобрался с ответом на это. Службы Firebird Serviceи Firebird Guardianне были запущены. Я установил сервер Firebird, но случайно выбрал «Запуск от имени приложения» вместо «Запуск от имени службы».

DBeaver не может подключиться к файлу базы данных Firebird без этих сервисов. Что довольно странно, потому что приложение osFinancials, использующее этот файл базы данных, работало просто без сервисов.
В любом случае, после того, как сервер Firebird установлен как «запуск в качестве приложения», AFAIK не может быть простым способом запустить его как службу. Поэтому я просто удалил, а затем заново установил настройку сервера Firebird и выбрал правильный вариант.
Он добавляет две услуг по имени FirebirdGuardianDefaultInstanceи FirebirdServerDefaultInstanceкоторые соответствуют этим два commandlines:
"C:Program Files (x86)FirebirdFirebird_2_5binfbguard.exe" -s DefaultInstance "C:Program Files (x86)FirebirdFirebird_2_5binfbserver.exe" -s DefaultInstance
Похожие вопросы
-
5
Где я могу найти действительно старые версии Firefox?
-
10
Разминка .NET-приложение
-
6
Mac программное обеспечение, чтобы открыть файл 16GB SQL?
-
-
4
Установка SQL Server Express 2008 на Windows Server 2008
-
3
Доступ — объединение двух баз данных с одинаковой структурой
-
2
Опции приложения Mac OS для редактора SQL с поддержкой JDBC или ODBC
-
2
Как поменять местами имена и фамилии в MS Access
-
3
Почему MS SQL Server Management Studio практически зависает на моем компьютере, пока он восстанавлив…
-
1
Получение статуса блокировки учетной записи в MS SQL Server
-
1
Запуск нескольких файлов SQL одновременно