相关疑难解决方法(0)

Java 8上的SQL Server JDBC错误:驱动程序无法使用安全套接字层(SSL)加密与SQL Server建立安全连接

使用Microsoft JDBC驱动程序版本连接到SQL Server数据库时出现以下错误:

com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法使用安全套接字层(SSL)加密与SQL Server建立安全连接.错误:"SQL Server返回不完整的响应.连接已关闭.ClientConnectionId:98d0b6f4-f3ca-4683-939e-7c0a0fca5931".

我们最近将应用程序从Java 6和Java 7升级到Java 8.所有运行Java的系统都运行SUSE Linux Enterprise Server 11(x86_64),VERSION = 11,PATCHLEVEL = 3.

以下是我用我编写的Java程序收集的事实,它只是顺序打开和关闭1,000个数据库连接.

  • 连接被丢弃,此错误大约占5%-10%.每次连接都不会发生错误.
  • 只有Java 8才会出现这个问题.我在Java 7上运行了相同的程序,问题无法重现.这与我们在升级前的生产经验一致.我们在生产中使用Java 7运行时没有遇到任何问题.
  • 问题不会出现在运行Java 8的所有Linux服务器上,只会发生在其中一些服务器上.这让我感到困惑,但是当我在不同Linux实例上的相同版本的Linux JVM(1.8.0_60,64位)上运行相同的测试程序时,其中一个Linux实例上不会出现问题,但问题是其他人确实发生过.Linux实例运行的是相同版本的SUSE,它们处于相同的补丁级别.
  • 连接到SQL Server 2008和SQL Server 2014服务器/数据库时出现此问题.
  • 无论我使用的是4.0版本的SQL Server JDBC驱动程序还是较新的4.1版驱动程序,都会出现此问题.

与网络上的其他人相比,使我的观察结果独一无二的是,虽然问题仅发生在Java 8上,但我无法在运行相同Java 8 JVM的看似相同的Linux服务器上发生问题.其他人也在早期版本的Java上看到了这个问题,但这不是我们的经验.

您可能有任何意见,建议或观察.

java linux sql-server ssl jdbc

31
推荐指数
9
解决办法
6万
查看次数

标签 统计

java ×1

jdbc ×1

linux ×1

sql-server ×1

ssl ×1