1. 程式人生 > >jTDS連線SQL Server時的Connection refused

jTDS連線SQL Server時的Connection refused

     這幾天從原來的伺服器上check out出一個工程,使用的是Spring+Hibernate的輕量級架構,資料庫是SQL Server2000,資料來源使用的jtds。可是原本執行正常的程式無論如何也跑不起來,連線資料庫時,總是出現java.sql.SQLException: "Network error IOException: Connection refused: connect"。檢查hibernate配置檔案、使用查詢分析器登陸資料庫一切正常。於是google一下,發現了jtds的官方文件,對這個異常作了如下的解釋(原文地址:http://jtds.sourceforge.net/faq.html):
     當jtds不能連線到伺服器時就會丟擲這個異常,主要有以下一些原因:
     1、伺服器名稱拼寫錯誤或埠不正確。
     2、SQL Server沒有配置使用TCP/IP。通過SQL Server的伺服器網路實用工具讓TCP/IP可用,或者讓jDts通過命名管道(name pipes)連線伺服器(如何完成請參見URL格式
     3、防火牆阻止了對伺服器1433埠的訪問。
     為了檢查TCP/IP是否可用或者1433埠是否被禁止,你可以使用“Telnet <server_host> 1433”。如果Telnet不能連線,那麼jDts也不能。如果你實在不能指出這是為什麼,請向你的網路管理員尋求幫助。
      我按照上面提供的方式折騰了半天,還是沒有任何進展,以前是那麼錯誤。繼續搜尋,按照各種提供的方式,進行測試,依然出錯。也看到了有人和我的錯誤一樣,並且最後也得到了解決,可是都沒有提供解決的方法。
     正在一籌莫展之際,忽然看到一條記錄,提到了要打SQL Server2004要打Sp4的補丁。趕緊找來了Sp4安裝,呵呵,伺服器順利啟動。所以上面jDts給出的解釋前,應該增加一條:
     0、如果您的資料庫是SQL Server2000,請確保已經升級到SP4。