Проблема с подключением в JayBird

Я новичок в Firebird, использую его Java-версию Jaybird, но не могу подключиться из базы данных (файл .fdb). Проблема возникает так:

org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544375. unavailable database

OR

java.lang.RuntimeException: Failed to initilize Jaybird native library. This is most likley due to a failure to load the firebird client library.

Используя следующий код:

Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();
connection = DriverManager.getConnection("jdbc:firebirdsql://localhost/3050:C:/XLNKREPOS /FIRBIRDXA.FDB", "SYSDBA", "masterkey");

Наличие следующих файлов в пути сборки проекта Eclipse:

  • jaybird-полный-2.1.5.jar
  • jaybird21.dll
  • fbclient.dll
  • fbembed.dll

Также используя аргументы JVM как -Djava.library.path="D:\Shared\Firebird\Jaybird-2.1.5JDK_1.5"

Подскажите, что не так в моем подходе?


Спасибо RRUZ за ответ.

На самом деле после «C:/XLNKREPOS» в моей строке подключения не было пробела, это была ошибка копирования. Снова и снова я получил следующее исключение SQL:

org.firebirdsql.jdbc.FBSQLException: исключение GDS. 335544375. недоступная база данных

И эта база данных нигде не используется в другой программе.

Надеюсь, мой этот пост поможет вам понять мою проблему.

Спасибо


person Kishore    schedule 22.09.2009    source источник
comment
Используете ли вы классический сервер, суперсервер или встроенную версию?   -  person Hugues Van Landeghem    schedule 23.09.2009


Ответы (4)


OP смешивает два формата URL-адресов jdbc, поддерживаемых Jaybird.

Либо используйте

jdbc:firebirdsql://[host]{:[port]}/[path]

or

jdbc:firebirdsql:[host]{/[port]}:[path]

{...} используется для обозначения необязательной части

person Mark    schedule 07.01.2010

Я думаю, что проблема должна быть в строке подключения, после "C:/XLNKREPOS" есть пробел.

Попробуй это

connection = DriverManager.getConnection("jdbc:firebirdsql://localhost/3050:C:/XLNKREPOS/FIRBIRDXA.FDB", "SYSDBA", "masterkey");

До свидания.

person RRUZ    schedule 22.09.2009

Когда я получил эту ошибку, это произошло потому, что я использовал версию Firebird x64 вместо стандартной версии x86. Я думал, что, поскольку у меня была 64-битная ОС, эти встроенные двоичные файлы соответствуют мне ... Надеюсь, это решит вашу проблему.

Советы по устранению неполадок:

Я также смог дополнительно диагностировать дополнительные проблемы с Firebird, добавив последнюю банку log4j с сайта apache в свой проект/путь к классам. Затем я добавил файл log4j.properties в мой каталог src по умолчанию/корневой каталог со следующими установленными внутри свойствами:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%c{1},%p] %m%n
log4j.rootCategory=DEBUG, stdout
log4j.category.org.firebirdsql=DEBUG, stdout

Мне также пришлось установить System.setProperty("FBLog4j", "true"); в моем коде.

Еще одна вещь, которую вы можете сделать, это убедиться, что вы используете самую последнюю и лучшую версию из их репозитория по адресу http://firebird.cvs.sourceforge.net/viewvc/firebird/client-java/?view=tar

Просто разархивируйте tarball и скомпилируйте его, используя прилагаемый скрипт сборки (build.bat/build.sh). После компиляции загляните в каталог «output/lib», и вы найдете последнюю версию jar-файла jaybird (на данный момент это 2.2.0). Вам также понадобится последняя dll jaybird (на данный момент это 22), которая находится в «родном» каталоге. Я прошел через много боли, пытаясь понять это дерьмо. Документация на сайте Firebird очень устарела и плохо написана.

person CaMiX    schedule 15.03.2011

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

jdbc:firebirdsql:localhost/3050:C:/XLNKREPOS/FIRBIRDXA.FDB",
person shpelda    schedule 04.11.2009