Driver.getConnection挂起使用SQLServer驱动程序和Java 1.6.0_29
我不知道该写些什么,并决定在这里做。
懒惰的时间debugging我的程序后,我可以发现调用Driver.getConnection(string,string,string)挂起调用线程。 为什么(?),我真的不知道,但我可以发现这发生在java 1.6.0_29而不是java 1.6.0_26。
完整的环境:
-
操作系统:testing在红帽6.1和Windows 2008
-
驱动程序:MS SQL Server JDBC驱动程序版本3.0.1301.101
-
Java版本:1.6.0_26和1.6.0_29
正如我之前所说,它与1.6.0_26一起工作。
有没有人知道这可能是什么原因? 也许有些开发者? :p
最好的祝福,
瑞
我遇到了完全一样的行为:
我在Windows 7 64位个人电脑上同时使用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
转载:组合出现问题
- SQL驱动程序2.0
- SQL驱动程序3.0
- SQL驱动程序4.0 CTP 3
-
jTDS SQL驱动程序1.2.5
-
SQL服务器2008R2
-
Java 1.6.0_29
更改SQL服务器版本(2005和2008年testing)或Java版本(1.6.0_27,1.7.0_1),并且问题不再发生。
客户机/服务器操作系统:Windows 2008R2
添加到Java Bug数据库 ,并正在由Oracle工作。
在Microsoft MSDN数据访问论坛 (接受的答案:升级到java 7)和Oracle Java JDBC论坛 (此处添加的信息,也被添加到Java Bug数据库)上交叉发布。
请参阅此处的解决schemehttps://forums.oracle.com/forums/thread.jspa?messageID=9954398&tstart=0 http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/97dce8fd-6487-4bca -80b0-492167db3e0d
“显然,这与SSL的使用有关,可以通过将jre / lib中的jsse.jarreplace为早期版本中的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 “。
作为一个供参考,似乎有一个新的步骤build立#30在1.6家庭修复了这个问题: http : //bugs.sun.com/bugdatabase/view_bug.do?bug_id=7103725
我有相同的挂起问题,只有与java 1.6.0_29。 我注意到如果升级到7.1,问题就会消失
我很高兴我find了这个论坛。 升级时遇到同样的问题(我实际上是从1.6.0_22升级到1.7.1,然后降级到1.6.0_29,问题发生了。
还有一件事我已经注意到了:如果我使用1.6.0_29 jre,它会失败,但是如果我使用1.6.0_29 jdk,它可以工作…我花了大概一天的时间来testing为什么eclipse(使用jre)失败,而myEclipse(这是使用jdk)正在工作….
一个错误如何引入到这样一个迟到的版本? (我正在做一个Java产品版本的build议)。
同样的问题在这里(SQLJDBC4,MsSQL 2008 R2,JDK1.6.0.29),但更新到1.6.0.30问题后,解决了… … –
所以它应该是1.6.0.29的DriverManager中的一个重要的bug
升级到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:更新到1.6.0_29后,Microsoft&jTDS JDBC驱动程序中断,这个驱动程序非常相似,但是原因不同。 有趣的是,它出现在MS司机和jtds司机。