我不知道在哪里写,所以决定在这里写。
经过很长时间的调试我的程序,我可以发现调用驱动程序。getConnection(string, string, string)挂起调用线程。为什么(?),我真的不知道,但我可以发现这发生在java 1.6.0_29而不是java 1.6.0_26。
完整的环境:
-
操作系统:在redhat 6.1和Windows 2008上测试
-
驱动程序:MS SQL Server JDBC Driver version 3.0.1301.101
-
Java版本:1.6.0_26和1.6.0_29
正如我之前所说的,它可以在1.6.0_26上工作。
有谁知道这可能是什么原因吗?也许是某个开发人员?: 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和——砰:一切又好了!
致以最亲切的问候
转载:
组合出现问题- SQL driver 2.0SQL driver 3.0SQL driver 4.0 CTP 3
jTDS SQL Driver 1.2.5
SQL server 2008R2
Java 1.6.0_29
更改SQL server版本(在2005 &Java版本(1.6.0_27,1.7.0_1),问题不再发生。
Client/Server OS: Windows 2008R2
添加到Java Bug数据库中,Oracle正在处理。
交叉发布在Microsoft MSDN数据访问论坛(接受答案:升级到java 7)和Oracle java JDBC论坛(此处添加的信息也添加到java Bug数据库中)。
查看这里的解决方案https://forums.oracle.com/forums/thread.jspa?messageID=9954398&tstart=0http://social.msdn.microsoft.com/forums/en/sqldataaccess/thread/97dce8fd - 6487 - 4 - bca - 80 - b0 - 492167 - db3e0d
"显然,这与SSL的使用有关,可以通过将jre/lib中的jsse.jar替换为早期版本(例如1.6.0_27版本)来缓解。我对1.6.0_29与MS JDBC和旧的SQL Server '05设置一起工作感到困惑,这些设置不做安全连接。所有较新的服务器(SQL Server '08 R2)都失败了,因为它们需要SSL, Java 1.6.0_29在这种情况下使用jTDS或MS JDBC无法工作。
作为一个参考,似乎在1.6系列中有一个新的步骤构建#30修复了这个问题:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7103725
我有同样的挂起问题,只有java 1.6.0_29。我注意到,如果我升级到7.1的问题消失了
我很高兴,我找到了这个论坛。我在升级时遇到了同样的问题(我实际上是从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产品版本推荐)。
同样的问题在这里(SQLJDBC4, MsSQL 2008 R2, JDK1.6.0.29),但更新到1.6.0.30后问题解决了…
所以它应该是一个关键的错误在1.6.0.29的DriverManager
升级到1.6.0_30也为我工作。微软已经发布了一份声明,宣布在2012年第一季度进行修复。这看起来像是一个Java漏洞(BEAST)。
我有完全相同的问题,jBoss会挂在driver.getConnection()上。但是,我使用jBoss EAP 5.1, java 1.6.0_37x64, Sql Server 2005和jtds1.2.5作为我的jdbc驱动程序。
我必须使用的工作是启动时的jvm设置:-Djsse。enableCBCProtection=false .
我不认为这是一个修复,而是在这一点上的一个变通。
我确实发现了一个bug: 7105007: Microsoft &jTDS JDBC驱动程序在更新到1.6.0_29之后损坏,这是非常相似的,但有不同的原因。有趣的是,它在MS驱动程序和jtds驱动程序上都出现了。