2015-02-07 110 views
1

我在使用MS JDBC驅動程序連接Lotus Domino 9.0.1FP3和MSSQL數據庫時出現問題,this question中詳述了相同的問題。在9.0.1中一切都很好,但FP3的應用已經打破​​了這個聯繫。升級到9.0.1後,JDBC驅動程序不能用於XPage FP3

The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SSLv3 SSLContext not available". SSLv3 SSLContext not available 

我試過JDBC驅動程序的升級這似乎沒有任何區別就像它似乎在他的評論

我試過設置加密=真& trustServerCertificate =有對TomSta這似乎也沒有任何區別。

是否需要更改Domino/SQL/Windows服務器來解決此問題?

我的代碼和錯誤的位置如下圖所示:

public static ResultSet executeQuery(String connString, String userName, String pwd, String query) { 

    //example connString: "jdbc:sqlserver://10.203.32.16;DatabaseName=DBTest"; 

    ResultSet rs = null; 
    Statement st = null; 
    Connection conn = null; 

    try { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); 
     conn = DriverManager.getConnection(connString, userName, pwd); //Error occurs here 
     st = conn.createStatement(); 
     rs = st.executeQuery(query); 
    } catch (Exception e) { 
     if (query != null) { 
      System.out.println("Failed SQL query: " + query); 
     } 
     try { 
      if (rs != null) { rs.close(); } 
     } catch (SQLException sqlEx) { rs = null; } 
     try { 
      if (st != null) { st.close(); } 
     } catch (SQLException sqlEx) { st = null; } 
     try { 
      if (conn != null) { conn.close(); } 
     } catch (SQLException sqlEx) { conn = null; } 
     e.printStackTrace(); 
     return null; 
    } 

    return rs; 
} 

回答

4

升級到修訂包也導致

<DominoBinary>\jvm\lib\security\java.policy 

文件被更改爲默認的,所以如果你改變了這裏的東西(像使用Class.forName)你應該添加訪問授予的類加載器工作。 我不知道這是一個原因,但有時錯誤消息並不是指根本原因。順便說一句:我們體驗到,jDTS驅動程序比Microsoft驅動程序具有更好的性能(並且錯誤更少)。儘管你有問題,你可以看看它。 http://jtds.sourceforge.net/

+0

java.policy文件當前在我們的服務器上保留爲默認值,因此不應該是問題。我試過切換到使用jDTS,但是這返回錯誤403 - 您被禁止執行此操作。 sqljdbc4.jar和jtds-1.2.8.jar都在我們的其他服務器上工作,這些服務器在8.5.3和9.0.1之間(沒有FP3)。我已經嘗試添加授權{權限java.security.AllPermission; };到java.policy文件沒有成功。 – 2015-02-09 21:40:35