Проблема с подключением в JayBird - PullRequest
2 голосов
/ 22 сентября 2009

Я новичок в 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. недоступна база данных

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

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

Спасибо

Ответы [ 4 ]

3 голосов
/ 07 января 2010

ОП смешивает два формата jdbc url, поддерживаемых Jaybird.

Либо использовать

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

или

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

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

1 голос
/ 15 марта 2011

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

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

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

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

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

1 голос
/ 04 ноября 2009

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

jdbc:firebirdsql:localhost/3050:C:/XLNKREPOS/FIRBIRDXA.FDB",
1 голос
/ 22 сентября 2009

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

Попробуйте это

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

Bye.

...