我在使用MS JDBC驱动程序连接Lotus Domino 9.0.1FP3和MSSQL数据库时遇到问题this question中详述的相同问题。在9.0.1中一切都很好但是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驱动程序,似乎没有任何区别,就像TomSta在他的评论中似乎有什么不同
我尝试过设置encrypt = true& trustServerCertificate = true,似乎也没有任何区别。
为解决此问题,我需要对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;
}
答案 0 :(得分:4)
升级到Fixpack也会导致
<DominoBinary>\jvm\lib\security\java.policy
要更改为默认文件的文件,因此如果您在此处更改了某些内容(例如使用Class.forName),则应添加授予类加载器的访问权限。 我不知道这是不是原因,但有时错误信息并不是指根本原因。
顺便说一句:我们经历过jDTS驱动程序比Microsoft驱动程序具有更好的性能(和更少的错误)。尽管你有问题,你可以看看它。 http://jtds.sourceforge.net/
答案 1 :(得分:3)
这可能源于SSLv3 / TLS的变化。看看这个: