2017-08-03 153 views
1

這非常奇怪,但我每次嘗試通過JDBC連接到SQL Azure時都反覆出現此問題。JDBC Broken Pipe Mac

環境:Eclipse的氧氣,蘋果塞拉利昂10.12.6,JDK 1.8.0_141

我看到下列錯誤:

Cannot create PoolableConnectionFactory (Broken pipe (Write failed) ClientConnectionId:ac4ed2ba-4563-4f3b-9bcc-441bff9e45e1) 

我試圖創造的最基本的方式連接,通過context.xml中這樣:

<Resource name="jdbc/sqlazure" 
auth="Container" 
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
type="javax.sql.DataSource" 
maxIdle="30" 
username="<user> 
password="<password> 
url="jdbc:sqlserver://<dbname>.database.windows.net:1433;database=<db>;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;" 
removeAbandonedTimeout="30" 
logAbandoned="true" /> 

在我的servlet的init()我得到的數據源這樣:

ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/sqlazure"); 

它返回非null。但是,當我嘗試獲得連接時:

Connection con = ds.getConnection() 

它在此處掛起,然後用損壞的管道錯誤超時。我還列出了Azure門戶中適當的IP地址的白名單。

我的SQLPro客戶端能夠連接到數據庫並查看它的內容,所以不應該有用戶名/密碼和連接字符串的任何問題。

我已確認我的主機名設置正確。使用:

scutil --get HostName 

我試過了所有我能想到但仍然沒有運氣的東西。我開始認爲OSX上的Java運行時存在一些問題。有人有主意嗎 ?

編輯:我在Windows環境和JDK上使用了相同的確切文件,並沒有看到這個問題。所以我相信這是Mac特定的...

回答

0

您可能需要安裝Homebrew和Maven才能使其工作。請按照here提供的說明進行操作。

希望這會有所幫助。

問候,

阿爾貝託·莫里略

相關問題