2009-09-22 52 views
2

我是新來的火鳥使用其Java版本Jaybird,但無法從數據庫(.fdb文件)連接。這個問題是這樣的:JayBird的連接問題

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給予repsonse。

其實我的連接字符串中「C:/ XLNKREPOS」後面沒有空格,這是一個錯誤複製。再次&再次我得到以下SQL異常:

org.firebirdsql.jdbc.FBSQLException:GDS異常。 335544375.不可用的數據庫

而且該數據庫沒有在其他程序中使用的地方。

希望我的這篇文章讓你明白我的問題。

感謝

+0

您是否使用Classic服務器,超級服務器或嵌入式版本? – 2009-09-23 16:43:39

回答

1

我認爲這個問題必須在連接字符串,有 「C:/ XLNKREPOS」 後空格

試試這個

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

再見。

1

我有同樣的問題,它是由本地主機之前的那些斜槓引起的。 該URL應該是:

jdbc:firebirdsql:localhost/3050:C:/XLNKREPOS/FIRBIRDXA.FDB", 
3

op爲混合由Jaybird支持的兩種JDBC URL格式。

要麼使用

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

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

{...}用來表示可選部分

1

我,因爲我是用64火鳥版本,而不是標準的x86得到這個錯誤是版。我想,因爲我運行的是64位操作系統,這些嵌入式二進制代碼與我相對應......希望能夠解決您的問題。

故障排除提示:

我也能夠通過增加從Apache的網站上最新的log4j的JAR到我的項目/ classpath以進一步診斷額外火鳥問題。然後我添加了一個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

只需解壓壓縮包,並使用其提供的構建腳本(的build.bat/build.sh)編譯。編譯後在'output/lib'目錄中查看,你會發現最新版本的jaybird jar(截至目前爲2.2.0)。您還需要位於「本地」目錄中的最新jaybird dll(截至目前爲22)。我努力想要弄清楚這件事,我經歷了很多痛苦。 Firebird網站上的文檔非常過時,寫得很差。