2009-09-15 105 views
2

將一堆數據庫從sql server 2000移到2008.其中一個 應用程序位於JBoss 3.2.2上,現在無法連接到 數據庫。特別的錯誤是「傳入的表格數據流 (TDS)遠程過程調用(RPC)協議流不正確 參數1(」「):數據類型0x38未知。 我環顧了一下谷歌已經確定這是因爲我是 使用MS SQL Server 2000驅動程序的JDBC和此驅動程序將無法與MSSql服務器2008的 。它將連接,但將無法正常工作。JBoss 3.2.2和JDBC升級

所以我的問題是怎麼做的,我得到了JBoss使用新的MSSQL服務器的JDBC驅動程序 版本2

我並不熟悉的JBoss。新的驅動程序附帶JAR 文件,但我不知道如何告訴JBoss使用該文件,而不是舊的驅動程序 。

非常感謝您的幫助。

+0

你應該知道的一件事是JBoss 3真的很老了(在** 2004 ** iirc發佈)。也許你應該考慮升級。 – cletus 2009-09-15 00:16:06

+0

這是真的,但它不會解決JDBC配置問題:) – 2009-09-15 00:30:42

+0

我們正在將所有內容都轉移到新系統中,因此目前升級無法解決。 – Tigran 2009-09-15 00:39:50

回答

4

通常,爲了使JDBC驅動程序類可用於JBoss,驅動程序的jar被複制到默認服務器配置的lib目錄(當然,假設這是您正在運行的配置)。因此,爲了讓JBoss使用新的驅動程序,請從lib目錄中刪除舊的jar(如果它不在那裏查看啓動腳本並找到它添加到$ CLASSPATH的位置),請將其替換爲新驅動程序,如果需要更新您的mssql-ds.xml(特別是<connection-url><driver-class>,檢查驅動程序文檔),重新啓動Jboss。

+0

我認爲這使我走上了正確的道路。我在jboss \ server \ all \ lib中找到了一個mssqlserver.jar,但是沒有在默認或最小的情況下找到它。我不確定這是不是老司機是否有我能確定的方式? 我使用Eclipse作爲IDE你能告訴我如何檢查$ CLASSPATH嗎? 謝謝 – Tigran 2009-09-15 00:38:53

+0

是的,這是它(jboss/server/all/lib被所有配置共享)。確保一種方法是刪除jar並檢查在JBoss啓動時是否得到ClassNotFoundException(換句話說,根本不應該能夠訪問數據庫)。但我相信它是你要找的那個罐子。 – 2009-09-15 00:52:58

+0

刪除msbase.jar,mssqlserver.jar和msutil.jar會導致連接錯誤。然後我將新的sqljdbc.jar複製到lib文件夾中並出現以下錯誤。無法創建連接; - 嵌套的throwable:(org.jboss.resource.JBossResourceException:無法註冊以下驅動程序:com.microsoft.jdbc.sqlserver.SQLServerDriver; - 嵌套的throwable:(java.lang.ClassNotFoundException:找不到ClassLoaders:com.microsoft.jdbc .sqlserver.SQLServerDriver)。 複製新驅動程序後,我會修改mssql-ds.xml文件來讀取新驅動程序。謝謝 – Tigran 2009-09-15 16:42:10