使用SQLServer驱动程序和Java 1.6.029挂起Driver.getConnection

使用SQLServer驱动程序和Java 1.6.029挂起Driver.getConnection,java,sql-server,sql-server-2008,jdbc,Java,Sql Server,Sql Server 2008,Jdbc,我不知道该在哪里写点什么,所以决定在这里写 在长时间调试我的程序后,我发现调用驱动程序.getConnection(string,string,string)挂起了调用线程。为什么(?),我真的不知道,但我可以发现这种情况发生在Java1.6.0_29上,而不是Java1.6.0_26上 完整环境: 操作系统:在redhat 6.1和Windows 2008上测试 驱动程序:MS SQL Server JDBC驱动程序版本3.0.1301.101 Java版本:1.6.0_26和1.6.0_2

我不知道该在哪里写点什么,所以决定在这里写

在长时间调试我的程序后,我发现调用驱动程序.getConnection(string,string,string)挂起了调用线程。为什么(?),我真的不知道,但我可以发现这种情况发生在Java1.6.0_29上,而不是Java1.6.0_26上

完整环境:

  • 操作系统:在redhat 6.1和Windows 2008上测试

  • 驱动程序:MS SQL Server JDBC驱动程序版本3.0.1301.101

  • Java版本:1.6.0_26和1.6.0_29

正如我之前所说的,它适用于1.6.026

有人知道这可能是什么原因吗?也许是某个开发者p

致以最良好的祝愿


Rui

我遇到了完全相同的行为:

我在我的Windows 7 64位PC上同时使用Oracle XE和MS SQL Server Express-我从1.6.0_27(x64版本)升级到java 1.6.0_29,并惊讶地发现相同的程序可以连接到Oracle XE,但不能连接到MS SQL Server

我将问题追溯到
javax.sql.DataSource.getConnection()
,因为这只是一个接口,jdbc驱动程序引起了我的怀疑

我使用的是MS SQL Server JDBC驱动程序3.0.1301.202,我甚至更新到了SQL Server CTP(“社区技术预览”)4.0.1722.1,因为我怀疑它与JDBC驱动程序有关,但没有成功:仍然挂起

我的解决办法是降级到1.6.0_27,然后——砰:一切又恢复正常了

致意
Erich

我也有同样的挂起问题,而且只有Java1.6.0才有挂起问题。我注意到,如果升级到7.1,问题就会消失 问题发生在以下情况的组合中:

  • SQL驱动程序2.0
  • SQL驱动程序3.0
  • SQL驱动程序4.0 CTP 3
  • jTDS SQL驱动程序1.2.5

  • SQL server 2008R2

  • Java 1.6.0_29

更改SQL server版本(2005和2008年测试)或Java版本(1.6.0_27、1.7.0_1),问题就不会再出现了

客户端/服务器操作系统:Windows 2008R2

已添加到,并正在由Oracle进行处理


交叉发布在(接受答案:升级到java 7)和(此处添加的信息也添加到java Bug数据库中)。

我很高兴找到了这个论坛。我在升级时也遇到了同样的问题(我实际上是从1.6.0_22升级到1.7.1,然后在问题发生时降级到1.6.0_29)

我还注意到一件事:如果我使用1.6.0_29 jre,它会失败,但是如果我使用1.6.0_29 jdk,它会工作……我花了大约一天的时间试图弄清楚为什么eclipse(使用jre)会失败,而myEclipse(使用jdk)却在工作

这么晚的版本怎么会引入bug呢?(我正在推荐java产品版本)。

请看这里的解决方案 http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/97dce8fd-6487-4bca-80b0-492167db3e0d


“显然,这与SSL的使用有关,可以通过将jre/lib中的jsse.jar替换为早期版本(例如1.6.0_27版本)中的jsse.jar来缓解。我被1.6.0_29与MS JDBC和旧的SQL Server'05设置(不进行安全连接)混淆了。所有的新服务器(SQL Server'08 R2)失败,因为它们需要SSL,而Java 1.6.029在这种情况下无法使用jTDS或MS JDBC。”

作为参考,1.6系列中似乎有一个新的step build#30解决了此问题:

这里也有同样的问题(SQLJDBC4、MsSQL 2008 R2、JDK1.6.0.29),但在更新到后问题得到了解决


因此,这应该是1.6.0.29版DriverManager中的一个关键错误,升级到1.6.0_30版对我来说也很有效。微软在2012年第1季度发布了修复程序。它看起来像是一个Java漏洞(BEAST)。

我遇到了与jBoss挂在driver.getConnection()上完全相同的问题但是,我使用jBoss EAP 5.1、java 1.6.037x64、Sql Server 2005和jtds1.2.5作为我的jdbc驱动程序

我不得不在启动时使用jvm设置:-djse.enableCBCProtection=false,这就解决了这个问题

我不认为这是一个解决方案,但现在是一个工作。


我确实发现了一个bug:非常相似,但原因不同。有趣的是,它同时出现在MS驱动程序和jtds驱动程序上。

这里有相同的问题。Windows 7 x64、JDK 1.6.029、SQL Express 2008 R2(10.50.1790),使用sqljdbc4.jar,它挂起在getConnection上。然而,对于我来说,它在1.6.0_24上运行得很好(我还没有尝试过其他版本,只有这两个)使用SQL server 2008R2复制。SQL 2005和2008正常工作。问题在1.6.0.30中得到解决是的,在1.6.0_29中也有同样的问题,我在1.6.0_33中验证了修复。我还添加了Java错误数据库的错误报告。但自从Oracle接管以来,这几乎不起作用。我没有从Oracle那里得到任何反馈,也找不到其他错误现在…那么,在OSX Lion上,您到底是如何将java降级到1.6.0xx的呢?